2019-11-29 12:59:40 +01:00
|
|
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
|
|
|
// See LICENSE.txt for license information.
|
2018-12-06 13:19:32 -05:00
|
|
|
|
|
|
|
|
package testlib
|
|
|
|
|
|
|
|
|
|
import (
|
2020-03-02 17:13:39 +01:00
|
|
|
"net/http"
|
|
|
|
|
"strconv"
|
|
|
|
|
|
2023-06-11 10:54:35 +05:30
|
|
|
"github.com/mattermost/mattermost/server/public/model"
|
|
|
|
|
"github.com/mattermost/mattermost/server/public/plugin/plugintest/mock"
|
|
|
|
|
"github.com/mattermost/mattermost/server/v8/channels/store"
|
|
|
|
|
"github.com/mattermost/mattermost/server/v8/channels/store/storetest/mocks"
|
2018-12-06 13:19:32 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type TestStore struct {
|
|
|
|
|
store.Store
|
|
|
|
|
}
|
|
|
|
|
|
2018-12-10 11:58:09 -05:00
|
|
|
func (s *TestStore) Close() {
|
|
|
|
|
// Don't propagate to the underlying store, since this instance is persistent.
|
2018-12-06 13:19:32 -05:00
|
|
|
}
|
2020-03-02 17:13:39 +01:00
|
|
|
|
|
|
|
|
func GetMockStoreForSetupFunctions() *mocks.Store {
|
|
|
|
|
mockStore := mocks.Store{}
|
|
|
|
|
systemStore := mocks.SystemStore{}
|
2022-03-04 18:49:40 -05:00
|
|
|
systemStore.On("GetByName", "FirstAdminSetupComplete").Return(&model.System{Name: "FirstAdminSetupComplete", Value: "true"}, nil)
|
2022-06-02 22:53:12 +05:30
|
|
|
systemStore.On("GetByName", "RemainingSchemaMigrations").Return(&model.System{Name: "RemainingSchemaMigrations", Value: "true"}, nil)
|
2021-04-30 23:21:26 +02:00
|
|
|
systemStore.On("GetByName", "ContentExtractionConfigDefaultTrueMigrationComplete").Return(&model.System{Name: "ContentExtractionConfigDefaultTrueMigrationComplete", Value: "true"}, nil)
|
2020-08-21 20:23:04 +02:00
|
|
|
systemStore.On("GetByName", "UpgradedFromTE").Return(nil, model.NewAppError("FakeError", "app.system.get_by_name.app_error", nil, "", http.StatusInternalServerError))
|
2021-02-26 07:41:05 +01:00
|
|
|
systemStore.On("GetByName", "ContentExtractionConfigMigrationComplete").Return(&model.System{Name: "ContentExtractionConfigMigrationComplete", Value: "true"}, nil)
|
2020-08-13 11:02:57 -04:00
|
|
|
systemStore.On("GetByName", "AsymmetricSigningKey").Return(nil, model.NewAppError("FakeError", "app.system.get_by_name.app_error", nil, "", http.StatusInternalServerError))
|
|
|
|
|
systemStore.On("GetByName", "PostActionCookieSecret").Return(nil, model.NewAppError("FakeError", "app.system.get_by_name.app_error", nil, "", http.StatusInternalServerError))
|
2020-03-02 17:13:39 +01:00
|
|
|
systemStore.On("GetByName", "InstallationDate").Return(&model.System{Name: "InstallationDate", Value: strconv.FormatInt(model.GetMillis(), 10)}, nil)
|
2020-04-30 18:18:12 +03:00
|
|
|
systemStore.On("GetByName", "FirstServerRunTimestamp").Return(&model.System{Name: "FirstServerRunTimestamp", Value: "10"}, nil)
|
2020-03-02 17:13:39 +01:00
|
|
|
systemStore.On("GetByName", "AdvancedPermissionsMigrationComplete").Return(&model.System{Name: "AdvancedPermissionsMigrationComplete", Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", "EmojisPermissionsMigrationComplete").Return(&model.System{Name: "EmojisPermissionsMigrationComplete", Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", "GuestRolesCreationMigrationComplete").Return(&model.System{Name: "GuestRolesCreationMigrationComplete", Value: "true"}, nil)
|
2020-08-21 16:49:31 -04:00
|
|
|
systemStore.On("GetByName", "SystemConsoleRolesCreationMigrationComplete").Return(&model.System{Name: "SystemConsoleRolesCreationMigrationComplete", Value: "true"}, nil)
|
2021-12-07 09:43:33 -08:00
|
|
|
systemStore.On("GetByName", "PlaybookRolesCreationMigrationComplete").Return(&model.System{Name: "PlaybookRolesCreationMigrationComplete", Value: "true"}, nil)
|
2023-02-10 00:55:49 +02:00
|
|
|
systemStore.On("GetByName", "PostPriorityConfigDefaultTrueMigrationComplete").Return(&model.System{Name: "PostPriorityConfigDefaultTrueMigrationComplete", Value: "true"}, nil)
|
2021-07-12 20:05:36 +02:00
|
|
|
systemStore.On("GetByName", model.MigrationKeyEmojiPermissionsSplit).Return(&model.System{Name: model.MigrationKeyEmojiPermissionsSplit, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyWebhookPermissionsSplit).Return(&model.System{Name: model.MigrationKeyWebhookPermissionsSplit, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyListJoinPublicPrivateTeams).Return(&model.System{Name: model.MigrationKeyListJoinPublicPrivateTeams, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyRemovePermanentDeleteUser).Return(&model.System{Name: model.MigrationKeyRemovePermanentDeleteUser, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddBotPermissions).Return(&model.System{Name: model.MigrationKeyAddBotPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyApplyChannelManageDeleteToChannelUser).Return(&model.System{Name: model.MigrationKeyApplyChannelManageDeleteToChannelUser, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyRemoveChannelManageDeleteFromTeamUser).Return(&model.System{Name: model.MigrationKeyRemoveChannelManageDeleteFromTeamUser, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyViewMembersNewPermission).Return(&model.System{Name: model.MigrationKeyViewMembersNewPermission, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddManageGuestsPermissions).Return(&model.System{Name: model.MigrationKeyAddManageGuestsPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyChannelModerationsPermissions).Return(&model.System{Name: model.MigrationKeyChannelModerationsPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddUseGroupMentionsPermission).Return(&model.System{Name: model.MigrationKeyAddUseGroupMentionsPermission, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddSystemConsolePermissions).Return(&model.System{Name: model.MigrationKeyAddSystemConsolePermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddConvertChannelPermissions).Return(&model.System{Name: model.MigrationKeyAddConvertChannelPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddSystemRolesPermissions).Return(&model.System{Name: model.MigrationKeyAddSystemRolesPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddBillingPermissions).Return(&model.System{Name: model.MigrationKeyAddBillingPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddDownloadComplianceExportResults).Return(&model.System{Name: model.MigrationKeyAddDownloadComplianceExportResults, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddSiteSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddSiteSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddExperimentalSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddExperimentalSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddAuthenticationSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddAuthenticationSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddComplianceSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddExperimentalSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddEnvironmentSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddEnvironmentSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddReportingSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddReportingSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddTestEmailAncillaryPermission).Return(&model.System{Name: model.MigrationKeyAddTestEmailAncillaryPermission, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddAboutSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddAboutSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddIntegrationsSubsectionPermissions).Return(&model.System{Name: model.MigrationKeyAddIntegrationsSubsectionPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddManageSharedChannelPermissions).Return(&model.System{Name: model.MigrationKeyAddManageSharedChannelPermissions, Value: "true"}, nil)
|
|
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddManageSecureConnectionsPermissions).Return(&model.System{Name: model.MigrationKeyAddManageSecureConnectionsPermissions, Value: "true"}, nil)
|
2021-12-07 09:43:33 -08:00
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddPlaybooksPermissions).Return(&model.System{Name: model.MigrationKeyAddPlaybooksPermissions, Value: "true"}, nil)
|
2022-02-17 12:34:39 -05:00
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddCustomUserGroupsPermissions).Return(&model.System{Name: model.MigrationKeyAddCustomUserGroupsPermissions, Value: "true"}, nil)
|
2022-03-03 08:10:41 -08:00
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddPlayboosksManageRolesPermissions).Return(&model.System{Name: model.MigrationKeyAddPlayboosksManageRolesPermissions, Value: "true"}, nil)
|
2022-12-19 22:31:59 +05:30
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddCustomUserGroupsPermissionRestore).Return(&model.System{Name: model.MigrationKeyAddCustomUserGroupsPermissionRestore, Value: "true"}, nil)
|
2023-07-31 09:12:53 -04:00
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddReadChannelContentPermissions).Return(&model.System{Name: model.MigrationKeyAddReadChannelContentPermissions, Value: "true"}, nil)
|
2023-10-12 10:52:10 -04:00
|
|
|
systemStore.On("GetByName", model.MigrationKeyDeleteEmptyDrafts).Return(&model.System{Name: model.MigrationKeyDeleteEmptyDrafts, Value: "true"}, nil)
|
2023-11-14 09:12:04 -05:00
|
|
|
systemStore.On("GetByName", model.MigrationKeyAddIPFilteringPermissions).Return(&model.System{Name: model.MigrationKeyAddIPFilteringPermissions, Value: "true"}, nil)
|
2022-07-13 03:38:07 -04:00
|
|
|
systemStore.On("GetByName", "CustomGroupAdminRoleCreationMigrationComplete").Return(&model.System{Name: model.MigrationKeyAddPlayboosksManageRolesPermissions, Value: "true"}, nil)
|
2022-10-20 00:53:20 +05:30
|
|
|
systemStore.On("GetByName", "products_boards").Return(&model.System{Name: "products_boards", Value: "true"}, nil)
|
2023-07-22 01:46:56 +05:30
|
|
|
systemStore.On("GetByName", "elasticsearch_fix_channel_index_migration").Return(&model.System{Name: "elasticsearch_fix_channel_index_migration", Value: "true"}, nil)
|
2021-10-20 09:58:25 +02:00
|
|
|
systemStore.On("InsertIfExists", mock.AnythingOfType("*model.System")).Return(&model.System{}, nil).Once()
|
2020-03-02 17:13:39 +01:00
|
|
|
systemStore.On("Save", mock.AnythingOfType("*model.System")).Return(nil)
|
|
|
|
|
|
|
|
|
|
userStore := mocks.UserStore{}
|
|
|
|
|
userStore.On("Count", mock.AnythingOfType("model.UserCountOptions")).Return(int64(1), nil)
|
|
|
|
|
userStore.On("DeactivateGuests").Return(nil, nil)
|
|
|
|
|
userStore.On("ClearCaches").Return(nil)
|
|
|
|
|
|
|
|
|
|
postStore := mocks.PostStore{}
|
|
|
|
|
postStore.On("GetMaxPostSize").Return(4000)
|
|
|
|
|
|
|
|
|
|
statusStore := mocks.StatusStore{}
|
|
|
|
|
statusStore.On("ResetAll").Return(nil)
|
|
|
|
|
|
|
|
|
|
channelStore := mocks.ChannelStore{}
|
|
|
|
|
channelStore.On("ClearCaches").Return(nil)
|
|
|
|
|
|
2020-03-23 13:44:20 -04:00
|
|
|
schemeStore := mocks.SchemeStore{}
|
2021-07-12 20:05:36 +02:00
|
|
|
schemeStore.On("GetAllPage", model.SchemeScopeTeam, mock.Anything, 100).Return([]*model.Scheme{}, nil)
|
2020-03-23 13:44:20 -04:00
|
|
|
|
2020-03-02 17:13:39 +01:00
|
|
|
teamStore := mocks.TeamStore{}
|
|
|
|
|
|
2020-11-16 18:25:32 +05:30
|
|
|
roleStore := mocks.RoleStore{}
|
|
|
|
|
roleStore.On("GetAll").Return([]*model.Role{}, nil)
|
|
|
|
|
|
2021-06-14 18:08:00 +03:00
|
|
|
sessionStore := mocks.SessionStore{}
|
2021-06-18 19:25:03 +03:00
|
|
|
oAuthStore := mocks.OAuthStore{}
|
2021-10-13 15:20:40 +03:00
|
|
|
groupStore := mocks.GroupStore{}
|
2021-06-14 18:08:00 +03:00
|
|
|
|
2023-04-18 13:58:33 +02:00
|
|
|
pluginStore := mocks.PluginStore{}
|
|
|
|
|
pluginStore.On("List", mock.Anything, mock.Anything, mock.Anything).Return([]string{}, nil)
|
|
|
|
|
|
2020-03-02 17:13:39 +01:00
|
|
|
mockStore.On("System").Return(&systemStore)
|
|
|
|
|
mockStore.On("User").Return(&userStore)
|
|
|
|
|
mockStore.On("Post").Return(&postStore)
|
|
|
|
|
mockStore.On("Status").Return(&statusStore)
|
|
|
|
|
mockStore.On("Channel").Return(&channelStore)
|
|
|
|
|
mockStore.On("Team").Return(&teamStore)
|
2020-11-16 18:25:32 +05:30
|
|
|
mockStore.On("Role").Return(&roleStore)
|
2020-03-23 13:44:20 -04:00
|
|
|
mockStore.On("Scheme").Return(&schemeStore)
|
2020-03-02 17:13:39 +01:00
|
|
|
mockStore.On("Close").Return(nil)
|
|
|
|
|
mockStore.On("DropAllTables").Return(nil)
|
|
|
|
|
mockStore.On("MarkSystemRanUnitTests").Return(nil)
|
2021-06-14 18:08:00 +03:00
|
|
|
mockStore.On("Session").Return(&sessionStore)
|
2021-06-18 19:25:03 +03:00
|
|
|
mockStore.On("OAuth").Return(&oAuthStore)
|
2021-10-13 15:20:40 +03:00
|
|
|
mockStore.On("Group").Return(&groupStore)
|
2022-03-15 16:39:23 +03:00
|
|
|
mockStore.On("GetDBSchemaVersion").Return(1, nil)
|
2023-04-18 13:58:33 +02:00
|
|
|
mockStore.On("Plugin").Return(&pluginStore)
|
2022-03-15 16:39:23 +03:00
|
|
|
|
2020-03-02 17:13:39 +01:00
|
|
|
return &mockStore
|
|
|
|
|
}
|