From c90e5625284908c1f2fdf0d4ec46dbf1d43bff9a Mon Sep 17 00:00:00 2001 From: Nicolas Le Cam Date: Thu, 7 Nov 2024 12:48:11 +0100 Subject: [PATCH] Migrate mockery to packages feature (#29013) --- server/Makefile | 25 ++++++++----------- server/channels/app/email/.mockery.yaml | 11 ++++++++ server/channels/app/platform/.mockery.yaml | 11 ++++++++ server/channels/store/.mockery.yaml | 10 ++++++++ server/channels/utils/.mockery.yaml | 11 ++++++++ server/einterfaces/.mockery.yaml | 13 ++++++++++ server/platform/services/cache/.mockery.yaml | 10 ++++++++ .../services/searchengine/.mockery.yaml | 10 ++++++++ .../services/sharedchannel/.mockery.yaml | 12 +++++++++ .../platform/services/telemetry/.mockery.yaml | 10 ++++++++ .../platform/shared/filestore/.mockery.yaml | 10 ++++++++ server/public/plugin/.mockery.yaml | 13 ++++++++++ 12 files changed, 132 insertions(+), 14 deletions(-) create mode 100644 server/channels/app/email/.mockery.yaml create mode 100644 server/channels/app/platform/.mockery.yaml create mode 100644 server/channels/store/.mockery.yaml create mode 100644 server/channels/utils/.mockery.yaml create mode 100644 server/einterfaces/.mockery.yaml create mode 100644 server/platform/services/cache/.mockery.yaml create mode 100644 server/platform/services/searchengine/.mockery.yaml create mode 100644 server/platform/services/sharedchannel/.mockery.yaml create mode 100644 server/platform/services/telemetry/.mockery.yaml create mode 100644 server/platform/shared/filestore/.mockery.yaml create mode 100644 server/public/plugin/.mockery.yaml diff --git a/server/Makefile b/server/Makefile index a84f0055b9..c53aec61ae 100644 --- a/server/Makefile +++ b/server/Makefile @@ -319,15 +319,15 @@ i18n-check: ## Exit on empty translation strings and translation source strings store-mocks: ## Creates mock files. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir channels/store --name ".*Store" --output channels/store/storetest/mocks --note 'Regenerate this file using `make store-mocks`.' + $(GOBIN)/mockery --config channels/store/.mockery.yaml cache-mocks: $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir platform/services/cache --all --output platform/services/cache/mocks --note 'Regenerate this file using `make cache-mocks`.' + $(GOBIN)/mockery --config platform/services/cache/.mockery.yaml telemetry-mocks: ## Creates mock files. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir platform/services/telemetry --all --output platform/services/telemetry/mocks --note 'Regenerate this file using `make telemetry-mocks`.' + $(GOBIN)/mockery --config platform/services/telemetry/.mockery.yaml store-layers: ## Generate layers for the store $(GO) generate $(GOFLAGS) ./channels/store @@ -342,7 +342,7 @@ new-migration: ## Creates a new migration. Run with make new-migration name=<> filestore-mocks: ## Creates mock files. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir platform/shared/filestore --all --output platform/shared/filestore/mocks --note 'Regenerate this file using `make filestore-mocks`.' + $(GOBIN)/mockery --config platform/shared/filestore/.mockery.yaml ldap-mocks: ## Creates mock files for ldap. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 @@ -350,34 +350,31 @@ ldap-mocks: ## Creates mock files for ldap. plugin-mocks: ## Creates mock files for plugins. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir ./public/plugin --name API --output ./public/plugin/plugintest --outpkg plugintest --case underscore --note 'Regenerate this file using `make plugin-mocks`.' - $(GOBIN)/mockery --dir ./public/plugin --name Hooks --output ./public/plugin/plugintest --outpkg plugintest --case underscore --note 'Regenerate this file using `make plugin-mocks`.' - $(GOBIN)/mockery --dir ./public/plugin --name Driver --output ./public/plugin/plugintest --outpkg plugintest --case underscore --note 'Regenerate this file using `make plugin-mocks`.' + $(GOBIN)/mockery --config public/plugin/.mockery.yaml einterfaces-mocks: ## Creates mock files for einterfaces. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir einterfaces --all --output einterfaces/mocks --note 'Regenerate this file using `make einterfaces-mocks`.' + $(GOBIN)/mockery --config einterfaces/.mockery.yaml searchengine-mocks: ## Creates mock files for searchengines. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir platform/services/searchengine --all --output platform/services/searchengine/mocks --note 'Regenerate this file using `make searchengine-mocks`.' + $(GOBIN)/mockery --config platform/services/searchengine/.mockery.yaml sharedchannel-mocks: ## Creates mock files for shared channels. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir=./platform/services/sharedchannel --name=ServerIface --output=./platform/services/sharedchannel --inpackage --outpkg=sharedchannel --testonly --note 'Regenerate this file using `make sharedchannel-mocks`.' - $(GOBIN)/mockery --dir=./platform/services/sharedchannel --name=AppIface --output=./platform/services/sharedchannel --inpackage --outpkg=sharedchannel --testonly --note 'Regenerate this file using `make sharedchannel-mocks`.' + $(GOBIN)/mockery --config platform/services/sharedchannel/.mockery.yaml misc-mocks: ## Creates mocks for misc interfaces. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir channels/utils --name LicenseValidatorIface --output channels/utils/mocks --note 'Regenerate this file using `make misc-mocks`.' + $(GOBIN)/mockery --config channels/utils/.mockery.yaml email-mocks: ## Creates mocks for misc interfaces. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir channels/app/email --name ServiceInterface --output channels/app/email/mocks --note 'Regenerate this file using `make email-mocks`.' + $(GOBIN)/mockery --config channels/app/email/.mockery.yaml platform-mocks: ## Creates mocks for platform interfaces. $(GO) install github.com/vektra/mockery/v2/...@v2.42.2 - $(GOBIN)/mockery --dir channels/app/platform --name SuiteIFace --output channels/app/platform/mocks --note 'Regenerate this file using `make platform-mocks`.' + $(GOBIN)/mockery --config channels/app/platform/.mockery.yaml mmctl-mocks: ## Creates mocks for mmctl $(GO) install github.com/golang/mock/mockgen@v1.6.0 diff --git a/server/channels/app/email/.mockery.yaml b/server/channels/app/email/.mockery.yaml new file mode 100644 index 0000000000..d32f125d51 --- /dev/null +++ b/server/channels/app/email/.mockery.yaml @@ -0,0 +1,11 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/channels/app/email: + config: + dir: "channels/app/email/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: mocks + note: "Regenerate this file using `make email-mocks`." + interfaces: + ServiceInterface: diff --git a/server/channels/app/platform/.mockery.yaml b/server/channels/app/platform/.mockery.yaml new file mode 100644 index 0000000000..eda9333eb2 --- /dev/null +++ b/server/channels/app/platform/.mockery.yaml @@ -0,0 +1,11 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/channels/app/platform: + config: + dir: "channels/app/platform/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: mocks + note: "Regenerate this file using `make platform-mocks`." + interfaces: + SuiteIFace: diff --git a/server/channels/store/.mockery.yaml b/server/channels/store/.mockery.yaml new file mode 100644 index 0000000000..d45a913120 --- /dev/null +++ b/server/channels/store/.mockery.yaml @@ -0,0 +1,10 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/channels/store: + config: + include-regex: ".*Store" + dir: "channels/store/storetest/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: mocks + note: "Regenerate this file using `make store-mocks`." diff --git a/server/channels/utils/.mockery.yaml b/server/channels/utils/.mockery.yaml new file mode 100644 index 0000000000..e711ab829e --- /dev/null +++ b/server/channels/utils/.mockery.yaml @@ -0,0 +1,11 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/channels/utils: + config: + dir: "channels/utils/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: mocks + note: "Regenerate this file using `make misc-mocks`." + interfaces: + LicenseValidatorIface: diff --git a/server/einterfaces/.mockery.yaml b/server/einterfaces/.mockery.yaml new file mode 100644 index 0000000000..4b87964f6a --- /dev/null +++ b/server/einterfaces/.mockery.yaml @@ -0,0 +1,13 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/einterfaces: + config: + all: true + dir: "einterfaces/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: mocks + recursive: true + exclude: + - mocks + note: "Regenerate this file using `make einterfaces-mocks`." diff --git a/server/platform/services/cache/.mockery.yaml b/server/platform/services/cache/.mockery.yaml new file mode 100644 index 0000000000..6a0042d617 --- /dev/null +++ b/server/platform/services/cache/.mockery.yaml @@ -0,0 +1,10 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/platform/services/cache: + config: + all: true + dir: "platform/services/cache/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: mocks + note: "Regenerate this file using `make cache-mocks`." diff --git a/server/platform/services/searchengine/.mockery.yaml b/server/platform/services/searchengine/.mockery.yaml new file mode 100644 index 0000000000..13e2c6487f --- /dev/null +++ b/server/platform/services/searchengine/.mockery.yaml @@ -0,0 +1,10 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/platform/services/searchengine: + config: + all: true + dir: "platform/services/searchengine/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: mocks + note: "Regenerate this file using `make searchengine-mocks`." diff --git a/server/platform/services/sharedchannel/.mockery.yaml b/server/platform/services/sharedchannel/.mockery.yaml new file mode 100644 index 0000000000..7dac54280c --- /dev/null +++ b/server/platform/services/sharedchannel/.mockery.yaml @@ -0,0 +1,12 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/platform/services/sharedchannel: + config: + dir: "platform/services/sharedchannel" + inpackage: true + filename: "mock_{{.InterfaceName}}_test.go" + outpkg: "sharedchannel" + note: "Regenerate this file using `make sharedchannel-mocks`." + interfaces: + ServerIface: + AppIface: diff --git a/server/platform/services/telemetry/.mockery.yaml b/server/platform/services/telemetry/.mockery.yaml new file mode 100644 index 0000000000..0b104ef10f --- /dev/null +++ b/server/platform/services/telemetry/.mockery.yaml @@ -0,0 +1,10 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/platform/services/telemetry: + config: + all: true + dir: "platform/services/telemetry/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: "mocks" + note: "Regenerate this file using `make telemetry-mocks`." diff --git a/server/platform/shared/filestore/.mockery.yaml b/server/platform/shared/filestore/.mockery.yaml new file mode 100644 index 0000000000..77059b1eb9 --- /dev/null +++ b/server/platform/shared/filestore/.mockery.yaml @@ -0,0 +1,10 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/v8/platform/shared/filestore: + config: + all: true + dir: "platform/shared/filestore/mocks" + filename: "{{.InterfaceName}}.go" + mockname: "{{.InterfaceName}}" + outpkg: "mocks" + note: "Regenerate this file using `make filestore-mocks`." diff --git a/server/public/plugin/.mockery.yaml b/server/public/plugin/.mockery.yaml new file mode 100644 index 0000000000..6f162d9d9f --- /dev/null +++ b/server/public/plugin/.mockery.yaml @@ -0,0 +1,13 @@ +with-expecter: false +packages: + github.com/mattermost/mattermost/server/public/plugin: + config: + dir: "public/plugin/plugintest" + filename: "{{.InterfaceNameLower}}.go" + mockname: "{{.InterfaceName}}" + outpkg: "plugintest" + note: "Regenerate this file using `make plugin-mocks`." + interfaces: + API: + Hooks: + Driver: