Simplify request generation in store tests (#25422)

Этот коммит содержится в:
Ben Schumacher
2023-11-16 09:51:18 +01:00
коммит произвёл GitHub
родитель 51715d5ed6
Коммит afb48219c0
52 изменённых файлов: 1666 добавлений и 1752 удалений

Просмотреть файл

@@ -10,6 +10,7 @@ import (
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/plugin" "github.com/mattermost/mattermost/server/public/plugin"
"github.com/mattermost/mattermost/server/public/shared/driver" "github.com/mattermost/mattermost/server/public/shared/driver"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/app/plugin_api_tests" "github.com/mattermost/mattermost/server/v8/channels/app/plugin_api_tests"
"github.com/mattermost/mattermost/server/v8/channels/store/sqlstore" "github.com/mattermost/mattermost/server/v8/channels/store/sqlstore"
"github.com/mattermost/mattermost/server/v8/channels/store/storetest" "github.com/mattermost/mattermost/server/v8/channels/store/storetest"
@@ -29,6 +30,7 @@ func (p *MyPlugin) OnConfigurationChange() error {
} }
func (p *MyPlugin) MessageWillBePosted(_ *plugin.Context, _ *model.Post) (*model.Post, string) { func (p *MyPlugin) MessageWillBePosted(_ *plugin.Context, _ *model.Post) (*model.Post, string) {
rctx := request.TestContext(p.t)
settings := p.API.GetUnsanitizedConfig().SqlSettings settings := p.API.GetUnsanitizedConfig().SqlSettings
settings.Trace = model.NewBool(false) settings.Trace = model.NewBool(false)
store, err := sqlstore.New(settings, nil) store, err := sqlstore.New(settings, nil)
@@ -43,11 +45,11 @@ func (p *MyPlugin) MessageWillBePosted(_ *plugin.Context, _ *model.Post) (*model
wrapper := sqlstore.NewStoreTestWrapper(store) wrapper := sqlstore.NewStoreTestWrapper(store)
// Testing with a handful of stores // Testing with a handful of stores
storetest.TestPostStore(p.t, store, wrapper) storetest.TestPostStore(p.t, rctx, store, wrapper)
storetest.TestUserStore(p.t, store, wrapper) storetest.TestUserStore(p.t, rctx, store, wrapper)
storetest.TestTeamStore(p.t, store) storetest.TestTeamStore(p.t, rctx, store)
storetest.TestChannelStore(p.t, store, wrapper) storetest.TestChannelStore(p.t, rctx, store, wrapper)
storetest.TestBotStore(p.t, store, wrapper) storetest.TestBotStore(p.t, rctx, store, wrapper)
store.GetMasterX().Close() store.GetMasterX().Close()
} }

Просмотреть файл

@@ -9,8 +9,6 @@ import (
"time" "time"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/mlog"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/jobs" "github.com/mattermost/mattermost/server/v8/channels/jobs"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@@ -75,8 +73,7 @@ func TestBatchMigrationWorker(t *testing.T) {
) )
th.Server.Jobs.RegisterJobType(migrationKey, worker, nil) th.Server.Jobs.RegisterJobType(migrationKey, worker, nil)
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t)) job, appErr := th.Server.Jobs.CreateJob(th.Context, migrationKey, nil)
job, appErr := th.Server.Jobs.CreateJob(ctx, migrationKey, nil)
require.Nil(t, appErr) require.Nil(t, appErr)
done := make(chan bool) done := make(chan bool)
@@ -112,8 +109,7 @@ func TestBatchMigrationWorker(t *testing.T) {
t.Helper() t.Helper()
require.Eventuallyf(t, func() bool { require.Eventuallyf(t, func() bool {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t)) actualJob, appErr := th.Server.Jobs.GetJob(th.Context, job.Id)
actualJob, appErr := th.Server.Jobs.GetJob(ctx, job.Id)
require.Nil(t, appErr) require.Nil(t, appErr)
require.Equal(t, job.Id, actualJob.Id) require.Equal(t, job.Id, actualJob.Id)
@@ -122,8 +118,7 @@ func TestBatchMigrationWorker(t *testing.T) {
} }
assertJobReset := func(t *testing.T, th *TestHelper, job *model.Job) { assertJobReset := func(t *testing.T, th *TestHelper, job *model.Job) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t)) actualJob, appErr := th.Server.Jobs.GetJob(th.Context, job.Id)
actualJob, appErr := th.Server.Jobs.GetJob(ctx, job.Id)
require.Nil(t, appErr) require.Nil(t, appErr)
assert.Empty(t, actualJob.Progress) assert.Empty(t, actualJob.Progress)
assert.Empty(t, actualJob.Data) assert.Empty(t, actualJob.Data)

Просмотреть файл

@@ -20,57 +20,56 @@ func TestEmojiStore(t *testing.T) {
} }
func TestEmojiStoreCache(t *testing.T) { func TestEmojiStoreCache(t *testing.T) {
rctx := request.TestContext(t)
fakeEmoji := model.Emoji{Id: "123", Name: "name123"} fakeEmoji := model.Emoji{Id: "123", Name: "name123"}
fakeEmoji2 := model.Emoji{Id: "321", Name: "name321"} fakeEmoji2 := model.Emoji{Id: "321", Name: "name321"}
ctxEmoji := model.Emoji{Id: "master", Name: "name123"} ctxEmoji := model.Emoji{Id: "master", Name: "name123"}
t.Run("first call by id not cached, second cached and returning same data", func(t *testing.T) { t.Run("first call by id not cached, second cached and returning same data", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
emoji, err := cachedStore.Emoji().Get(c, "123", true) emoji, err := cachedStore.Emoji().Get(rctx, "123", true)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
emoji, err = cachedStore.Emoji().Get(c, "123", true) emoji, err = cachedStore.Emoji().Get(rctx, "123", true)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
}) })
t.Run("GetByName: first call by name not cached, second cached and returning same data", func(t *testing.T) { t.Run("GetByName: first call by name not cached, second cached and returning same data", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
emoji, err := cachedStore.Emoji().GetByName(c, "name123", true) emoji, err := cachedStore.Emoji().GetByName(rctx, "name123", true)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
emoji, err = cachedStore.Emoji().GetByName(c, "name123", true) emoji, err = cachedStore.Emoji().GetByName(rctx, "name123", true)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
}) })
t.Run("GetMultipleByName: first call by name not cached, second cached and returning same data", func(t *testing.T) { t.Run("GetMultipleByName: first call by name not cached, second cached and returning same data", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
emojis, err := cachedStore.Emoji().GetMultipleByName(c, []string{"name123"}) emojis, err := cachedStore.Emoji().GetMultipleByName(rctx, []string{"name123"})
require.NoError(t, err) require.NoError(t, err)
require.Len(t, emojis, 1) require.Len(t, emojis, 1)
assert.Equal(t, emojis[0], &fakeEmoji) assert.Equal(t, emojis[0], &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetMultipleByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetMultipleByName", 1)
emojis, err = cachedStore.Emoji().GetMultipleByName(c, []string{"name123"}) emojis, err = cachedStore.Emoji().GetMultipleByName(rctx, []string{"name123"})
require.NoError(t, err) require.NoError(t, err)
require.Len(t, emojis, 1) require.Len(t, emojis, 1)
assert.Equal(t, emojis[0], &fakeEmoji) assert.Equal(t, emojis[0], &fakeEmoji)
@@ -78,19 +77,18 @@ func TestEmojiStoreCache(t *testing.T) {
}) })
t.Run("GetMultipleByName: multiple elements", func(t *testing.T) { t.Run("GetMultipleByName: multiple elements", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
emojis, err := cachedStore.Emoji().GetMultipleByName(c, []string{"name123", "name321"}) emojis, err := cachedStore.Emoji().GetMultipleByName(rctx, []string{"name123", "name321"})
require.NoError(t, err) require.NoError(t, err)
require.Len(t, emojis, 2) require.Len(t, emojis, 2)
assert.Equal(t, emojis[0], &fakeEmoji) assert.Equal(t, emojis[0], &fakeEmoji)
assert.Equal(t, emojis[1], &fakeEmoji2) assert.Equal(t, emojis[1], &fakeEmoji2)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetMultipleByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetMultipleByName", 1)
emojis, err = cachedStore.Emoji().GetMultipleByName(c, []string{"name123"}) emojis, err = cachedStore.Emoji().GetMultipleByName(rctx, []string{"name123"})
require.NoError(t, err) require.NoError(t, err)
require.Len(t, emojis, 1) require.Len(t, emojis, 1)
assert.Equal(t, emojis[0], &fakeEmoji) assert.Equal(t, emojis[0], &fakeEmoji)
@@ -98,142 +96,132 @@ func TestEmojiStoreCache(t *testing.T) {
}) })
t.Run("first call by id not cached, second force not cached", func(t *testing.T) { t.Run("first call by id not cached, second force not cached", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().Get(c, "123", true) cachedStore.Emoji().Get(rctx, "123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
cachedStore.Emoji().Get(c, "123", false) cachedStore.Emoji().Get(rctx, "123", false)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2)
}) })
t.Run("first call by name not cached, second force not cached", func(t *testing.T) { t.Run("first call by name not cached, second force not cached", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().GetByName(c, "name123", true) cachedStore.Emoji().GetByName(rctx, "name123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
cachedStore.Emoji().GetByName(c, "name123", false) cachedStore.Emoji().GetByName(rctx, "name123", false)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2)
}) })
t.Run("first call by id force not cached, second not cached, third cached", func(t *testing.T) { t.Run("first call by id force not cached, second not cached, third cached", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().Get(c, "123", false) cachedStore.Emoji().Get(rctx, "123", false)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
cachedStore.Emoji().Get(c, "123", true) cachedStore.Emoji().Get(rctx, "123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2)
cachedStore.Emoji().Get(c, "123", true) cachedStore.Emoji().Get(rctx, "123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2)
}) })
t.Run("first call by name force not cached, second not cached, third cached", func(t *testing.T) { t.Run("first call by name force not cached, second not cached, third cached", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().GetByName(c, "name123", false) cachedStore.Emoji().GetByName(rctx, "name123", false)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
cachedStore.Emoji().GetByName(c, "name123", true) cachedStore.Emoji().GetByName(rctx, "name123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2)
cachedStore.Emoji().GetByName(c, "name123", true) cachedStore.Emoji().GetByName(rctx, "name123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2)
}) })
t.Run("first call by id, second call by name and GetMultipleByName cached", func(t *testing.T) { t.Run("first call by id, second call by name and GetMultipleByName cached", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().Get(c, "123", true) cachedStore.Emoji().Get(rctx, "123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
cachedStore.Emoji().GetByName(c, "name123", true) cachedStore.Emoji().GetByName(rctx, "name123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 0) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 0)
cachedStore.Emoji().GetMultipleByName(c, []string{"name123"}) cachedStore.Emoji().GetMultipleByName(rctx, []string{"name123"})
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetMultipleByName", 0) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetMultipleByName", 0)
}) })
t.Run("first call by name, second call by id cached", func(t *testing.T) { t.Run("first call by name, second call by id cached", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().GetByName(c, "name123", true) cachedStore.Emoji().GetByName(rctx, "name123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
cachedStore.Emoji().Get(c, "123", true) cachedStore.Emoji().Get(rctx, "123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 0) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 0)
}) })
t.Run("first call by id not cached, invalidate, and then not cached again", func(t *testing.T) { t.Run("first call by id not cached, invalidate, and then not cached again", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().Get(c, "123", true) cachedStore.Emoji().Get(rctx, "123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
cachedStore.Emoji().Delete(&fakeEmoji, 0) cachedStore.Emoji().Delete(&fakeEmoji, 0)
cachedStore.Emoji().Get(c, "123", true) cachedStore.Emoji().Get(rctx, "123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2)
}) })
t.Run("call by id, use master", func(t *testing.T) { t.Run("call by id, use master", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().Get(c, "master", true) cachedStore.Emoji().Get(rctx, "master", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
cachedStore.Emoji().Delete(&ctxEmoji, 0) cachedStore.Emoji().Delete(&ctxEmoji, 0)
cachedStore.Emoji().Get(c, "master", true) cachedStore.Emoji().Get(rctx, "master", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 2)
}) })
t.Run("first call by name not cached, invalidate, and then not cached again", func(t *testing.T) { t.Run("first call by name not cached, invalidate, and then not cached again", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().GetByName(c, "name123", true) cachedStore.Emoji().GetByName(rctx, "name123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
cachedStore.Emoji().Delete(&fakeEmoji, 0) cachedStore.Emoji().Delete(&fakeEmoji, 0)
cachedStore.Emoji().GetByName(c, "name123", true) cachedStore.Emoji().GetByName(rctx, "name123", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2)
}) })
t.Run("call by name, use master", func(t *testing.T) { t.Run("call by name, use master", func(t *testing.T) {
c := request.TestContext(t)
mockStore := getMockStore(t) mockStore := getMockStore(t)
mockCacheProvider := getMockCacheProvider() mockCacheProvider := getMockCacheProvider()
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider) cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
require.NoError(t, err) require.NoError(t, err)
cachedStore.Emoji().GetByName(c, "master", true) cachedStore.Emoji().GetByName(rctx, "master", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
cachedStore.Emoji().Delete(&ctxEmoji, 0) cachedStore.Emoji().Delete(&ctxEmoji, 0)
cachedStore.Emoji().GetByName(c, "master", true) cachedStore.Emoji().GetByName(rctx, "master", true)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 2)
}) })
} }

Просмотреть файл

@@ -9,6 +9,7 @@ import (
"testing" "testing"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/store/sqlstore" "github.com/mattermost/mattermost/server/v8/channels/store/sqlstore"
"github.com/mattermost/mattermost/server/v8/channels/store/storetest" "github.com/mattermost/mattermost/server/v8/channels/store/storetest"
@@ -31,7 +32,7 @@ func newStoreType(name, driver string) *storeType {
} }
} }
func StoreTest(t *testing.T, f func(*testing.T, store.Store)) { func StoreTest(t *testing.T, f func(*testing.T, request.CTX, store.Store)) {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
tearDownStores() tearDownStores()
@@ -40,16 +41,18 @@ func StoreTest(t *testing.T, f func(*testing.T, store.Store)) {
}() }()
for _, st := range storeTypes { for _, st := range storeTypes {
st := st st := st
rctx := request.TestContext(t)
t.Run(st.Name, func(t *testing.T) { t.Run(st.Name, func(t *testing.T) {
if testing.Short() { if testing.Short() {
t.SkipNow() t.SkipNow()
} }
f(t, st.Store) f(t, rctx, st.Store)
}) })
} }
} }
func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, store.Store, storetest.SqlStore)) { func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, request.CTX, store.Store, storetest.SqlStore)) {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
tearDownStores() tearDownStores()
@@ -58,11 +61,13 @@ func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, store.Store, storete
}() }()
for _, st := range storeTypes { for _, st := range storeTypes {
st := st st := st
rctx := request.TestContext(t)
t.Run(st.Name, func(t *testing.T) { t.Run(st.Name, func(t *testing.T) {
if testing.Short() { if testing.Short() {
t.SkipNow() t.SkipNow()
} }
f(t, st.Store, sqlstore.NewStoreTestWrapper(st.SqlStore)) f(t, rctx, st.Store, sqlstore.NewStoreTestWrapper(st.SqlStore))
}) })
} }
} }

Просмотреть файл

@@ -378,7 +378,7 @@ func createUserAccessToken(ss store.Store, userId string) *model.UserAccessToken
} }
func TestCheckIntegrity(t *testing.T) { func TestCheckIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
ss.DropAllTables() ss.DropAllTables()
t.Run("generate reports with no records", func(t *testing.T) { t.Run("generate reports with no records", func(t *testing.T) {
results := ss.CheckIntegrity() results := ss.CheckIntegrity()
@@ -396,7 +396,7 @@ func TestCheckIntegrity(t *testing.T) {
} }
func TestCheckParentChildIntegrity(t *testing.T) { func TestCheckParentChildIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
t.Run("should receive an error", func(t *testing.T) { t.Run("should receive an error", func(t *testing.T) {
config := relationalCheckConfig{ config := relationalCheckConfig{
@@ -413,7 +413,7 @@ func TestCheckParentChildIntegrity(t *testing.T) {
} }
func TestCheckChannelsCommandWebhooksIntegrity(t *testing.T) { func TestCheckChannelsCommandWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -440,7 +440,7 @@ func TestCheckChannelsCommandWebhooksIntegrity(t *testing.T) {
} }
func TestCheckChannelsChannelMemberHistoryIntegrity(t *testing.T) { func TestCheckChannelsChannelMemberHistoryIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -471,7 +471,7 @@ func TestCheckChannelsChannelMemberHistoryIntegrity(t *testing.T) {
} }
func TestCheckChannelsChannelMembersIntegrity(t *testing.T) { func TestCheckChannelsChannelMembersIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -499,7 +499,7 @@ func TestCheckChannelsChannelMembersIntegrity(t *testing.T) {
} }
func TestCheckChannelsIncomingWebhooksIntegrity(t *testing.T) { func TestCheckChannelsIncomingWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -527,7 +527,7 @@ func TestCheckChannelsIncomingWebhooksIntegrity(t *testing.T) {
} }
func TestCheckChannelsOutgoingWebhooksIntegrity(t *testing.T) { func TestCheckChannelsOutgoingWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -557,7 +557,7 @@ func TestCheckChannelsOutgoingWebhooksIntegrity(t *testing.T) {
} }
func TestCheckChannelsPostsIntegrity(t *testing.T) { func TestCheckChannelsPostsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -584,7 +584,7 @@ func TestCheckChannelsPostsIntegrity(t *testing.T) {
} }
func TestCheckCommandsCommandWebhooksIntegrity(t *testing.T) { func TestCheckCommandsCommandWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -612,7 +612,7 @@ func TestCheckCommandsCommandWebhooksIntegrity(t *testing.T) {
} }
func TestCheckPostsFileInfoIntegrity(t *testing.T) { func TestCheckPostsFileInfoIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -640,7 +640,7 @@ func TestCheckPostsFileInfoIntegrity(t *testing.T) {
} }
func TestCheckPostsPostsRootIdIntegrity(t *testing.T) { func TestCheckPostsPostsRootIdIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -673,7 +673,7 @@ func TestCheckPostsPostsRootIdIntegrity(t *testing.T) {
} }
func TestCheckPostsReactionsIntegrity(t *testing.T) { func TestCheckPostsReactionsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -700,7 +700,7 @@ func TestCheckPostsReactionsIntegrity(t *testing.T) {
} }
func TestCheckSchemesChannelsIntegrity(t *testing.T) { func TestCheckSchemesChannelsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -731,7 +731,7 @@ func TestCheckSchemesChannelsIntegrity(t *testing.T) {
} }
func TestCheckSchemesTeamsIntegrity(t *testing.T) { func TestCheckSchemesTeamsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -762,8 +762,7 @@ func TestCheckSchemesTeamsIntegrity(t *testing.T) {
} }
func TestCheckSessionsAuditsIntegrity(t *testing.T) { func TestCheckSessionsAuditsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -776,7 +775,7 @@ func TestCheckSessionsAuditsIntegrity(t *testing.T) {
t.Run("should generate a report with one record", func(t *testing.T) { t.Run("should generate a report with one record", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
session := createSession(c, ss, model.NewId()) session := createSession(rctx, ss, model.NewId())
sessionId := session.Id sessionId := session.Id
audit := createAudit(ss, userId, sessionId) audit := createAudit(ss, userId, sessionId)
dbmap.Exec(`DELETE FROM Sessions WHERE Id=?`, session.Id) dbmap.Exec(`DELETE FROM Sessions WHERE Id=?`, session.Id)
@@ -794,7 +793,7 @@ func TestCheckSessionsAuditsIntegrity(t *testing.T) {
} }
func TestCheckTeamsChannelsIntegrity(t *testing.T) { func TestCheckTeamsChannelsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -870,7 +869,7 @@ func TestCheckTeamsChannelsIntegrity(t *testing.T) {
} }
func TestCheckTeamsCommandsIntegrity(t *testing.T) { func TestCheckTeamsCommandsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -898,7 +897,7 @@ func TestCheckTeamsCommandsIntegrity(t *testing.T) {
} }
func TestCheckTeamsIncomingWebhooksIntegrity(t *testing.T) { func TestCheckTeamsIncomingWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -926,7 +925,7 @@ func TestCheckTeamsIncomingWebhooksIntegrity(t *testing.T) {
} }
func TestCheckTeamsOutgoingWebhooksIntegrity(t *testing.T) { func TestCheckTeamsOutgoingWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -954,7 +953,7 @@ func TestCheckTeamsOutgoingWebhooksIntegrity(t *testing.T) {
} }
func TestCheckTeamsTeamMembersIntegrity(t *testing.T) { func TestCheckTeamsTeamMembersIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -982,7 +981,7 @@ func TestCheckTeamsTeamMembersIntegrity(t *testing.T) {
} }
func TestCheckUsersAuditsIntegrity(t *testing.T) { func TestCheckUsersAuditsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1012,7 +1011,7 @@ func TestCheckUsersAuditsIntegrity(t *testing.T) {
} }
func TestCheckUsersCommandWebhooksIntegrity(t *testing.T) { func TestCheckUsersCommandWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1040,7 +1039,7 @@ func TestCheckUsersCommandWebhooksIntegrity(t *testing.T) {
} }
func TestCheckUsersChannelsIntegrity(t *testing.T) { func TestCheckUsersChannelsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1067,7 +1066,7 @@ func TestCheckUsersChannelsIntegrity(t *testing.T) {
} }
func TestCheckUsersChannelMemberHistoryIntegrity(t *testing.T) { func TestCheckUsersChannelMemberHistoryIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1097,7 +1096,7 @@ func TestCheckUsersChannelMemberHistoryIntegrity(t *testing.T) {
} }
func TestCheckUsersChannelMembersIntegrity(t *testing.T) { func TestCheckUsersChannelMembersIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1127,7 +1126,7 @@ func TestCheckUsersChannelMembersIntegrity(t *testing.T) {
} }
func TestCheckUsersCommandsIntegrity(t *testing.T) { func TestCheckUsersCommandsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1155,7 +1154,7 @@ func TestCheckUsersCommandsIntegrity(t *testing.T) {
} }
func TestCheckUsersCompliancesIntegrity(t *testing.T) { func TestCheckUsersCompliancesIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1185,7 +1184,7 @@ func TestCheckUsersCompliancesIntegrity(t *testing.T) {
} }
func TestCheckUsersEmojiIntegrity(t *testing.T) { func TestCheckUsersEmojiIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1215,7 +1214,7 @@ func TestCheckUsersEmojiIntegrity(t *testing.T) {
} }
func TestCheckUsersFileInfoIntegrity(t *testing.T) { func TestCheckUsersFileInfoIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1245,7 +1244,7 @@ func TestCheckUsersFileInfoIntegrity(t *testing.T) {
} }
func TestCheckUsersIncomingWebhooksIntegrity(t *testing.T) { func TestCheckUsersIncomingWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1273,7 +1272,7 @@ func TestCheckUsersIncomingWebhooksIntegrity(t *testing.T) {
} }
func TestCheckUsersOAuthAccessDataIntegrity(t *testing.T) { func TestCheckUsersOAuthAccessDataIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1303,7 +1302,7 @@ func TestCheckUsersOAuthAccessDataIntegrity(t *testing.T) {
} }
func TestCheckUsersOAuthAppsIntegrity(t *testing.T) { func TestCheckUsersOAuthAppsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1333,7 +1332,7 @@ func TestCheckUsersOAuthAppsIntegrity(t *testing.T) {
} }
func TestCheckUsersOAuthAuthDataIntegrity(t *testing.T) { func TestCheckUsersOAuthAuthDataIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1363,7 +1362,7 @@ func TestCheckUsersOAuthAuthDataIntegrity(t *testing.T) {
} }
func TestCheckUsersOutgoingWebhooksIntegrity(t *testing.T) { func TestCheckUsersOutgoingWebhooksIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1391,7 +1390,7 @@ func TestCheckUsersOutgoingWebhooksIntegrity(t *testing.T) {
} }
func TestCheckUsersPostsIntegrity(t *testing.T) { func TestCheckUsersPostsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1418,7 +1417,7 @@ func TestCheckUsersPostsIntegrity(t *testing.T) {
} }
func TestCheckUsersPreferencesIntegrity(t *testing.T) { func TestCheckUsersPreferencesIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1464,7 +1463,7 @@ func TestCheckUsersPreferencesIntegrity(t *testing.T) {
} }
func TestCheckUsersReactionsIntegrity(t *testing.T) { func TestCheckUsersReactionsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1493,8 +1492,7 @@ func TestCheckUsersReactionsIntegrity(t *testing.T) {
} }
func TestCheckUsersSessionsIntegrity(t *testing.T) { func TestCheckUsersSessionsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1507,7 +1505,7 @@ func TestCheckUsersSessionsIntegrity(t *testing.T) {
t.Run("should generate a report with one record", func(t *testing.T) { t.Run("should generate a report with one record", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
session := createSession(c, ss, userId) session := createSession(rctx, ss, userId)
result := checkUsersSessionsIntegrity(store) result := checkUsersSessionsIntegrity(store)
require.NoError(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
@@ -1522,7 +1520,7 @@ func TestCheckUsersSessionsIntegrity(t *testing.T) {
} }
func TestCheckUsersStatusIntegrity(t *testing.T) { func TestCheckUsersStatusIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1551,7 +1549,7 @@ func TestCheckUsersStatusIntegrity(t *testing.T) {
} }
func TestCheckUsersTeamMembersIntegrity(t *testing.T) { func TestCheckUsersTeamMembersIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1581,7 +1579,7 @@ func TestCheckUsersTeamMembersIntegrity(t *testing.T) {
} }
func TestCheckUsersUserAccessTokensIntegrity(t *testing.T) { func TestCheckUsersUserAccessTokensIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()
@@ -1611,7 +1609,7 @@ func TestCheckUsersUserAccessTokensIntegrity(t *testing.T) {
} }
func TestCheckThreadsTeamsIntegrity(t *testing.T) { func TestCheckThreadsTeamsIntegrity(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
store := ss.(*SqlStore) store := ss.(*SqlStore)
dbmap := store.GetMasterX() dbmap := store.GetMasterX()

Просмотреть файл

@@ -9,6 +9,7 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/store/storetest" "github.com/mattermost/mattermost/server/v8/channels/store/storetest"
) )
@@ -18,7 +19,7 @@ func TestPreferenceStore(t *testing.T) {
} }
func TestDeleteUnusedFeatures(t *testing.T) { func TestDeleteUnusedFeatures(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
category := model.PreferenceCategoryAdvancedSettings category := model.PreferenceCategoryAdvancedSettings

Просмотреть файл

@@ -24,6 +24,7 @@ import (
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/plugin/plugintest/mock" "github.com/mattermost/mattermost/server/public/plugin/plugintest/mock"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/db" "github.com/mattermost/mattermost/server/v8/channels/db"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/store/searchtest" "github.com/mattermost/mattermost/server/v8/channels/store/searchtest"
@@ -47,7 +48,7 @@ func newStoreType(name, driver string) *storeType {
} }
} }
func StoreTest(t *testing.T, f func(*testing.T, store.Store)) { func StoreTest(t *testing.T, f func(*testing.T, request.CTX, store.Store)) {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
tearDownStores() tearDownStores()
@@ -56,11 +57,13 @@ func StoreTest(t *testing.T, f func(*testing.T, store.Store)) {
}() }()
for _, st := range storeTypes { for _, st := range storeTypes {
st := st st := st
rctx := request.TestContext(t)
t.Run(st.Name, func(t *testing.T) { t.Run(st.Name, func(t *testing.T) {
if testing.Short() { if testing.Short() {
t.SkipNow() t.SkipNow()
} }
f(t, st.Store) f(t, rctx, st.Store)
}) })
} }
} }
@@ -83,7 +86,7 @@ func StoreTestWithSearchTestEngine(t *testing.T, f func(*testing.T, store.Store,
} }
} }
func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, store.Store, storetest.SqlStore)) { func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, request.CTX, store.Store, storetest.SqlStore)) {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
tearDownStores() tearDownStores()
@@ -92,11 +95,13 @@ func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, store.Store, storete
}() }()
for _, st := range storeTypes { for _, st := range storeTypes {
st := st st := st
rctx := request.TestContext(t)
t.Run(st.Name, func(t *testing.T) { t.Run(st.Name, func(t *testing.T) {
if testing.Short() { if testing.Short() {
t.SkipNow() t.SkipNow()
} }
f(t, st.Store, &StoreTestWrapper{st.SqlStore}) f(t, rctx, st.Store, &StoreTestWrapper{st.SqlStore})
}) })
} }
} }
@@ -803,7 +808,7 @@ func makeSqlSettings(driver string) (*model.SqlSettings, error) {
} }
func TestExecNoTimeout(t *testing.T) { func TestExecNoTimeout(t *testing.T) {
StoreTest(t, func(t *testing.T, ss store.Store) { StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
sqlStore := ss.(*SqlStore) sqlStore := ss.(*SqlStore)
var query string var query string
timeout := sqlStore.masterX.queryTimeout timeout := sqlStore.masterX.queryTimeout

Просмотреть файл

@@ -11,14 +11,15 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestAuditStore(t *testing.T, ss store.Store) { func TestAuditStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("", func(t *testing.T) { testAuditStore(t, ss) }) t.Run("", func(t *testing.T) { testAuditStore(t, rctx, ss) })
} }
func testAuditStore(t *testing.T, ss store.Store) { func testAuditStore(t *testing.T, rctx request.CTX, ss store.Store) {
audit := &model.Audit{UserId: model.NewId(), IpAddress: "ipaddress", Action: "Action"} audit := &model.Audit{UserId: model.NewId(), IpAddress: "ipaddress", Action: "Action"}
require.NoError(t, ss.Audit().Save(audit)) require.NoError(t, ss.Audit().Save(audit))
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)

Просмотреть файл

@@ -10,6 +10,7 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
@@ -24,15 +25,15 @@ func makeBotWithUser(t *testing.T, ss store.Store, bot *model.Bot) (*model.Bot,
return bot, user return bot, user
} }
func TestBotStore(t *testing.T, ss store.Store, s SqlStore) { func TestBotStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("Get", func(t *testing.T) { testBotStoreGet(t, ss, s) }) t.Run("Get", func(t *testing.T) { testBotStoreGet(t, rctx, ss, s) })
t.Run("GetAll", func(t *testing.T) { testBotStoreGetAll(t, ss, s) }) t.Run("GetAll", func(t *testing.T) { testBotStoreGetAll(t, rctx, ss, s) })
t.Run("Save", func(t *testing.T) { testBotStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testBotStoreSave(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testBotStoreUpdate(t, ss) }) t.Run("Update", func(t *testing.T) { testBotStoreUpdate(t, rctx, ss) })
t.Run("PermanentDelete", func(t *testing.T) { testBotStorePermanentDelete(t, ss) }) t.Run("PermanentDelete", func(t *testing.T) { testBotStorePermanentDelete(t, rctx, ss) })
} }
func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) { func testBotStoreGet(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
deletedBot, _ := makeBotWithUser(t, ss, &model.Bot{ deletedBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "deleted_bot", Username: "deleted_bot",
Description: "A deleted bot", Description: "A deleted bot",
@@ -117,7 +118,7 @@ func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) { func testBotStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
OwnerId1 := model.NewId() OwnerId1 := model.NewId()
OwnerId2 := model.NewId() OwnerId2 := model.NewId()
@@ -310,7 +311,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testBotStoreSave(t *testing.T, ss store.Store) { func testBotStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("invalid bot", func(t *testing.T) { t.Run("invalid bot", func(t *testing.T) {
bot := &model.Bot{ bot := &model.Bot{
UserId: model.NewId(), UserId: model.NewId(),
@@ -358,7 +359,7 @@ func testBotStoreSave(t *testing.T, ss store.Store) {
}) })
} }
func testBotStoreUpdate(t *testing.T, ss store.Store) { func testBotStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("invalid bot should fail to update", func(t *testing.T) { t.Run("invalid bot should fail to update", func(t *testing.T) {
existingBot, _ := makeBotWithUser(t, ss, &model.Bot{ existingBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "existing_bot", Username: "existing_bot",
@@ -440,7 +441,7 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
}) })
} }
func testBotStorePermanentDelete(t *testing.T, ss store.Store) { func testBotStorePermanentDelete(t *testing.T, rctx request.CTX, ss store.Store) {
b1, _ := makeBotWithUser(t, ss, &model.Bot{ b1, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b1", Username: "b1",
OwnerId: model.NewId(), OwnerId: model.NewId(),

Просмотреть файл

@@ -12,20 +12,21 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestChannelMemberHistoryStore(t *testing.T, ss store.Store) { func TestChannelMemberHistoryStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("TestLogJoinEvent", func(t *testing.T) { testLogJoinEvent(t, ss) }) t.Run("TestLogJoinEvent", func(t *testing.T) { testLogJoinEvent(t, rctx, ss) })
t.Run("TestLogLeaveEvent", func(t *testing.T) { testLogLeaveEvent(t, ss) }) t.Run("TestLogLeaveEvent", func(t *testing.T) { testLogLeaveEvent(t, rctx, ss) })
t.Run("TestGetUsersInChannelAtChannelMemberHistory", func(t *testing.T) { testGetUsersInChannelAtChannelMemberHistory(t, ss) }) t.Run("TestGetUsersInChannelAtChannelMemberHistory", func(t *testing.T) { testGetUsersInChannelAtChannelMemberHistory(t, rctx, ss) })
t.Run("TestGetUsersInChannelAtChannelMembers", func(t *testing.T) { testGetUsersInChannelAtChannelMembers(t, ss) }) t.Run("TestGetUsersInChannelAtChannelMembers", func(t *testing.T) { testGetUsersInChannelAtChannelMembers(t, rctx, ss) })
t.Run("TestPermanentDeleteBatch", func(t *testing.T) { testPermanentDeleteBatch(t, ss) }) t.Run("TestPermanentDeleteBatch", func(t *testing.T) { testPermanentDeleteBatch(t, rctx, ss) })
t.Run("TestPermanentDeleteBatchForRetentionPolicies", func(t *testing.T) { testPermanentDeleteBatchForRetentionPolicies(t, ss) }) t.Run("TestPermanentDeleteBatchForRetentionPolicies", func(t *testing.T) { testPermanentDeleteBatchForRetentionPolicies(t, rctx, ss) })
t.Run("TestGetChannelsLeftSince", func(t *testing.T) { testGetChannelsLeftSince(t, ss) }) t.Run("TestGetChannelsLeftSince", func(t *testing.T) { testGetChannelsLeftSince(t, rctx, ss) })
} }
func testLogJoinEvent(t *testing.T, ss store.Store) { func testLogJoinEvent(t *testing.T, rctx request.CTX, ss store.Store) {
// create a test channel // create a test channel
ch := model.Channel{ ch := model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -51,7 +52,7 @@ func testLogJoinEvent(t *testing.T, ss store.Store) {
assert.NoError(t, err) assert.NoError(t, err)
} }
func testLogLeaveEvent(t *testing.T, ss store.Store) { func testLogLeaveEvent(t *testing.T, rctx request.CTX, ss store.Store) {
// create a test channel // create a test channel
ch := model.Channel{ ch := model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -80,7 +81,7 @@ func testLogLeaveEvent(t *testing.T, ss store.Store) {
assert.NoError(t, err) assert.NoError(t, err)
} }
func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) { func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, rctx request.CTX, ss store.Store) {
// create a test channel // create a test channel
ch := &model.Channel{ ch := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -176,7 +177,7 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
assert.Empty(t, channelMembers) assert.Empty(t, channelMembers)
} }
func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) { func testGetUsersInChannelAtChannelMembers(t *testing.T, rctx request.CTX, ss store.Store) {
// create a test channel // create a test channel
channel := &model.Channel{ channel := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -288,7 +289,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
assert.Equal(t, leaveTime+200, *channelMembers[0].LeaveTime) assert.Equal(t, leaveTime+200, *channelMembers[0].LeaveTime)
} }
func testPermanentDeleteBatch(t *testing.T, ss store.Store) { func testPermanentDeleteBatch(t *testing.T, rctx request.CTX, ss store.Store) {
// create a test channel // create a test channel
channel := &model.Channel{ channel := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -348,7 +349,7 @@ func testPermanentDeleteBatch(t *testing.T, ss store.Store) {
assert.Equal(t, user2.Id, channelMembers[0].UserId) assert.Equal(t, user2.Id, channelMembers[0].UserId)
} }
func testPermanentDeleteBatchForRetentionPolicies(t *testing.T, ss store.Store) { func testPermanentDeleteBatchForRetentionPolicies(t *testing.T, rctx request.CTX, ss store.Store) {
const limit = 1000 const limit = 1000
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",
@@ -394,7 +395,7 @@ func testPermanentDeleteBatchForRetentionPolicies(t *testing.T, ss store.Store)
require.Equal(t, 0, len(rows)) require.Equal(t, 0, len(rows))
} }
func testGetChannelsLeftSince(t *testing.T, ss store.Store) { func testGetChannelsLeftSince(t *testing.T, rctx request.CTX, ss store.Store) {
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: "team" + model.NewId(), Name: "team" + model.NewId(),

Просмотреть файл

@@ -20,6 +20,7 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/public/shared/timezones" "github.com/mattermost/mattermost/server/public/shared/timezones"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/utils" "github.com/mattermost/mattermost/server/v8/channels/utils"
@@ -41,7 +42,7 @@ type SqlXExecutor interface {
Select(dest any, query string, args ...any) error Select(dest any, query string, args ...any) error
} }
func cleanupChannels(t *testing.T, ss store.Store) { func cleanupChannels(t *testing.T, rctx request.CTX, ss store.Store) {
list, err := ss.Channel().GetAllChannels(0, 100000, store.ChannelSearchOpts{IncludeDeleted: true}) list, err := ss.Channel().GetAllChannels(0, 100000, store.ChannelSearchOpts{IncludeDeleted: true})
require.NoError(t, err, "error cleaning all channels", err) require.NoError(t, err, "error cleaning all channels", err)
for _, channel := range list { for _, channel := range list {
@@ -64,95 +65,95 @@ func channelMemberToJSON(t *testing.T, cm *model.ChannelMember) string {
return string(js) return string(js)
} }
func TestChannelStore(t *testing.T, ss store.Store, s SqlStore) { func TestChannelStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
createDefaultRoles(ss) createDefaultRoles(ss)
t.Run("Save", func(t *testing.T) { testChannelStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testChannelStoreSave(t, rctx, ss) })
t.Run("SaveDirectChannel", func(t *testing.T) { testChannelStoreSaveDirectChannel(t, ss, s) }) t.Run("SaveDirectChannel", func(t *testing.T) { testChannelStoreSaveDirectChannel(t, rctx, ss, s) })
t.Run("CreateDirectChannel", func(t *testing.T) { testChannelStoreCreateDirectChannel(t, ss) }) t.Run("CreateDirectChannel", func(t *testing.T) { testChannelStoreCreateDirectChannel(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testChannelStoreUpdate(t, ss) }) t.Run("Update", func(t *testing.T) { testChannelStoreUpdate(t, rctx, ss) })
t.Run("GetChannelUnread", func(t *testing.T) { testGetChannelUnread(t, ss) }) t.Run("GetChannelUnread", func(t *testing.T) { testGetChannelUnread(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testChannelStoreGet(t, ss, s) }) t.Run("Get", func(t *testing.T) { testChannelStoreGet(t, rctx, ss, s) })
t.Run("GetMany", func(t *testing.T) { testChannelStoreGetMany(t, ss, s) }) t.Run("GetMany", func(t *testing.T) { testChannelStoreGetMany(t, rctx, ss, s) })
t.Run("GetChannelsByIds", func(t *testing.T) { testChannelStoreGetChannelsByIds(t, ss) }) t.Run("GetChannelsByIds", func(t *testing.T) { testChannelStoreGetChannelsByIds(t, rctx, ss) })
t.Run("GetChannelsWithTeamDataByIds", func(t *testing.T) { testGetChannelsWithTeamDataByIds(t, ss) }) t.Run("GetChannelsWithTeamDataByIds", func(t *testing.T) { testGetChannelsWithTeamDataByIds(t, rctx, ss) })
t.Run("GetForPost", func(t *testing.T) { testChannelStoreGetForPost(t, ss) }) t.Run("GetForPost", func(t *testing.T) { testChannelStoreGetForPost(t, rctx, ss) })
t.Run("Restore", func(t *testing.T) { testChannelStoreRestore(t, ss) }) t.Run("Restore", func(t *testing.T) { testChannelStoreRestore(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testChannelStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testChannelStoreDelete(t, rctx, ss) })
t.Run("GetByName", func(t *testing.T) { testChannelStoreGetByName(t, ss) }) t.Run("GetByName", func(t *testing.T) { testChannelStoreGetByName(t, rctx, ss) })
t.Run("GetByNames", func(t *testing.T) { testChannelStoreGetByNames(t, ss) }) t.Run("GetByNames", func(t *testing.T) { testChannelStoreGetByNames(t, rctx, ss) })
t.Run("GetByNamesIncludeDeleted", func(t *testing.T) { testChannelStoreGetByNamesIncludeDeleted(t, ss) }) t.Run("GetByNamesIncludeDeleted", func(t *testing.T) { testChannelStoreGetByNamesIncludeDeleted(t, rctx, ss) })
t.Run("GetDeletedByName", func(t *testing.T) { testChannelStoreGetDeletedByName(t, ss) }) t.Run("GetDeletedByName", func(t *testing.T) { testChannelStoreGetDeletedByName(t, rctx, ss) })
t.Run("GetDeleted", func(t *testing.T) { testChannelStoreGetDeleted(t, ss) }) t.Run("GetDeleted", func(t *testing.T) { testChannelStoreGetDeleted(t, rctx, ss) })
t.Run("ChannelMemberStore", func(t *testing.T) { testChannelMemberStore(t, ss) }) t.Run("ChannelMemberStore", func(t *testing.T) { testChannelMemberStore(t, rctx, ss) })
t.Run("SaveMember", func(t *testing.T) { testChannelSaveMember(t, ss) }) t.Run("SaveMember", func(t *testing.T) { testChannelSaveMember(t, rctx, ss) })
t.Run("SaveMultipleMembers", func(t *testing.T) { testChannelSaveMultipleMembers(t, ss) }) t.Run("SaveMultipleMembers", func(t *testing.T) { testChannelSaveMultipleMembers(t, rctx, ss) })
t.Run("UpdateMember", func(t *testing.T) { testChannelUpdateMember(t, ss) }) t.Run("UpdateMember", func(t *testing.T) { testChannelUpdateMember(t, rctx, ss) })
t.Run("UpdateMemberNotifyProps", func(t *testing.T) { testChannelUpdateMemberNotifyProps(t, ss) }) t.Run("UpdateMemberNotifyProps", func(t *testing.T) { testChannelUpdateMemberNotifyProps(t, rctx, ss) })
t.Run("UpdateMultipleMembers", func(t *testing.T) { testChannelUpdateMultipleMembers(t, ss) }) t.Run("UpdateMultipleMembers", func(t *testing.T) { testChannelUpdateMultipleMembers(t, rctx, ss) })
t.Run("RemoveMember", func(t *testing.T) { testChannelRemoveMember(t, ss) }) t.Run("RemoveMember", func(t *testing.T) { testChannelRemoveMember(t, rctx, ss) })
t.Run("RemoveMembers", func(t *testing.T) { testChannelRemoveMembers(t, ss) }) t.Run("RemoveMembers", func(t *testing.T) { testChannelRemoveMembers(t, rctx, ss) })
t.Run("ChannelDeleteMemberStore", func(t *testing.T) { testChannelDeleteMemberStore(t, ss) }) t.Run("ChannelDeleteMemberStore", func(t *testing.T) { testChannelDeleteMemberStore(t, rctx, ss) })
t.Run("GetChannels", func(t *testing.T) { testChannelStoreGetChannels(t, ss) }) t.Run("GetChannels", func(t *testing.T) { testChannelStoreGetChannels(t, rctx, ss) })
t.Run("GetChannelsByUser", func(t *testing.T) { testChannelStoreGetChannelsByUser(t, ss) }) t.Run("GetChannelsByUser", func(t *testing.T) { testChannelStoreGetChannelsByUser(t, rctx, ss) })
t.Run("GetAllChannels", func(t *testing.T) { testChannelStoreGetAllChannels(t, ss, s) }) t.Run("GetAllChannels", func(t *testing.T) { testChannelStoreGetAllChannels(t, rctx, ss, s) })
t.Run("GetMoreChannels", func(t *testing.T) { testChannelStoreGetMoreChannels(t, ss) }) t.Run("GetMoreChannels", func(t *testing.T) { testChannelStoreGetMoreChannels(t, rctx, ss) })
t.Run("GetPrivateChannelsForTeam", func(t *testing.T) { testChannelStoreGetPrivateChannelsForTeam(t, ss) }) t.Run("GetPrivateChannelsForTeam", func(t *testing.T) { testChannelStoreGetPrivateChannelsForTeam(t, rctx, ss) })
t.Run("GetPublicChannelsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsForTeam(t, ss) }) t.Run("GetPublicChannelsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsForTeam(t, rctx, ss) })
t.Run("GetPublicChannelsByIdsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsByIdsForTeam(t, ss) }) t.Run("GetPublicChannelsByIdsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsByIdsForTeam(t, rctx, ss) })
t.Run("GetChannelCounts", func(t *testing.T) { testChannelStoreGetChannelCounts(t, ss) }) t.Run("GetChannelCounts", func(t *testing.T) { testChannelStoreGetChannelCounts(t, rctx, ss) })
t.Run("GetMembersForUser", func(t *testing.T) { testChannelStoreGetMembersForUser(t, ss) }) t.Run("GetMembersForUser", func(t *testing.T) { testChannelStoreGetMembersForUser(t, rctx, ss) })
t.Run("GetMembersForUserWithPagination", func(t *testing.T) { testChannelStoreGetMembersForUserWithPagination(t, ss) }) t.Run("GetMembersForUserWithPagination", func(t *testing.T) { testChannelStoreGetMembersForUserWithPagination(t, rctx, ss) })
t.Run("CountPostsAfter", func(t *testing.T) { testCountPostsAfter(t, ss) }) t.Run("CountPostsAfter", func(t *testing.T) { testCountPostsAfter(t, rctx, ss) })
t.Run("CountUrgentPostsAfter", func(t *testing.T) { testCountUrgentPostsAfter(t, ss) }) t.Run("CountUrgentPostsAfter", func(t *testing.T) { testCountUrgentPostsAfter(t, rctx, ss) })
t.Run("UpdateLastViewedAt", func(t *testing.T) { testChannelStoreUpdateLastViewedAt(t, ss) }) t.Run("UpdateLastViewedAt", func(t *testing.T) { testChannelStoreUpdateLastViewedAt(t, rctx, ss) })
t.Run("IncrementMentionCount", func(t *testing.T) { testChannelStoreIncrementMentionCount(t, ss) }) t.Run("IncrementMentionCount", func(t *testing.T) { testChannelStoreIncrementMentionCount(t, rctx, ss) })
t.Run("UpdateChannelMember", func(t *testing.T) { testUpdateChannelMember(t, ss) }) t.Run("UpdateChannelMember", func(t *testing.T) { testUpdateChannelMember(t, rctx, ss) })
t.Run("GetMember", func(t *testing.T) { testGetMember(t, ss) }) t.Run("GetMember", func(t *testing.T) { testGetMember(t, rctx, ss) })
t.Run("GetMemberForPost", func(t *testing.T) { testChannelStoreGetMemberForPost(t, ss) }) t.Run("GetMemberForPost", func(t *testing.T) { testChannelStoreGetMemberForPost(t, rctx, ss) })
t.Run("GetMemberCount", func(t *testing.T) { testGetMemberCount(t, ss) }) t.Run("GetMemberCount", func(t *testing.T) { testGetMemberCount(t, rctx, ss) })
t.Run("GetMemberCountsByGroup", func(t *testing.T) { testGetMemberCountsByGroup(t, ss) }) t.Run("GetMemberCountsByGroup", func(t *testing.T) { testGetMemberCountsByGroup(t, rctx, ss) })
t.Run("GetGuestCount", func(t *testing.T) { testGetGuestCount(t, ss) }) t.Run("GetGuestCount", func(t *testing.T) { testGetGuestCount(t, rctx, ss) })
t.Run("SearchMore", func(t *testing.T) { testChannelStoreSearchMore(t, ss) }) t.Run("SearchMore", func(t *testing.T) { testChannelStoreSearchMore(t, rctx, ss) })
t.Run("SearchInTeam", func(t *testing.T) { testChannelStoreSearchInTeam(t, ss) }) t.Run("SearchInTeam", func(t *testing.T) { testChannelStoreSearchInTeam(t, rctx, ss) })
t.Run("Autocomplete", func(t *testing.T) { testAutocomplete(t, ss, s) }) t.Run("Autocomplete", func(t *testing.T) { testAutocomplete(t, rctx, ss, s) })
t.Run("SearchArchivedInTeam", func(t *testing.T) { testChannelStoreSearchArchivedInTeam(t, ss, s) }) t.Run("SearchArchivedInTeam", func(t *testing.T) { testChannelStoreSearchArchivedInTeam(t, rctx, ss, s) })
t.Run("SearchForUserInTeam", func(t *testing.T) { testChannelStoreSearchForUserInTeam(t, ss) }) t.Run("SearchForUserInTeam", func(t *testing.T) { testChannelStoreSearchForUserInTeam(t, rctx, ss) })
t.Run("SearchAllChannels", func(t *testing.T) { testChannelStoreSearchAllChannels(t, ss) }) t.Run("SearchAllChannels", func(t *testing.T) { testChannelStoreSearchAllChannels(t, rctx, ss) })
t.Run("GetMembersByIds", func(t *testing.T) { testChannelStoreGetMembersByIds(t, ss) }) t.Run("GetMembersByIds", func(t *testing.T) { testChannelStoreGetMembersByIds(t, rctx, ss) })
t.Run("GetMembersByChannelIds", func(t *testing.T) { testChannelStoreGetMembersByChannelIds(t, ss) }) t.Run("GetMembersByChannelIds", func(t *testing.T) { testChannelStoreGetMembersByChannelIds(t, rctx, ss) })
t.Run("GetMembersInfoByChannelIds", func(t *testing.T) { testChannelStoreGetMembersInfoByChannelIds(t, ss) }) t.Run("GetMembersInfoByChannelIds", func(t *testing.T) { testChannelStoreGetMembersInfoByChannelIds(t, rctx, ss) })
t.Run("SearchGroupChannels", func(t *testing.T) { testChannelStoreSearchGroupChannels(t, ss) }) t.Run("SearchGroupChannels", func(t *testing.T) { testChannelStoreSearchGroupChannels(t, rctx, ss) })
t.Run("AnalyticsDeletedTypeCount", func(t *testing.T) { testChannelStoreAnalyticsDeletedTypeCount(t, ss) }) t.Run("AnalyticsDeletedTypeCount", func(t *testing.T) { testChannelStoreAnalyticsDeletedTypeCount(t, rctx, ss) })
t.Run("GetPinnedPosts", func(t *testing.T) { testChannelStoreGetPinnedPosts(t, ss) }) t.Run("GetPinnedPosts", func(t *testing.T) { testChannelStoreGetPinnedPosts(t, rctx, ss) })
t.Run("GetPinnedPostCount", func(t *testing.T) { testChannelStoreGetPinnedPostCount(t, ss) }) t.Run("GetPinnedPostCount", func(t *testing.T) { testChannelStoreGetPinnedPostCount(t, rctx, ss) })
t.Run("MaxChannelsPerTeam", func(t *testing.T) { testChannelStoreMaxChannelsPerTeam(t, ss) }) t.Run("MaxChannelsPerTeam", func(t *testing.T) { testChannelStoreMaxChannelsPerTeam(t, rctx, ss) })
t.Run("GetChannelsByScheme", func(t *testing.T) { testChannelStoreGetChannelsByScheme(t, ss) }) t.Run("GetChannelsByScheme", func(t *testing.T) { testChannelStoreGetChannelsByScheme(t, rctx, ss) })
t.Run("MigrateChannelMembers", func(t *testing.T) { testChannelStoreMigrateChannelMembers(t, ss) }) t.Run("MigrateChannelMembers", func(t *testing.T) { testChannelStoreMigrateChannelMembers(t, rctx, ss) })
t.Run("ResetAllChannelSchemes", func(t *testing.T) { testResetAllChannelSchemes(t, ss) }) t.Run("ResetAllChannelSchemes", func(t *testing.T) { testResetAllChannelSchemes(t, rctx, ss) })
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testChannelStoreClearAllCustomRoleAssignments(t, ss) }) t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testChannelStoreClearAllCustomRoleAssignments(t, rctx, ss) })
t.Run("MaterializedPublicChannels", func(t *testing.T) { testMaterializedPublicChannels(t, ss, s) }) t.Run("MaterializedPublicChannels", func(t *testing.T) { testMaterializedPublicChannels(t, rctx, ss, s) })
t.Run("GetAllChannelsForExportAfter", func(t *testing.T) { testChannelStoreGetAllChannelsForExportAfter(t, ss) }) t.Run("GetAllChannelsForExportAfter", func(t *testing.T) { testChannelStoreGetAllChannelsForExportAfter(t, rctx, ss) })
t.Run("GetChannelMembersForExport", func(t *testing.T) { testChannelStoreGetChannelMembersForExport(t, ss) }) t.Run("GetChannelMembersForExport", func(t *testing.T) { testChannelStoreGetChannelMembersForExport(t, rctx, ss) })
t.Run("RemoveAllDeactivatedMembers", func(t *testing.T) { testChannelStoreRemoveAllDeactivatedMembers(t, ss, s) }) t.Run("RemoveAllDeactivatedMembers", func(t *testing.T) { testChannelStoreRemoveAllDeactivatedMembers(t, rctx, ss, s) })
t.Run("ExportAllDirectChannels", func(t *testing.T) { testChannelStoreExportAllDirectChannels(t, ss, s) }) t.Run("ExportAllDirectChannels", func(t *testing.T) { testChannelStoreExportAllDirectChannels(t, rctx, ss, s) })
t.Run("ExportAllDirectChannelsExcludePrivateAndPublic", func(t *testing.T) { testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t, ss, s) }) t.Run("ExportAllDirectChannelsExcludePrivateAndPublic", func(t *testing.T) { testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t, rctx, ss, s) })
t.Run("ExportAllDirectChannelsDeletedChannel", func(t *testing.T) { testChannelStoreExportAllDirectChannelsDeletedChannel(t, ss, s) }) t.Run("ExportAllDirectChannelsDeletedChannel", func(t *testing.T) { testChannelStoreExportAllDirectChannelsDeletedChannel(t, rctx, ss, s) })
t.Run("GetChannelsBatchForIndexing", func(t *testing.T) { testChannelStoreGetChannelsBatchForIndexing(t, ss) }) t.Run("GetChannelsBatchForIndexing", func(t *testing.T) { testChannelStoreGetChannelsBatchForIndexing(t, rctx, ss) })
t.Run("GroupSyncedChannelCount", func(t *testing.T) { testGroupSyncedChannelCount(t, ss) }) t.Run("GroupSyncedChannelCount", func(t *testing.T) { testGroupSyncedChannelCount(t, rctx, ss) })
t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, ss) }) t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, rctx, ss) })
t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, ss) }) t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, rctx, ss) })
t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, ss, s) }) t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, rctx, ss, s) })
t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, ss) }) t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, rctx, ss) })
t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, ss) }) t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, rctx, ss) })
t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, ss, s) }) t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, rctx, ss, s) })
t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, ss) }) t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, rctx, ss) })
t.Run("SetShared", func(t *testing.T) { testSetShared(t, ss) }) t.Run("SetShared", func(t *testing.T) { testSetShared(t, rctx, ss) })
t.Run("GetTeamForChannel", func(t *testing.T) { testGetTeamForChannel(t, ss) }) t.Run("GetTeamForChannel", func(t *testing.T) { testGetTeamForChannel(t, rctx, ss) })
t.Run("GetChannelsWithUnreadsAndWithMentions", func(t *testing.T) { testGetChannelsWithUnreadsAndWithMentions(t, ss) }) t.Run("GetChannelsWithUnreadsAndWithMentions", func(t *testing.T) { testGetChannelsWithUnreadsAndWithMentions(t, rctx, ss) })
} }
func testChannelStoreSave(t *testing.T, ss store.Store) { func testChannelStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -203,7 +204,7 @@ func testChannelStoreSave(t *testing.T, ss store.Store) {
require.True(t, errors.As(nErr, &cErr)) require.True(t, errors.As(nErr, &cErr))
} }
func testChannelStoreSaveDirectChannel(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreSaveDirectChannel(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -293,7 +294,7 @@ func testChannelStoreSaveDirectChannel(t *testing.T, ss store.Store, s SqlStore)
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreCreateDirectChannel(t *testing.T, ss store.Store) { func testChannelStoreCreateDirectChannel(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
u1.Nickname = model.NewId() u1.Nickname = model.NewId()
@@ -322,7 +323,7 @@ func testChannelStoreCreateDirectChannel(t *testing.T, ss store.Store) {
require.Len(t, members, 2, "should have saved 2 members") require.Len(t, members, 2, "should have saved 2 members")
} }
func testChannelStoreUpdate(t *testing.T, ss store.Store) { func testChannelStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Name" o1.DisplayName = "Name"
@@ -367,7 +368,7 @@ func testChannelStoreUpdate(t *testing.T, ss store.Store) {
require.Equal(t, invalidInputErr.Field, "Name") require.Equal(t, invalidInputErr.Field, "Name")
} }
func testGetChannelUnread(t *testing.T, ss store.Store) { func testGetChannelUnread(t *testing.T, rctx request.CTX, ss store.Store) {
teamId1 := model.NewId() teamId1 := model.NewId()
teamId2 := model.NewId() teamId2 := model.NewId()
@@ -419,7 +420,7 @@ func testGetChannelUnread(t *testing.T, ss store.Store) {
require.EqualValues(t, 10, ch2.MsgCount, "wrong MsgCount for channel 2") require.EqualValues(t, 10, ch2.MsgCount, "wrong MsgCount for channel 2")
} }
func testChannelStoreGet(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreGet(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Name" o1.DisplayName = "Name"
@@ -494,7 +495,7 @@ func testChannelStoreGet(t *testing.T, ss store.Store, s SqlStore) {
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreGetMany(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreGetMany(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
o1, nErr := ss.Channel().Save(&model.Channel{ o1, nErr := ss.Channel().Save(&model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -528,7 +529,7 @@ func testChannelStoreGetMany(t *testing.T, ss store.Store, s SqlStore) {
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreGetChannelsByIds(t *testing.T, ss store.Store) { func testChannelStoreGetChannelsByIds(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Name" o1.DisplayName = "Name"
@@ -607,7 +608,7 @@ func testChannelStoreGetChannelsByIds(t *testing.T, ss store.Store) {
}) })
} }
func testGetChannelsWithTeamDataByIds(t *testing.T, ss store.Store) { func testGetChannelsWithTeamDataByIds(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := &model.Team{ t1 := &model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: NewTestId(), Name: NewTestId(),
@@ -692,7 +693,7 @@ func testGetChannelsWithTeamDataByIds(t *testing.T, ss store.Store) {
} }
} }
func testChannelStoreGetForPost(t *testing.T, ss store.Store) { func testChannelStoreGetForPost(t *testing.T, rctx request.CTX, ss store.Store) {
ch := &model.Channel{ ch := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -714,7 +715,7 @@ func testChannelStoreGetForPost(t *testing.T, ss store.Store) {
require.Equal(t, o1.Id, channel.Id, "incorrect channel returned") require.Equal(t, o1.Id, channel.Id, "incorrect channel returned")
} }
func testChannelStoreRestore(t *testing.T, ss store.Store) { func testChannelStoreRestore(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Channel1" o1.DisplayName = "Channel1"
@@ -736,7 +737,7 @@ func testChannelStoreRestore(t *testing.T, ss store.Store) {
require.EqualValues(t, 0, c.DeleteAt, "should have been restored") require.EqualValues(t, 0, c.DeleteAt, "should have been restored")
} }
func testChannelStoreDelete(t *testing.T, ss store.Store) { func testChannelStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Channel1" o1.DisplayName = "Channel1"
@@ -821,7 +822,7 @@ func testChannelStoreDelete(t *testing.T, ss store.Store) {
require.NoError(t, nErr, nErr) require.NoError(t, nErr, nErr)
} }
func testChannelStoreGetByName(t *testing.T, ss store.Store) { func testChannelStoreGetByName(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Name" o1.DisplayName = "Name"
@@ -853,7 +854,7 @@ func testChannelStoreGetByName(t *testing.T, ss store.Store) {
require.Error(t, err, "Deleted channel should not be returned by GetByName()") require.Error(t, err, "Deleted channel should not be returned by GetByName()")
} }
func testChannelStoreGetByNames(t *testing.T, ss store.Store) { func testChannelStoreGetByNames(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{ o1 := model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -919,7 +920,7 @@ func testChannelStoreGetByNames(t *testing.T, ss store.Store) {
assert.Empty(t, channels) assert.Empty(t, channels)
} }
func testChannelStoreGetByNamesIncludeDeleted(t *testing.T, ss store.Store) { func testChannelStoreGetByNamesIncludeDeleted(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{ o1 := model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -966,7 +967,7 @@ func testChannelStoreGetByNamesIncludeDeleted(t *testing.T, ss store.Store) {
} }
} }
func testChannelStoreGetDeletedByName(t *testing.T, ss store.Store) { func testChannelStoreGetDeletedByName(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Channel{} o1 := &model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Name" o1.DisplayName = "Name"
@@ -989,7 +990,7 @@ func testChannelStoreGetDeletedByName(t *testing.T, ss store.Store) {
require.Error(t, nErr, "missing id should have failed") require.Error(t, nErr, "missing id should have failed")
} }
func testChannelStoreGetDeleted(t *testing.T, ss store.Store) { func testChannelStoreGetDeleted(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Channel1" o1.DisplayName = "Channel1"
@@ -1046,7 +1047,7 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) {
require.Len(t, list, 1, "wrong list length") require.Len(t, list, 1, "wrong list length")
} }
func testChannelMemberStore(t *testing.T, ss store.Store) { func testChannelMemberStore(t *testing.T, rctx request.CTX, ss store.Store) {
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = model.NewId() c1.TeamId = model.NewId()
c1.DisplayName = "NameName" c1.DisplayName = "NameName"
@@ -1134,7 +1135,7 @@ func testChannelMemberStore(t *testing.T, ss store.Store) {
assert.EqualValues(t, 0, c1t4.ExtraUpdateAt, "ExtraUpdateAt should be 0") assert.EqualValues(t, 0, c1t4.ExtraUpdateAt, "ExtraUpdateAt should be 0")
} }
func testChannelSaveMember(t *testing.T, ss store.Store) { func testChannelSaveMember(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
defaultNotifyProps := model.GetDefaultChannelNotifyProps() defaultNotifyProps := model.GetDefaultChannelNotifyProps()
@@ -1641,7 +1642,7 @@ func testChannelSaveMember(t *testing.T, ss store.Store) {
}) })
} }
func testChannelSaveMultipleMembers(t *testing.T, ss store.Store) { func testChannelSaveMultipleMembers(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -2190,7 +2191,7 @@ func testChannelSaveMultipleMembers(t *testing.T, ss store.Store) {
}) })
} }
func testChannelUpdateMember(t *testing.T, ss store.Store) { func testChannelUpdateMember(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
defaultNotifyProps := model.GetDefaultChannelNotifyProps() defaultNotifyProps := model.GetDefaultChannelNotifyProps()
@@ -2695,7 +2696,7 @@ func testChannelUpdateMember(t *testing.T, ss store.Store) {
}) })
} }
func testChannelUpdateMultipleMembers(t *testing.T, ss store.Store) { func testChannelUpdateMultipleMembers(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -3231,7 +3232,7 @@ func testChannelUpdateMultipleMembers(t *testing.T, ss store.Store) {
}) })
} }
func testChannelUpdateMemberNotifyProps(t *testing.T, ss store.Store) { func testChannelUpdateMemberNotifyProps(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
defaultNotifyProps := model.GetDefaultChannelNotifyProps() defaultNotifyProps := model.GetDefaultChannelNotifyProps()
@@ -3281,7 +3282,7 @@ func testChannelUpdateMemberNotifyProps(t *testing.T, ss store.Store) {
}) })
} }
func testChannelRemoveMember(t *testing.T, ss store.Store) { func testChannelRemoveMember(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -3328,7 +3329,7 @@ func testChannelRemoveMember(t *testing.T, ss store.Store) {
}) })
} }
func testChannelRemoveMembers(t *testing.T, ss store.Store) { func testChannelRemoveMembers(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -3383,7 +3384,7 @@ func testChannelRemoveMembers(t *testing.T, ss store.Store) {
}) })
} }
func testChannelDeleteMemberStore(t *testing.T, ss store.Store) { func testChannelDeleteMemberStore(t *testing.T, rctx request.CTX, ss store.Store) {
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = model.NewId() c1.TeamId = model.NewId()
c1.DisplayName = "NameName" c1.DisplayName = "NameName"
@@ -3447,7 +3448,7 @@ func testChannelDeleteMemberStore(t *testing.T, ss store.Store) {
require.EqualValues(t, 0, count, "should have removed all members") require.EqualValues(t, 0, count, "should have removed all members")
} }
func testChannelStoreGetChannels(t *testing.T, ss store.Store) { func testChannelStoreGetChannels(t *testing.T, rctx request.CTX, ss store.Store) {
team := model.NewId() team := model.NewId()
o1 := &model.Channel{} o1 := &model.Channel{}
o1.TeamId = team o1.TeamId = team
@@ -3620,7 +3621,7 @@ func testChannelStoreGetChannels(t *testing.T, ss store.Store) {
ss.Channel().InvalidateAllChannelMembersForUser(m1.UserId) ss.Channel().InvalidateAllChannelMembersForUser(m1.UserId)
} }
func testChannelStoreGetChannelsByUser(t *testing.T, ss store.Store) { func testChannelStoreGetChannelsByUser(t *testing.T, rctx request.CTX, ss store.Store) {
team := model.NewId() team := model.NewId()
team2 := model.NewId() team2 := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -3711,8 +3712,8 @@ func testChannelStoreGetChannelsByUser(t *testing.T, ss store.Store) {
require.ElementsMatch(t, []string{o1.Id, o3.Id}, []string{list[0].Id, list[1].Id}, "channels did not match") require.ElementsMatch(t, []string{o1.Id, o3.Id}, []string{list[0].Id, list[1].Id}, "channels did not match")
} }
func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreGetAllChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
cleanupChannels(t, ss) cleanupChannels(t, rctx, ss)
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
@@ -3857,7 +3858,7 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlStore) {
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { func testChannelStoreGetMoreChannels(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
otherTeamId := model.NewId() otherTeamId := model.NewId()
userId := model.NewId() userId := model.NewId()
@@ -4011,7 +4012,7 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreGetPrivateChannelsForTeam(t *testing.T, ss store.Store) { func testChannelStoreGetPrivateChannelsForTeam(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
// p1 is a private channel on the team // p1 is a private channel on the team
@@ -4103,7 +4104,7 @@ func testChannelStoreGetPrivateChannelsForTeam(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreGetPublicChannelsForTeam(t *testing.T, ss store.Store) { func testChannelStoreGetPublicChannelsForTeam(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
// o1 is a public channel on the team // o1 is a public channel on the team
@@ -4195,7 +4196,7 @@ func testChannelStoreGetPublicChannelsForTeam(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, ss store.Store) { func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
// oc1 is a public channel on the team // oc1 is a public channel on the team
@@ -4277,7 +4278,7 @@ func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, ss store.Store)
}) })
} }
func testChannelStoreGetChannelCounts(t *testing.T, ss store.Store) { func testChannelStoreGetChannelCounts(t *testing.T, rctx request.CTX, ss store.Store) {
o2 := model.Channel{} o2 := model.Channel{}
o2.TeamId = model.NewId() o2.TeamId = model.NewId()
o2.DisplayName = "Channel2" o2.DisplayName = "Channel2"
@@ -4321,7 +4322,7 @@ func testChannelStoreGetChannelCounts(t *testing.T, ss store.Store) {
require.Len(t, counts.UpdateTimes, 1, "wrong number of update times") require.Len(t, counts.UpdateTimes, 1, "wrong number of update times")
} }
func testChannelStoreGetMembersForUser(t *testing.T, ss store.Store) { func testChannelStoreGetMembersForUser(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -4418,7 +4419,7 @@ func testChannelStoreGetMembersForUser(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreGetMembersForUserWithPagination(t *testing.T, ss store.Store) { func testChannelStoreGetMembersForUserWithPagination(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{ t1 := model.Team{
DisplayName: "team1", DisplayName: "team1",
Name: NewTestId(), Name: NewTestId(),
@@ -4483,7 +4484,7 @@ func testChannelStoreGetMembersForUserWithPagination(t *testing.T, ss store.Stor
assert.Len(t, members, 1) assert.Len(t, members, 1)
} }
func testCountPostsAfter(t *testing.T, ss store.Store) { func testCountPostsAfter(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should count all posts with or without the given user ID", func(t *testing.T) { t.Run("should count all posts with or without the given user ID", func(t *testing.T) {
userId1 := model.NewId() userId1 := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
@@ -4635,7 +4636,7 @@ func testCountPostsAfter(t *testing.T, ss store.Store) {
}) })
} }
func testCountUrgentPostsAfter(t *testing.T, ss store.Store) { func testCountUrgentPostsAfter(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should count all posts with or without the given user ID", func(t *testing.T) { t.Run("should count all posts with or without the given user ID", func(t *testing.T) {
userId1 := model.NewId() userId1 := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
@@ -4710,7 +4711,7 @@ func testCountUrgentPostsAfter(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreUpdateLastViewedAt(t *testing.T, ss store.Store) { func testChannelStoreUpdateLastViewedAt(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Channel1" o1.DisplayName = "Channel1"
@@ -4772,7 +4773,7 @@ func testChannelStoreUpdateLastViewedAt(t *testing.T, ss store.Store) {
require.NoError(t, err, "failed to update") require.NoError(t, err, "failed to update")
} }
func testChannelStoreIncrementMentionCount(t *testing.T, ss store.Store) { func testChannelStoreIncrementMentionCount(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "Channel1" o1.DisplayName = "Channel1"
@@ -4802,7 +4803,7 @@ func testChannelStoreIncrementMentionCount(t *testing.T, ss store.Store) {
require.NoError(t, err, "failed to update") require.NoError(t, err, "failed to update")
} }
func testUpdateChannelMember(t *testing.T, ss store.Store) { func testUpdateChannelMember(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
c1 := &model.Channel{ c1 := &model.Channel{
@@ -4831,7 +4832,7 @@ func testUpdateChannelMember(t *testing.T, ss store.Store) {
require.Error(t, err, "bad user id - should fail") require.Error(t, err, "bad user id - should fail")
} }
func testGetMember(t *testing.T, ss store.Store) { func testGetMember(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
c1 := &model.Channel{ c1 := &model.Channel{
@@ -4895,7 +4896,7 @@ func testGetMember(t *testing.T, ss store.Store) {
ss.Channel().InvalidateCacheForChannelMembersNotifyProps(c2.Id) ss.Channel().InvalidateCacheForChannelMembersNotifyProps(c2.Id)
} }
func testChannelStoreGetMemberForPost(t *testing.T, ss store.Store) { func testChannelStoreGetMemberForPost(t *testing.T, rctx request.CTX, ss store.Store) {
ch := &model.Channel{ ch := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -4928,7 +4929,7 @@ func testChannelStoreGetMemberForPost(t *testing.T, ss store.Store) {
require.Error(t, err, "shouldn't have returned a member") require.Error(t, err, "shouldn't have returned a member")
} }
func testGetMemberCount(t *testing.T, ss store.Store) { func testGetMemberCount(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
c1 := model.Channel{ c1 := model.Channel{
@@ -5036,7 +5037,7 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
require.EqualValuesf(t, 2, count, "got incorrect member count %v", count) require.EqualValuesf(t, 2, count, "got incorrect member count %v", count)
} }
func testGetMemberCountsByGroup(t *testing.T, ss store.Store) { func testGetMemberCountsByGroup(t *testing.T, rctx request.CTX, ss store.Store) {
var memberCounts []*model.ChannelMemberCountByGroup var memberCounts []*model.ChannelMemberCountByGroup
teamId := model.NewId() teamId := model.NewId()
g1 := &model.Group{ g1 := &model.Group{
@@ -5251,7 +5252,7 @@ func testGetMemberCountsByGroup(t *testing.T, ss store.Store) {
}) })
} }
func testGetGuestCount(t *testing.T, ss store.Store) { func testGetGuestCount(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
c1 := model.Channel{ c1 := model.Channel{
@@ -5373,7 +5374,7 @@ func testGetGuestCount(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreSearchMore(t *testing.T, ss store.Store) { func testChannelStoreSearchMore(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
otherTeamId := model.NewId() otherTeamId := model.NewId()
@@ -5542,7 +5543,7 @@ func (s ByChannelDisplayName) Less(i, j int) bool {
return s[i].Id < s[j].Id return s[i].Id < s[j].Id
} }
func testChannelStoreSearchArchivedInTeam(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreSearchArchivedInTeam(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
userId := model.NewId() userId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -5583,7 +5584,7 @@ func testChannelStoreSearchArchivedInTeam(t *testing.T, ss store.Store, s SqlSto
}) })
} }
func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { func testChannelStoreSearchInTeam(t *testing.T, rctx request.CTX, ss store.Store) {
teamID := model.NewId() teamID := model.NewId()
otherTeamID := model.NewId() otherTeamID := model.NewId()
@@ -5802,7 +5803,7 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) {
} }
} }
func testAutocomplete(t *testing.T, ss store.Store, s SqlStore) { func testAutocomplete(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t1 := &model.Team{ t1 := &model.Team{
DisplayName: "t1", DisplayName: "t1",
Name: NewTestId(), Name: NewTestId(),
@@ -6014,7 +6015,7 @@ func testAutocomplete(t *testing.T, ss store.Store, s SqlStore) {
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { func testChannelStoreSearchForUserInTeam(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
teamId := model.NewId() teamId := model.NewId()
otherTeamId := model.NewId() otherTeamId := model.NewId()
@@ -6120,8 +6121,8 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { func testChannelStoreSearchAllChannels(t *testing.T, rctx request.CTX, ss store.Store) {
cleanupChannels(t, ss) cleanupChannels(t, rctx, ss)
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
@@ -6378,7 +6379,7 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) {
} }
} }
func testChannelStoreGetMembersByIds(t *testing.T, ss store.Store) { func testChannelStoreGetMembersByIds(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "ChannelA" o1.DisplayName = "ChannelA"
@@ -6412,7 +6413,7 @@ func testChannelStoreGetMembersByIds(t *testing.T, ss store.Store) {
require.Len(t, members, 0) require.Len(t, members, 0)
} }
func testChannelStoreGetMembersByChannelIds(t *testing.T, ss store.Store) { func testChannelStoreGetMembersByChannelIds(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
// Create a couple channels and add the user to them // Create a couple channels and add the user to them
@@ -6470,7 +6471,7 @@ func testChannelStoreGetMembersByChannelIds(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreGetMembersInfoByChannelIds(t *testing.T, ss store.Store) { func testChannelStoreGetMembersInfoByChannelIds(t *testing.T, rctx request.CTX, ss store.Store) {
u, err := ss.User().Save(&model.User{ u, err := ss.User().Save(&model.User{
Username: "user.test", Username: "user.test",
Email: MakeEmail(), Email: MakeEmail(),
@@ -6526,7 +6527,7 @@ func testChannelStoreGetMembersInfoByChannelIds(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreSearchGroupChannels(t *testing.T, ss store.Store) { func testChannelStoreSearchGroupChannels(t *testing.T, rctx request.CTX, ss store.Store) {
// Users // Users
u1 := &model.User{} u1 := &model.User{}
u1.Username = "user.one" u1.Username = "user.one"
@@ -6680,7 +6681,7 @@ func testChannelStoreSearchGroupChannels(t *testing.T, ss store.Store) {
} }
} }
func testChannelStoreAnalyticsDeletedTypeCount(t *testing.T, ss store.Store) { func testChannelStoreAnalyticsDeletedTypeCount(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Channel{} o1 := model.Channel{}
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.DisplayName = "ChannelA" o1.DisplayName = "ChannelA"
@@ -6760,7 +6761,7 @@ func testChannelStoreAnalyticsDeletedTypeCount(t *testing.T, ss store.Store) {
assert.Equal(t, directStartCount+1, count, "Wrong direct channel deleted count.") assert.Equal(t, directStartCount+1, count, "Wrong direct channel deleted count.")
} }
func testChannelStoreGetPinnedPosts(t *testing.T, ss store.Store) { func testChannelStoreGetPinnedPosts(t *testing.T, rctx request.CTX, ss store.Store) {
ch1 := &model.Channel{ ch1 := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -6853,7 +6854,7 @@ func testChannelStoreGetPinnedPosts(t *testing.T, ss store.Store) {
}) })
} }
func testChannelStoreGetPinnedPostCount(t *testing.T, ss store.Store) { func testChannelStoreGetPinnedPostCount(t *testing.T, rctx request.CTX, ss store.Store) {
ch1 := &model.Channel{ ch1 := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -6913,7 +6914,7 @@ func testChannelStoreGetPinnedPostCount(t *testing.T, ss store.Store) {
require.EqualValues(t, 0, count, "should return 0") require.EqualValues(t, 0, count, "should return 0")
} }
func testChannelStoreMaxChannelsPerTeam(t *testing.T, ss store.Store) { func testChannelStoreMaxChannelsPerTeam(t *testing.T, rctx request.CTX, ss store.Store) {
channel := &model.Channel{ channel := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Channel", DisplayName: "Channel",
@@ -6930,7 +6931,7 @@ func testChannelStoreMaxChannelsPerTeam(t *testing.T, ss store.Store) {
assert.NoError(t, nErr) assert.NoError(t, nErr)
} }
func testChannelStoreGetChannelsByScheme(t *testing.T, ss store.Store) { func testChannelStoreGetChannelsByScheme(t *testing.T, rctx request.CTX, ss store.Store) {
// Create some schemes. // Create some schemes.
s1 := &model.Scheme{ s1 := &model.Scheme{
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -6995,7 +6996,7 @@ func testChannelStoreGetChannelsByScheme(t *testing.T, ss store.Store) {
assert.Empty(t, d3) assert.Empty(t, d3)
} }
func testChannelStoreMigrateChannelMembers(t *testing.T, ss store.Store) { func testChannelStoreMigrateChannelMembers(t *testing.T, rctx request.CTX, ss store.Store) {
s1 := model.NewId() s1 := model.NewId()
c1 := &model.Channel{ c1 := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -7067,7 +7068,7 @@ func testChannelStoreMigrateChannelMembers(t *testing.T, ss store.Store) {
assert.False(t, cm3b.SchemeAdmin) assert.False(t, cm3b.SchemeAdmin)
} }
func testResetAllChannelSchemes(t *testing.T, ss store.Store) { func testResetAllChannelSchemes(t *testing.T, rctx request.CTX, ss store.Store) {
s1 := &model.Scheme{ s1 := &model.Scheme{
Name: model.NewId(), Name: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -7109,7 +7110,7 @@ func testResetAllChannelSchemes(t *testing.T, ss store.Store) {
assert.Equal(t, "", *c2.SchemeId) assert.Equal(t, "", *c2.SchemeId)
} }
func testChannelStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) { func testChannelStoreClearAllCustomRoleAssignments(t *testing.T, rctx request.CTX, ss store.Store) {
c := &model.Channel{ c := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "Name", DisplayName: "Name",
@@ -7174,7 +7175,7 @@ func testChannelStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store)
// testMaterializedPublicChannels tests edge cases involving the triggers and stored procedures // testMaterializedPublicChannels tests edge cases involving the triggers and stored procedures
// that materialize the PublicChannels table. // that materialize the PublicChannels table.
func testMaterializedPublicChannels(t *testing.T, ss store.Store, s SqlStore) { func testMaterializedPublicChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
// o1 is a public channel on the team // o1 is a public channel on the team
@@ -7330,7 +7331,7 @@ func testMaterializedPublicChannels(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testChannelStoreGetAllChannelsForExportAfter(t *testing.T, ss store.Store) { func testChannelStoreGetAllChannelsForExportAfter(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -7362,7 +7363,7 @@ func testChannelStoreGetAllChannelsForExportAfter(t *testing.T, ss store.Store)
assert.True(t, found) assert.True(t, found)
} }
func testChannelStoreGetChannelMembersForExport(t *testing.T, ss store.Store) { func testChannelStoreGetChannelMembersForExport(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -7418,7 +7419,7 @@ func testChannelStoreGetChannelMembersForExport(t *testing.T, ss store.Store) {
assert.Equal(t, u1.Id, cmfe1.UserId) assert.Equal(t, u1.Id, cmfe1.UserId)
} }
func testChannelStoreRemoveAllDeactivatedMembers(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreRemoveAllDeactivatedMembers(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
// Set up all the objects needed in the store. // Set up all the objects needed in the store.
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
@@ -7509,7 +7510,7 @@ func testChannelStoreRemoveAllDeactivatedMembers(t *testing.T, ss store.Store, s
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreExportAllDirectChannels(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreExportAllDirectChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -7566,7 +7567,7 @@ func testChannelStoreExportAllDirectChannels(t *testing.T, ss store.Store, s Sql
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -7628,7 +7629,7 @@ func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, ss store.Store, s SqlStore) { func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -7678,7 +7679,7 @@ func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, ss stor
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) { func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, rctx request.CTX, ss store.Store) {
// Set up all the objects needed // Set up all the objects needed
c1 := &model.Channel{} c1 := &model.Channel{}
c1.DisplayName = "Channel1" c1.DisplayName = "Channel1"
@@ -7744,7 +7745,7 @@ func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) {
assert.Len(t, channels, 0) assert.Len(t, channels, 0)
} }
func testGroupSyncedChannelCount(t *testing.T, ss store.Store) { func testGroupSyncedChannelCount(t *testing.T, rctx request.CTX, ss store.Store) {
channel1, nErr := ss.Channel().Save(&model.Channel{ channel1, nErr := ss.Channel().Save(&model.Channel{
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
@@ -7778,7 +7779,7 @@ func testGroupSyncedChannelCount(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, countAfter, count+1) require.GreaterOrEqual(t, countAfter, count+1)
} }
func testSetShared(t *testing.T, ss store.Store) { func testSetShared(t *testing.T, rctx request.CTX, ss store.Store) {
channel := &model.Channel{ channel := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "test_share_flag", DisplayName: "test_share_flag",
@@ -7808,7 +7809,7 @@ func testSetShared(t *testing.T, ss store.Store) {
}) })
} }
func testGetTeamForChannel(t *testing.T, ss store.Store) { func testGetTeamForChannel(t *testing.T, rctx request.CTX, ss store.Store) {
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
Name: "myteam", Name: "myteam",
DisplayName: "DisplayName", DisplayName: "DisplayName",
@@ -7835,7 +7836,7 @@ func testGetTeamForChannel(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGetChannelsWithUnreadsAndWithMentions(t *testing.T, ss store.Store) { func testGetChannelsWithUnreadsAndWithMentions(t *testing.T, rctx request.CTX, ss store.Store) {
setupMembership := func( setupMembership := func(
pushProp string, pushProp string,
withUnreads bool, withUnreads bool,

Просмотреть файл

@@ -17,19 +17,19 @@ import (
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestChannelStoreCategories(t *testing.T, ss store.Store, s SqlStore) { func TestChannelStoreCategories(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, ss) }) t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, rctx, ss) })
t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, ss) }) t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, rctx, ss) })
t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, ss, s) }) t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, rctx, ss, s) })
t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, ss) }) t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, rctx, ss) })
t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, ss) }) t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, rctx, ss) })
t.Run("ClearSidebarOnTeamLeave", func(t *testing.T) { testClearSidebarOnTeamLeave(t, ss, s) }) t.Run("ClearSidebarOnTeamLeave", func(t *testing.T) { testClearSidebarOnTeamLeave(t, rctx, ss, s) })
t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, ss, s) }) t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, rctx, ss, s) })
t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, ss) }) t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, rctx, ss) })
t.Run("SidebarCategoryDeadlock", func(t *testing.T) { testSidebarCategoryDeadlock(t, ss) }) t.Run("SidebarCategoryDeadlock", func(t *testing.T) { testSidebarCategoryDeadlock(t, rctx, ss) })
} }
func setupTeam(t *testing.T, ss store.Store, userIds ...string) *model.Team { func setupTeam(t *testing.T, rctx request.CTX, ss store.Store, userIds ...string) *model.Team {
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "Name", DisplayName: "Name",
Name: NewTestId(), Name: NewTestId(),
@@ -53,20 +53,18 @@ func setupTeam(t *testing.T, ss store.Store, userIds ...string) *model.Team {
return team return team
} }
func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) { func testCreateInitialSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
t.Run("should create initial favorites/channels/DMs categories", func(t *testing.T) { t.Run("should create initial favorites/channels/DMs categories", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
assert.NoError(t, nErr) assert.NoError(t, nErr)
require.Len(t, res.Categories, 3) require.Len(t, res.Categories, 3)
assert.Equal(t, model.SidebarCategoryFavorites, res.Categories[0].Type) assert.Equal(t, model.SidebarCategoryFavorites, res.Categories[0].Type)
@@ -82,17 +80,17 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
userId := model.NewId() userId := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
team := setupTeam(t, ss, userId, userId2) team := setupTeam(t, rctx, ss, userId, userId2)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId2, opts) res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId2, opts)
assert.NoError(t, nErr) assert.NoError(t, nErr)
assert.Len(t, res.Categories, 3) assert.Len(t, res.Categories, 3)
assert.Equal(t, model.SidebarCategoryFavorites, res.Categories[0].Type) assert.Equal(t, model.SidebarCategoryFavorites, res.Categories[0].Type)
@@ -107,14 +105,14 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should create initial favorites/channels/DMs categories on different teams", func(t *testing.T) { t.Run("should create initial favorites/channels/DMs categories on different teams", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
team2 := setupTeam(t, ss, userId) team2 := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -122,7 +120,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team2.Id, TeamID: team2.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
assert.NoError(t, nErr) assert.NoError(t, nErr)
assert.Len(t, res.Categories, 3) assert.Len(t, res.Categories, 3)
assert.Equal(t, model.SidebarCategoryFavorites, res.Categories[0].Type) assert.Equal(t, model.SidebarCategoryFavorites, res.Categories[0].Type)
@@ -137,13 +135,13 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
t.Run("shouldn't create additional categories when ones already exist", func(t *testing.T) { t.Run("shouldn't create additional categories when ones already exist", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -152,7 +150,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
require.Equal(t, res, initialCategories) require.Equal(t, res, initialCategories)
// Calling CreateInitialSidebarCategories a second time shouldn't create any new categories // Calling CreateInitialSidebarCategories a second time shouldn't create any new categories
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
assert.NoError(t, nErr) assert.NoError(t, nErr)
assert.NotEmpty(t, res) assert.NotEmpty(t, res)
@@ -164,7 +162,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
t.Run("shouldn't create additional categories when ones already exist even when ran simultaneously", func(t *testing.T) { t.Run("shouldn't create additional categories when ones already exist even when ran simultaneously", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
var wg sync.WaitGroup var wg sync.WaitGroup
@@ -178,7 +176,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
_, _ = ss.Channel().CreateInitialSidebarCategories(c, userId, opts) _, _ = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
}() }()
} }
@@ -192,7 +190,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should populate the Favorites category with regular channels", func(t *testing.T) { t.Run("should populate the Favorites category with regular channels", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Set up two channels, one favorited and one not // Set up two channels, one favorited and one not
channel1, nErr := ss.Channel().Save(&model.Channel{ channel1, nErr := ss.Channel().Save(&model.Channel{
@@ -236,7 +234,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.Len(t, categories.Categories, 3) require.Len(t, categories.Categories, 3)
assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type) assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
@@ -253,7 +251,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should populate the Favorites category in alphabetical order", func(t *testing.T) { t.Run("should populate the Favorites category in alphabetical order", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Set up two channels // Set up two channels
channel1, nErr := ss.Channel().Save(&model.Channel{ channel1, nErr := ss.Channel().Save(&model.Channel{
@@ -305,7 +303,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.Len(t, categories.Categories, 3) require.Len(t, categories.Categories, 3)
assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type) assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
@@ -320,7 +318,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should populate the Favorites category with DMs and GMs", func(t *testing.T) { t.Run("should populate the Favorites category with DMs and GMs", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
otherUserId1 := model.NewId() otherUserId1 := model.NewId()
otherUserId2 := model.NewId() otherUserId2 := model.NewId()
@@ -373,7 +371,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.Len(t, categories.Categories, 3) require.Len(t, categories.Categories, 3)
assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type) assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
@@ -390,8 +388,8 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should not populate the Favorites category with channels from other teams", func(t *testing.T) { t.Run("should not populate the Favorites category with channels from other teams", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
team2 := setupTeam(t, ss, userId) team2 := setupTeam(t, rctx, ss, userId)
// Set up a channel on another team and favorite it // Set up a channel on another team and favorite it
channel1, nErr := ss.Channel().Save(&model.Channel{ channel1, nErr := ss.Channel().Save(&model.Channel{
@@ -422,7 +420,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.Len(t, categories.Categories, 3) require.Len(t, categories.Categories, 3)
assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type) assert.Equal(t, model.SidebarCategoryFavorites, categories.Categories[0].Type)
@@ -437,9 +435,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
}) })
} }
func testCreateSidebarCategory(t *testing.T, ss store.Store) { func testCreateSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
t.Run("Creating category without initial categories should fail", func(t *testing.T) { t.Run("Creating category without initial categories should fail", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
teamId := model.NewId() teamId := model.NewId()
@@ -459,13 +455,13 @@ func testCreateSidebarCategory(t *testing.T, ss store.Store) {
t.Run("should place the new category second if Favorites comes first", func(t *testing.T) { t.Run("should place the new category second if Favorites comes first", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -489,13 +485,13 @@ func testCreateSidebarCategory(t *testing.T, ss store.Store) {
t.Run("should place the new category first if Favorites is not first", func(t *testing.T) { t.Run("should place the new category first if Favorites is not first", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -530,13 +526,13 @@ func testCreateSidebarCategory(t *testing.T, ss store.Store) {
t.Run("should create the category with its channels", func(t *testing.T) { t.Run("should create the category with its channels", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -572,13 +568,13 @@ func testCreateSidebarCategory(t *testing.T, ss store.Store) {
t.Run("should remove any channels from their previous categories", func(t *testing.T) { t.Run("should remove any channels from their previous categories", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -637,13 +633,13 @@ func testCreateSidebarCategory(t *testing.T, ss store.Store) {
t.Run("should store the correct sorting value", func(t *testing.T) { t.Run("should store the correct sorting value", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
// Create the category // Create the category
@@ -667,12 +663,10 @@ func testCreateSidebarCategory(t *testing.T, ss store.Store) {
}) })
} }
func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) { func testGetSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
c := request.TestContext(t)
t.Run("should return a custom category with its Channels field set", func(t *testing.T) { t.Run("should return a custom category with its Channels field set", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
channelId1 := model.NewId() channelId1 := model.NewId()
channelId2 := model.NewId() channelId2 := model.NewId()
@@ -682,7 +676,7 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -709,14 +703,14 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
t.Run("should return any orphaned channels with the Channels category", func(t *testing.T) { t.Run("should return any orphaned channels with the Channels category", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the channels category // Create the initial categories and find the channels category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -777,14 +771,14 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
t.Run("shouldn't return orphaned channels on another team with the Channels category", func(t *testing.T) { t.Run("shouldn't return orphaned channels on another team with the Channels category", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the channels category // Create the initial categories and find the channels category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -820,14 +814,14 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
t.Run("shouldn't return non-orphaned channels with the Channels category", func(t *testing.T) { t.Run("shouldn't return non-orphaned channels with the Channels category", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
// Create the initial categories and find the channels category // Create the initial categories and find the channels category
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -887,14 +881,14 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
t.Run("should return any orphaned DM channels with the Direct Messages category", func(t *testing.T) { t.Run("should return any orphaned DM channels with the Direct Messages category", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the DMs category // Create the initial categories and find the DMs category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -932,14 +926,14 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
t.Run("should return any orphaned GM channels with the Direct Messages category", func(t *testing.T) { t.Run("should return any orphaned GM channels with the Direct Messages category", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the DMs category // Create the initial categories and find the DMs category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -974,14 +968,14 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
t.Run("should return orphaned DM channels in the DMs category which are in a custom category on another team", func(t *testing.T) { t.Run("should return orphaned DM channels in the DMs category which are in a custom category on another team", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the DMs category // Create the initial categories and find the DMs category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1010,12 +1004,12 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
require.NoError(t, nErr) require.NoError(t, nErr)
// Create another team and assign the DM to a custom category on that team // Create another team and assign the DM to a custom category on that team
otherTeam := setupTeam(t, ss, userId) otherTeam := setupTeam(t, rctx, ss, userId)
opts = &store.SidebarCategorySearchOpts{ opts = &store.SidebarCategorySearchOpts{
TeamID: otherTeam.Id, TeamID: otherTeam.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1037,18 +1031,16 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testGetSidebarCategories(t *testing.T, ss store.Store) { func testGetSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
t.Run("should return channels in the same order between different ways of getting categories", func(t *testing.T) { t.Run("should return channels in the same order between different ways of getting categories", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1081,13 +1073,13 @@ func testGetSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should not return categories for teams deleted, or no longer a member", func(t *testing.T) { t.Run("should not return categories for teams deleted, or no longer a member", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
teamMember1 := setupTeam(t, ss, userId) teamMember1 := setupTeam(t, rctx, ss, userId)
teamMember2 := setupTeam(t, ss, userId) teamMember2 := setupTeam(t, rctx, ss, userId)
teamDeleted := setupTeam(t, ss, userId) teamDeleted := setupTeam(t, rctx, ss, userId)
teamDeleted.DeleteAt = model.GetMillis() teamDeleted.DeleteAt = model.GetMillis()
ss.Team().Update(teamDeleted) ss.Team().Update(teamDeleted)
teamNotMember := setupTeam(t, ss) teamNotMember := setupTeam(t, rctx, ss)
teamDeletedMember := setupTeam(t, ss, userId) teamDeletedMember := setupTeam(t, rctx, ss, userId)
members, err := ss.Team().GetMembersByIds(teamDeletedMember.Id, []string{userId}, nil) members, err := ss.Team().GetMembersByIds(teamDeletedMember.Id, []string{userId}, nil)
require.NoError(t, err) require.NoError(t, err)
@@ -1105,7 +1097,7 @@ func testGetSidebarCategories(t *testing.T, ss store.Store) {
} }
for _, id := range teamIds { for _, id := range teamIds {
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, &store.SidebarCategorySearchOpts{TeamID: id}) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, &store.SidebarCategorySearchOpts{TeamID: id})
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
} }
@@ -1140,19 +1132,17 @@ func testGetSidebarCategories(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateSidebarCategories(t *testing.T, ss store.Store) { func testUpdateSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
t.Run("ensure the query to update SidebarCategories hasn't been polluted by UpdateSidebarCategoryOrder", func(t *testing.T) { t.Run("ensure the query to update SidebarCategories hasn't been polluted by UpdateSidebarCategoryOrder", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories // Create the initial categories
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, err := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, err) require.NoError(t, err)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1183,14 +1173,14 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("categories should be returned in their original order", func(t *testing.T) { t.Run("categories should be returned in their original order", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories // Create the initial categories
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, err := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, err) require.NoError(t, err)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1215,13 +1205,13 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should silently fail to update read only fields", func(t *testing.T) { t.Run("should silently fail to update read only fields", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1285,14 +1275,14 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should add and remove favorites preferences based on the Favorites category", func(t *testing.T) { t.Run("should add and remove favorites preferences based on the Favorites category", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the favorites category // Create the initial categories and find the favorites category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1350,14 +1340,14 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should add and remove favorites preferences for DMs", func(t *testing.T) { t.Run("should add and remove favorites preferences for DMs", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the favorites category // Create the initial categories and find the favorites category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1420,15 +1410,15 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should add and remove favorites preferences, even if the channel is already favorited in preferences", func(t *testing.T) { t.Run("should add and remove favorites preferences, even if the channel is already favorited in preferences", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
team2 := setupTeam(t, ss, userId) team2 := setupTeam(t, rctx, ss, userId)
// Create the initial categories and find the favorites categories in each team // Create the initial categories and find the favorites categories in each team
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1442,7 +1432,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team2.Id, TeamID: team2.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1530,14 +1520,14 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should not affect other users' favorites preferences", func(t *testing.T) { t.Run("should not affect other users' favorites preferences", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
team := setupTeam(t, ss, userId, userId2) team := setupTeam(t, rctx, ss, userId, userId2)
// Create the initial categories and find the favorites category // Create the initial categories and find the favorites category
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1550,7 +1540,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
require.Equal(t, model.SidebarCategoryChannels, channelsCategory.Type) require.Equal(t, model.SidebarCategoryChannels, channelsCategory.Type)
// Create the other users' categories // Create the other users' categories
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId2, opts) res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId2, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1673,7 +1663,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("channels removed from Channels or DMs categories should be re-added", func(t *testing.T) { t.Run("channels removed from Channels or DMs categories should be re-added", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Create some channels // Create some channels
channel, nErr := ss.Channel().Save(&model.Channel{ channel, nErr := ss.Channel().Save(&model.Channel{
@@ -1710,7 +1700,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1746,7 +1736,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should be able to move DMs into and out of custom categories", func(t *testing.T) { t.Run("should be able to move DMs into and out of custom categories", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
otherUserId := model.NewId() otherUserId := model.NewId()
dmChannel, nErr := ss.Channel().SaveDirectChannel( dmChannel, nErr := ss.Channel().SaveDirectChannel(
@@ -1769,7 +1759,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1840,7 +1830,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should successfully move channels between categories", func(t *testing.T) { t.Run("should successfully move channels between categories", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Join a channel // Join a channel
channel, nErr := ss.Channel().Save(&model.Channel{ channel, nErr := ss.Channel().Save(&model.Channel{
@@ -1861,7 +1851,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1908,7 +1898,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
t.Run("should correctly return the original categories that were modified", func(t *testing.T) { t.Run("should correctly return the original categories that were modified", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
// Join a channel // Join a channel
channel, nErr := ss.Channel().Save(&model.Channel{ channel, nErr := ss.Channel().Save(&model.Channel{
@@ -1929,7 +1919,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -1983,17 +1973,15 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
}) })
} }
func setupInitialSidebarCategories(t *testing.T, ss store.Store) (string, string) { func setupInitialSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) (string, string) {
c := request.TestContext(t)
userId := model.NewId() userId := model.NewId()
team := setupTeam(t, ss, userId) team := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -2004,11 +1992,9 @@ func setupInitialSidebarCategories(t *testing.T, ss store.Store) (string, string
return userId, team.Id return userId, team.Id
} }
func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) { func testClearSidebarOnTeamLeave(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
c := request.TestContext(t)
t.Run("should delete all sidebar categories and channels on the team", func(t *testing.T) { t.Run("should delete all sidebar categories and channels on the team", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
user := &model.User{ user := &model.User{
Id: userId, Id: userId,
@@ -2057,7 +2043,7 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
}) })
t.Run("should not delete sidebar categories and channels on another the team", func(t *testing.T) { t.Run("should not delete sidebar categories and channels on another the team", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
user := &model.User{ user := &model.User{
Id: userId, Id: userId,
@@ -2106,7 +2092,7 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
}) })
t.Run("MM-30314 should not delete channels on another team under specific circumstances", func(t *testing.T) { t.Run("MM-30314 should not delete channels on another team under specific circumstances", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
user := &model.User{ user := &model.User{
Id: userId, Id: userId,
@@ -2116,13 +2102,13 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
} }
// Create a second team and set up the sidebar categories for it // Create a second team and set up the sidebar categories for it
team2 := setupTeam(t, ss, userId) team2 := setupTeam(t, rctx, ss, userId)
opts := &store.SidebarCategorySearchOpts{ opts := &store.SidebarCategorySearchOpts{
TeamID: team2.Id, TeamID: team2.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, err := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, err) require.NoError(t, err)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -2192,9 +2178,9 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testDeleteSidebarCategory(t *testing.T, ss store.Store, s SqlStore) { func testDeleteSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("should correctly remove an empty category", func(t *testing.T) { t.Run("should correctly remove an empty category", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
defer ss.User().PermanentDelete(userId) defer ss.User().PermanentDelete(userId)
newCategory, err := ss.Channel().CreateSidebarCategory(userId, teamId, &model.SidebarCategoryWithChannels{}) newCategory, err := ss.Channel().CreateSidebarCategory(userId, teamId, &model.SidebarCategoryWithChannels{})
@@ -2216,7 +2202,7 @@ func testDeleteSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
}) })
t.Run("should correctly remove a category and its channels", func(t *testing.T) { t.Run("should correctly remove a category and its channels", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
defer ss.User().PermanentDelete(userId) defer ss.User().PermanentDelete(userId)
user := &model.User{ user := &model.User{
@@ -2284,7 +2270,7 @@ func testDeleteSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
}) })
t.Run("should not allow you to remove non-custom categories", func(t *testing.T) { t.Run("should not allow you to remove non-custom categories", func(t *testing.T) {
userId, teamId := setupInitialSidebarCategories(t, ss) userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
defer ss.User().PermanentDelete(userId) defer ss.User().PermanentDelete(userId)
res, err := ss.Channel().GetSidebarCategoriesForTeamForUser(userId, teamId) res, err := ss.Channel().GetSidebarCategoriesForTeamForUser(userId, teamId)
require.NoError(t, err) require.NoError(t, err)
@@ -2304,9 +2290,7 @@ func testDeleteSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testUpdateSidebarChannelsByPreferences(t *testing.T, ss store.Store) { func testUpdateSidebarChannelsByPreferences(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
t.Run("Should be able to update sidebar channels", func(t *testing.T) { t.Run("Should be able to update sidebar channels", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
teamId := model.NewId() teamId := model.NewId()
@@ -2315,7 +2299,7 @@ func testUpdateSidebarChannelsByPreferences(t *testing.T, ss store.Store) {
TeamID: teamId, TeamID: teamId,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
require.NoError(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -2344,7 +2328,7 @@ func testUpdateSidebarChannelsByPreferences(t *testing.T, ss store.Store) {
TeamID: teamId, TeamID: teamId,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts) res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
assert.NoError(t, nErr) assert.NoError(t, nErr)
require.NotEmpty(t, res) require.NotEmpty(t, res)
@@ -2363,11 +2347,9 @@ func testUpdateSidebarChannelsByPreferences(t *testing.T, ss store.Store) {
// testSidebarCategoryDeadlock tries to delete and update a category at the same time // testSidebarCategoryDeadlock tries to delete and update a category at the same time
// in the hope of triggering a deadlock. This is a best-effort test case, and is not guaranteed // in the hope of triggering a deadlock. This is a best-effort test case, and is not guaranteed
// to catch a bug. // to catch a bug.
func testSidebarCategoryDeadlock(t *testing.T, ss store.Store) { func testSidebarCategoryDeadlock(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
userID := model.NewId() userID := model.NewId()
team := setupTeam(t, ss, userID) team := setupTeam(t, rctx, ss, userID)
// Join a channel // Join a channel
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
@@ -2388,7 +2370,7 @@ func testSidebarCategoryDeadlock(t *testing.T, ss store.Store) {
TeamID: team.Id, TeamID: team.Id,
ExcludeTeam: false, ExcludeTeam: false,
} }
res, err := ss.Channel().CreateInitialSidebarCategories(c, userID, opts) res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userID, opts)
require.NoError(t, err) require.NoError(t, err)
require.NotEmpty(t, res) require.NotEmpty(t, res)

Просмотреть файл

@@ -11,18 +11,19 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestClusterDiscoveryStore(t *testing.T, ss store.Store) { func TestClusterDiscoveryStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("", func(t *testing.T) { testClusterDiscoveryStore(t, ss) }) t.Run("", func(t *testing.T) { testClusterDiscoveryStore(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testClusterDiscoveryStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testClusterDiscoveryStoreDelete(t, rctx, ss) })
t.Run("LastPing", func(t *testing.T) { testClusterDiscoveryStoreLastPing(t, ss) }) t.Run("LastPing", func(t *testing.T) { testClusterDiscoveryStoreLastPing(t, rctx, ss) })
t.Run("Exists", func(t *testing.T) { testClusterDiscoveryStoreExists(t, ss) }) t.Run("Exists", func(t *testing.T) { testClusterDiscoveryStoreExists(t, rctx, ss) })
t.Run("ClusterDiscoveryGetStore", func(t *testing.T) { testClusterDiscoveryGetStore(t, ss) }) t.Run("ClusterDiscoveryGetStore", func(t *testing.T) { testClusterDiscoveryGetStore(t, rctx, ss) })
} }
func testClusterDiscoveryStore(t *testing.T, ss store.Store) { func testClusterDiscoveryStore(t *testing.T, rctx request.CTX, ss store.Store) {
discovery := &model.ClusterDiscovery{ discovery := &model.ClusterDiscovery{
ClusterName: "cluster_name", ClusterName: "cluster_name",
Hostname: "hostname" + model.NewId(), Hostname: "hostname" + model.NewId(),
@@ -36,7 +37,7 @@ func testClusterDiscoveryStore(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testClusterDiscoveryStoreDelete(t *testing.T, ss store.Store) { func testClusterDiscoveryStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
discovery := &model.ClusterDiscovery{ discovery := &model.ClusterDiscovery{
ClusterName: "cluster_name", ClusterName: "cluster_name",
Hostname: "hostname" + model.NewId(), Hostname: "hostname" + model.NewId(),
@@ -50,7 +51,7 @@ func testClusterDiscoveryStoreDelete(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) { func testClusterDiscoveryStoreLastPing(t *testing.T, rctx request.CTX, ss store.Store) {
discovery := &model.ClusterDiscovery{ discovery := &model.ClusterDiscovery{
ClusterName: "cluster_name_lastPing", ClusterName: "cluster_name_lastPing",
Hostname: "hostname" + model.NewId(), Hostname: "hostname" + model.NewId(),
@@ -86,7 +87,7 @@ func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testClusterDiscoveryStoreExists(t *testing.T, ss store.Store) { func testClusterDiscoveryStoreExists(t *testing.T, rctx request.CTX, ss store.Store) {
discovery := &model.ClusterDiscovery{ discovery := &model.ClusterDiscovery{
ClusterName: "cluster_name_Exists", ClusterName: "cluster_name_Exists",
Hostname: "hostname" + model.NewId(), Hostname: "hostname" + model.NewId(),
@@ -107,7 +108,7 @@ func testClusterDiscoveryStoreExists(t *testing.T, ss store.Store) {
assert.False(t, val) assert.False(t, val)
} }
func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) { func testClusterDiscoveryGetStore(t *testing.T, rctx request.CTX, ss store.Store) {
testType1 := model.NewId() testType1 := model.NewId()
discovery1 := &model.ClusterDiscovery{ discovery1 := &model.ClusterDiscovery{

Просмотреть файл

@@ -10,22 +10,23 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestCommandStore(t *testing.T, ss store.Store) { func TestCommandStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save", func(t *testing.T) { testCommandStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testCommandStoreSave(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testCommandStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testCommandStoreGet(t, rctx, ss) })
t.Run("GetByTeam", func(t *testing.T) { testCommandStoreGetByTeam(t, ss) }) t.Run("GetByTeam", func(t *testing.T) { testCommandStoreGetByTeam(t, rctx, ss) })
t.Run("GetByTrigger", func(t *testing.T) { testCommandStoreGetByTrigger(t, ss) }) t.Run("GetByTrigger", func(t *testing.T) { testCommandStoreGetByTrigger(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testCommandStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testCommandStoreDelete(t, rctx, ss) })
t.Run("DeleteByTeam", func(t *testing.T) { testCommandStoreDeleteByTeam(t, ss) }) t.Run("DeleteByTeam", func(t *testing.T) { testCommandStoreDeleteByTeam(t, rctx, ss) })
t.Run("DeleteByUser", func(t *testing.T) { testCommandStoreDeleteByUser(t, ss) }) t.Run("DeleteByUser", func(t *testing.T) { testCommandStoreDeleteByUser(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testCommandStoreUpdate(t, ss) }) t.Run("Update", func(t *testing.T) { testCommandStoreUpdate(t, rctx, ss) })
t.Run("CommandCount", func(t *testing.T) { testCommandCount(t, ss) }) t.Run("CommandCount", func(t *testing.T) { testCommandCount(t, rctx, ss) })
} }
func testCommandStoreSave(t *testing.T, ss store.Store) { func testCommandStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Command{} o1 := model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -40,7 +41,7 @@ func testCommandStoreSave(t *testing.T, ss store.Store) {
require.Error(t, err, "shouldn't be able to update from save") require.Error(t, err, "shouldn't be able to update from save")
} }
func testCommandStoreGet(t *testing.T, ss store.Store) { func testCommandStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -61,7 +62,7 @@ func testCommandStoreGet(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testCommandStoreGetByTeam(t *testing.T, ss store.Store) { func testCommandStoreGetByTeam(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -82,7 +83,7 @@ func testCommandStoreGetByTeam(t *testing.T, ss store.Store) {
require.Empty(t, result, "no commands should have returned") require.Empty(t, result, "no commands should have returned")
} }
func testCommandStoreGetByTrigger(t *testing.T, ss store.Store) { func testCommandStoreGetByTrigger(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -117,7 +118,7 @@ func testCommandStoreGetByTrigger(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testCommandStoreDelete(t *testing.T, ss store.Store) { func testCommandStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -141,7 +142,7 @@ func testCommandStoreDelete(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testCommandStoreDeleteByTeam(t *testing.T, ss store.Store) { func testCommandStoreDeleteByTeam(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -165,7 +166,7 @@ func testCommandStoreDeleteByTeam(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testCommandStoreDeleteByUser(t *testing.T, ss store.Store) { func testCommandStoreDeleteByUser(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -189,7 +190,7 @@ func testCommandStoreDeleteByUser(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testCommandStoreUpdate(t *testing.T, ss store.Store) { func testCommandStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost
@@ -211,7 +212,7 @@ func testCommandStoreUpdate(t *testing.T, ss store.Store) {
require.Error(t, err) require.Error(t, err)
} }
func testCommandCount(t *testing.T, ss store.Store) { func testCommandCount(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Command{} o1 := &model.Command{}
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
o1.Method = model.CommandMethodPost o1.Method = model.CommandMethodPost

Просмотреть файл

@@ -11,14 +11,15 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestCommandWebhookStore(t *testing.T, ss store.Store) { func TestCommandWebhookStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("", func(t *testing.T) { testCommandWebhookStore(t, ss) }) t.Run("", func(t *testing.T) { testCommandWebhookStore(t, rctx, ss) })
} }
func testCommandWebhookStore(t *testing.T, ss store.Store) { func testCommandWebhookStore(t *testing.T, rctx request.CTX, ss store.Store) {
cws := ss.CommandWebhook() cws := ss.CommandWebhook()
h1 := &model.CommandWebhook{} h1 := &model.CommandWebhook{}

Просмотреть файл

@@ -16,7 +16,7 @@ import (
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func cleanupStoreState(t *testing.T, ss store.Store) { func cleanupStoreState(t *testing.T, rctx request.CTX, ss store.Store) {
//remove existing users //remove existing users
allUsers, err := ss.User().GetAll() allUsers, err := ss.User().GetAll()
require.NoError(t, err, "error cleaning all test users", err) require.NoError(t, err, "error cleaning all test users", err)
@@ -46,21 +46,21 @@ func cleanupStoreState(t *testing.T, ss store.Store) {
} }
} }
func TestComplianceStore(t *testing.T, ss store.Store) { func TestComplianceStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("", func(t *testing.T) { testComplianceStore(t, ss) }) t.Run("", func(t *testing.T) { testComplianceStore(t, rctx, ss) })
t.Run("ComplianceExport", func(t *testing.T) { testComplianceExport(t, ss) }) t.Run("ComplianceExport", func(t *testing.T) { testComplianceExport(t, rctx, ss) })
t.Run("ComplianceExportDirectMessages", func(t *testing.T) { testComplianceExportDirectMessages(t, ss) }) t.Run("ComplianceExportDirectMessages", func(t *testing.T) { testComplianceExportDirectMessages(t, rctx, ss) })
t.Run("MessageExportPublicChannel", func(t *testing.T) { testMessageExportPublicChannel(t, ss) }) t.Run("MessageExportPublicChannel", func(t *testing.T) { testMessageExportPublicChannel(t, rctx, ss) })
t.Run("MessageExportPrivateChannel", func(t *testing.T) { testMessageExportPrivateChannel(t, ss) }) t.Run("MessageExportPrivateChannel", func(t *testing.T) { testMessageExportPrivateChannel(t, rctx, ss) })
t.Run("MessageExportDirectMessageChannel", func(t *testing.T) { testMessageExportDirectMessageChannel(t, ss) }) t.Run("MessageExportDirectMessageChannel", func(t *testing.T) { testMessageExportDirectMessageChannel(t, rctx, ss) })
t.Run("MessageExportGroupMessageChannel", func(t *testing.T) { testMessageExportGroupMessageChannel(t, ss) }) t.Run("MessageExportGroupMessageChannel", func(t *testing.T) { testMessageExportGroupMessageChannel(t, rctx, ss) })
t.Run("MessageEditExportMessage", func(t *testing.T) { testEditExportMessage(t, ss) }) t.Run("MessageEditExportMessage", func(t *testing.T) { testEditExportMessage(t, rctx, ss) })
t.Run("MessageEditAfterExportMessage", func(t *testing.T) { testEditAfterExportMessage(t, ss) }) t.Run("MessageEditAfterExportMessage", func(t *testing.T) { testEditAfterExportMessage(t, rctx, ss) })
t.Run("MessageDeleteExportMessage", func(t *testing.T) { testDeleteExportMessage(t, ss) }) t.Run("MessageDeleteExportMessage", func(t *testing.T) { testDeleteExportMessage(t, rctx, ss) })
t.Run("MessageDeleteAfterExportMessage", func(t *testing.T) { testDeleteAfterExportMessage(t, ss) }) t.Run("MessageDeleteAfterExportMessage", func(t *testing.T) { testDeleteAfterExportMessage(t, rctx, ss) })
} }
func testComplianceStore(t *testing.T, ss store.Store) { func testComplianceStore(t *testing.T, rctx request.CTX, ss store.Store) {
compliance1 := &model.Compliance{Desc: "Audit for federal subpoena case #22443", UserId: model.NewId(), Status: model.ComplianceStatusFailed, StartAt: model.GetMillis() - 1, EndAt: model.GetMillis() + 1, Type: model.ComplianceTypeAdhoc} compliance1 := &model.Compliance{Desc: "Audit for federal subpoena case #22443", UserId: model.NewId(), Status: model.ComplianceStatusFailed, StartAt: model.GetMillis() - 1, EndAt: model.GetMillis() + 1, Type: model.ComplianceTypeAdhoc}
_, err := ss.Compliance().Save(compliance1) _, err := ss.Compliance().Save(compliance1)
require.NoError(t, err) require.NoError(t, err)
@@ -97,7 +97,7 @@ func testComplianceStore(t *testing.T, ss store.Store) {
require.Equal(t, compliance2.Status, rc2.Status) require.Equal(t, compliance2.Status, rc2.Status)
} }
func testComplianceExport(t *testing.T, ss store.Store) { func testComplianceExport(t *testing.T, rctx request.CTX, ss store.Store) {
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
const ( const (
limit = 30000 limit = 30000
@@ -229,8 +229,8 @@ func testComplianceExport(t *testing.T, ss store.Store) {
}) })
} }
func testComplianceExportDirectMessages(t *testing.T, ss store.Store) { func testComplianceExportDirectMessages(t *testing.T, rctx request.CTX, ss store.Store) {
defer cleanupStoreState(t, ss) defer cleanupStoreState(t, rctx, ss)
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
const ( const (
@@ -395,14 +395,12 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
}) })
} }
func testMessageExportPublicChannel(t *testing.T, ss store.Store) { func testMessageExportPublicChannel(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -472,7 +470,7 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
// fetch the message exports for both posts that user1 sent // fetch the message exports for both posts that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
@@ -501,14 +499,12 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
assert.Equal(t, user1.Username, *messageExportMap[post2.Id].Username) assert.Equal(t, user1.Username, *messageExportMap[post2.Id].Username)
} }
func testMessageExportPrivateChannel(t *testing.T, ss store.Store) { func testMessageExportPrivateChannel(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -578,7 +574,7 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
// fetch the message exports for both posts that user1 sent // fetch the message exports for both posts that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
@@ -609,14 +605,12 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
assert.Equal(t, user1.Username, *messageExportMap[post2.Id].Username) assert.Equal(t, user1.Username, *messageExportMap[post2.Id].Username)
} }
func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) { func testMessageExportDirectMessageChannel(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -671,7 +665,7 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
// fetch the message export for the post that user1 sent // fetch the message export for the post that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
@@ -692,14 +686,12 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
assert.Equal(t, user1.Username, *messageExportMap[post.Id].Username) assert.Equal(t, user1.Username, *messageExportMap[post.Id].Username)
} }
func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) { func testMessageExportGroupMessageChannel(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -771,7 +763,7 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
// fetch the message export for the post that user1 sent // fetch the message export for the post that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 10}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
@@ -792,14 +784,12 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
} }
// post,edit,export // post,edit,export
func testEditExportMessage(t *testing.T, ss store.Store) { func testEditExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -854,7 +844,7 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
@@ -887,13 +877,11 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
} }
// post, export, edit, export // post, export, edit, export
func testEditAfterExportMessage(t *testing.T, ss store.Store) { func testEditAfterExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -941,7 +929,7 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
@@ -967,7 +955,7 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// fetch the message exports after edit // fetch the message exports after edit
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: postEditTime - 1}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: postEditTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
@@ -1000,13 +988,11 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
} }
// post, delete, export // post, delete, export
func testDeleteExportMessage(t *testing.T, ss store.Store) { func testDeleteExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -1059,7 +1045,7 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
@@ -1087,13 +1073,11 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
} }
// post,export,delete,export // post,export,delete,export
func testDeleteAfterExportMessage(t *testing.T, ss store.Store) { func testDeleteAfterExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t) defer cleanupStoreState(t, rctx, ss)
defer cleanupStoreState(t, ss)
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, _, err := ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err := ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
@@ -1141,7 +1125,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: startTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
@@ -1164,7 +1148,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// fetch the message exports after delete // fetch the message exports after delete
messages, _, err = ss.Compliance().MessageExport(c, model.MessageExportCursor{LastPostUpdateAt: postDeleteTime - 1}, 10) messages, _, err = ss.Compliance().MessageExport(rctx, model.MessageExportCursor{LastPostUpdateAt: postDeleteTime - 1}, 10)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))

Просмотреть файл

@@ -6,20 +6,21 @@ package storetest
import ( import (
"testing" "testing"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestDesktopTokensStore(t *testing.T, ss store.Store, s SqlStore) { func TestDesktopTokensStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("GetUserId", func(t *testing.T) { testGetUserId(t, ss) }) t.Run("GetUserId", func(t *testing.T) { testGetUserId(t, rctx, ss) })
t.Run("Insert", func(t *testing.T) { testInsert(t, ss) }) t.Run("Insert", func(t *testing.T) { testInsert(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testDeleteToken(t, ss) }) t.Run("Delete", func(t *testing.T) { testDeleteToken(t, rctx, ss) })
t.Run("DeleteByUserId", func(t *testing.T) { testDeleteByUserId(t, ss) }) t.Run("DeleteByUserId", func(t *testing.T) { testDeleteByUserId(t, rctx, ss) })
t.Run("DeleteOlderThan", func(t *testing.T) { testDeleteOlderThan(t, ss) }) t.Run("DeleteOlderThan", func(t *testing.T) { testDeleteOlderThan(t, rctx, ss) })
} }
func testGetUserId(t *testing.T, ss store.Store) { func testGetUserId(t *testing.T, rctx request.CTX, ss store.Store) {
err := ss.DesktopTokens().Insert("token_with_id", 1000, "user_id") err := ss.DesktopTokens().Insert("token_with_id", 1000, "user_id")
require.NoError(t, err) require.NoError(t, err)
@@ -37,7 +38,7 @@ func testGetUserId(t *testing.T, ss store.Store) {
}) })
} }
func testInsert(t *testing.T, ss store.Store) { func testInsert(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("insert", func(t *testing.T) { t.Run("insert", func(t *testing.T) {
err := ss.DesktopTokens().Insert("token", 1000, "user_id") err := ss.DesktopTokens().Insert("token", 1000, "user_id")
assert.NoError(t, err) assert.NoError(t, err)
@@ -53,7 +54,7 @@ func testInsert(t *testing.T, ss store.Store) {
}) })
} }
func testDeleteToken(t *testing.T, ss store.Store) { func testDeleteToken(t *testing.T, rctx request.CTX, ss store.Store) {
err := ss.DesktopTokens().Insert("deleteable_token", 3000, "user_id") err := ss.DesktopTokens().Insert("deleteable_token", 3000, "user_id")
require.NoError(t, err) require.NoError(t, err)
@@ -70,7 +71,7 @@ func testDeleteToken(t *testing.T, ss store.Store) {
}) })
} }
func testDeleteByUserId(t *testing.T, ss store.Store) { func testDeleteByUserId(t *testing.T, rctx request.CTX, ss store.Store) {
err := ss.DesktopTokens().Insert("deleteable_token_2", 4000, "deleteable_user_id") err := ss.DesktopTokens().Insert("deleteable_token_2", 4000, "deleteable_user_id")
require.NoError(t, err) require.NoError(t, err)
@@ -87,7 +88,7 @@ func testDeleteByUserId(t *testing.T, ss store.Store) {
}) })
} }
func testDeleteOlderThan(t *testing.T, ss store.Store) { func testDeleteOlderThan(t *testing.T, rctx request.CTX, ss store.Store) {
err := ss.DesktopTokens().Insert("deleteable_token_old", 1000, "deleteable_user_id") err := ss.DesktopTokens().Insert("deleteable_token_old", 1000, "deleteable_user_id")
require.NoError(t, err) require.NoError(t, err)
err = ss.DesktopTokens().Insert("deleteable_token_new", 5000, "deleteable_user_id") err = ss.DesktopTokens().Insert("deleteable_token_new", 5000, "deleteable_user_id")

Просмотреть файл

@@ -11,20 +11,21 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestDraftStore(t *testing.T, ss store.Store, s SqlStore) { func TestDraftStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("SaveDraft", func(t *testing.T) { testSaveDraft(t, ss) }) t.Run("SaveDraft", func(t *testing.T) { testSaveDraft(t, rctx, ss) })
t.Run("UpdateDraft", func(t *testing.T) { testUpdateDraft(t, ss) }) t.Run("UpdateDraft", func(t *testing.T) { testUpdateDraft(t, rctx, ss) })
t.Run("DeleteDraft", func(t *testing.T) { testDeleteDraft(t, ss) }) t.Run("DeleteDraft", func(t *testing.T) { testDeleteDraft(t, rctx, ss) })
t.Run("GetDraft", func(t *testing.T) { testGetDraft(t, ss) }) t.Run("GetDraft", func(t *testing.T) { testGetDraft(t, rctx, ss) })
t.Run("GetDraftsForUser", func(t *testing.T) { testGetDraftsForUser(t, ss) }) t.Run("GetDraftsForUser", func(t *testing.T) { testGetDraftsForUser(t, rctx, ss) })
t.Run("GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration", func(t *testing.T) { testGetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(t, ss) }) t.Run("GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration", func(t *testing.T) { testGetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(t, rctx, ss) })
t.Run("DeleteEmptyDraftsByCreateAtAndUserId", func(t *testing.T) { testDeleteEmptyDraftsByCreateAtAndUserId(t, ss) }) t.Run("DeleteEmptyDraftsByCreateAtAndUserId", func(t *testing.T) { testDeleteEmptyDraftsByCreateAtAndUserId(t, rctx, ss) })
} }
func testSaveDraft(t *testing.T, ss store.Store) { func testSaveDraft(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Id: model.NewId(), Id: model.NewId(),
} }
@@ -89,7 +90,7 @@ func testSaveDraft(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateDraft(t *testing.T, ss store.Store) { func testUpdateDraft(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Id: model.NewId(), Id: model.NewId(),
} }
@@ -146,7 +147,7 @@ func testUpdateDraft(t *testing.T, ss store.Store) {
}) })
} }
func testDeleteDraft(t *testing.T, ss store.Store) { func testDeleteDraft(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Id: model.NewId(), Id: model.NewId(),
} }
@@ -215,7 +216,7 @@ func testDeleteDraft(t *testing.T, ss store.Store) {
}) })
} }
func testGetDraft(t *testing.T, ss store.Store) { func testGetDraft(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Id: model.NewId(), Id: model.NewId(),
} }
@@ -280,7 +281,7 @@ func testGetDraft(t *testing.T, ss store.Store) {
}) })
} }
func testGetDraftsForUser(t *testing.T, ss store.Store) { func testGetDraftsForUser(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Id: model.NewId(), Id: model.NewId(),
} }
@@ -337,7 +338,7 @@ func testGetDraftsForUser(t *testing.T, ss store.Store) {
}) })
} }
func clearDrafts(t *testing.T, ss store.Store) { func clearDrafts(t *testing.T, rctx request.CTX, ss store.Store) {
t.Helper() t.Helper()
_, err := ss.GetInternalMasterDB().Exec("DELETE FROM Drafts") _, err := ss.GetInternalMasterDB().Exec("DELETE FROM Drafts")
@@ -370,7 +371,7 @@ func makeDrafts(t *testing.T, ss store.Store, count int, message string) {
} }
} }
func countDraftPages(t *testing.T, ss store.Store) int { func countDraftPages(t *testing.T, rctx request.CTX, ss store.Store) int {
t.Helper() t.Helper()
pages := 0 pages := 0
@@ -400,43 +401,43 @@ func countDraftPages(t *testing.T, ss store.Store) int {
return pages return pages
} }
func testGetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(t *testing.T, ss store.Store) { func testGetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("no drafts", func(t *testing.T) { t.Run("no drafts", func(t *testing.T) {
clearDrafts(t, ss) clearDrafts(t, rctx, ss)
createAt, userId, err := ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(0, "") createAt, userId, err := ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(0, "")
require.NoError(t, err) require.NoError(t, err)
assert.EqualValues(t, 0, createAt) assert.EqualValues(t, 0, createAt)
assert.Equal(t, "", userId) assert.Equal(t, "", userId)
assert.Equal(t, 0, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 0, countDraftPages(t, rctx, ss), "incorrect number of pages")
}) })
t.Run("single page", func(t *testing.T) { t.Run("single page", func(t *testing.T) {
clearDrafts(t, ss) clearDrafts(t, rctx, ss)
makeDrafts(t, ss, 100, model.NewRandomString(16)) makeDrafts(t, ss, 100, model.NewRandomString(16))
assert.Equal(t, 1, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 1, countDraftPages(t, rctx, ss), "incorrect number of pages")
}) })
t.Run("multiple pages", func(t *testing.T) { t.Run("multiple pages", func(t *testing.T) {
clearDrafts(t, ss) clearDrafts(t, rctx, ss)
makeDrafts(t, ss, 300, model.NewRandomString(16)) makeDrafts(t, ss, 300, model.NewRandomString(16))
assert.Equal(t, 3, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 3, countDraftPages(t, rctx, ss), "incorrect number of pages")
}) })
} }
func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) { func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("nil parameters", func(t *testing.T) { t.Run("nil parameters", func(t *testing.T) {
clearDrafts(t, ss) clearDrafts(t, rctx, ss)
err := ss.Draft().DeleteEmptyDraftsByCreateAtAndUserId(0, "") err := ss.Draft().DeleteEmptyDraftsByCreateAtAndUserId(0, "")
require.NoError(t, err) require.NoError(t, err)
}) })
t.Run("delete single page, all empty", func(t *testing.T) { t.Run("delete single page, all empty", func(t *testing.T) {
clearDrafts(t, ss) clearDrafts(t, rctx, ss)
makeDrafts(t, ss, 100, "") makeDrafts(t, ss, 100, "")
createAt, userId := int64(0), "" createAt, userId := int64(0), ""
@@ -446,7 +447,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
assert.Equal(t, 0, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 0, countDraftPages(t, rctx, ss), "incorrect number of pages")
nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId) nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId)
require.NoError(t, err) require.NoError(t, err)
@@ -455,7 +456,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
}) })
t.Run("delete multiple pages, all empty", func(t *testing.T) { t.Run("delete multiple pages, all empty", func(t *testing.T) {
clearDrafts(t, ss) clearDrafts(t, rctx, ss)
makeDrafts(t, ss, 300, "") makeDrafts(t, ss, 300, "")
createAt, userId := int64(0), "" createAt, userId := int64(0), ""
@@ -465,7 +466,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
assert.Equal(t, 2, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 2, countDraftPages(t, rctx, ss), "incorrect number of pages")
nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId) nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId)
require.NoError(t, err) require.NoError(t, err)
@@ -473,7 +474,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
assert.Equal(t, 1, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 1, countDraftPages(t, rctx, ss), "incorrect number of pages")
nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId) nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId)
require.NoError(t, err) require.NoError(t, err)
@@ -481,7 +482,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
assert.Equal(t, 0, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 0, countDraftPages(t, rctx, ss), "incorrect number of pages")
nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId) nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId)
require.NoError(t, err) require.NoError(t, err)
@@ -490,7 +491,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
}) })
t.Run("delete multiple pages, some empty", func(t *testing.T) { t.Run("delete multiple pages, some empty", func(t *testing.T) {
clearDrafts(t, ss) clearDrafts(t, rctx, ss)
makeDrafts(t, ss, 50, "") makeDrafts(t, ss, 50, "")
makeDrafts(t, ss, 50, "message") makeDrafts(t, ss, 50, "message")
makeDrafts(t, ss, 50, "") makeDrafts(t, ss, 50, "")
@@ -503,7 +504,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
makeDrafts(t, ss, 50, "message") makeDrafts(t, ss, 50, "message")
// Verify initially 5 pages // Verify initially 5 pages
assert.Equal(t, 5, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 5, countDraftPages(t, rctx, ss), "incorrect number of pages")
createAt, userId := int64(0), "" createAt, userId := int64(0), ""
@@ -514,7 +515,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
// Only deleted 50, so still 5 pages // Only deleted 50, so still 5 pages
assert.Equal(t, 5, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 5, countDraftPages(t, rctx, ss), "incorrect number of pages")
nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId) nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId)
require.NoError(t, err) require.NoError(t, err)
@@ -523,7 +524,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
// Now deleted 100, so down to 4 pages // Now deleted 100, so down to 4 pages
assert.Equal(t, 4, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 4, countDraftPages(t, rctx, ss), "incorrect number of pages")
nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId) nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId)
require.NoError(t, err) require.NoError(t, err)
@@ -532,7 +533,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
// Only deleted 150 now, so still 4 pages // Only deleted 150 now, so still 4 pages
assert.Equal(t, 4, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 4, countDraftPages(t, rctx, ss), "incorrect number of pages")
nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId) nextCreateAt, nextUserId, err = ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(createAt, userId)
require.NoError(t, err) require.NoError(t, err)
@@ -541,7 +542,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
createAt, userId = nextCreateAt, nextUserId createAt, userId = nextCreateAt, nextUserId
// Now deleted all 200 empty messages, so down to 3 pages // Now deleted all 200 empty messages, so down to 3 pages
assert.Equal(t, 3, countDraftPages(t, ss), "incorrect number of pages") assert.Equal(t, 3, countDraftPages(t, rctx, ss), "incorrect number of pages")
// Keep going through all pages to verify nothing else gets deleted. // Keep going through all pages to verify nothing else gets deleted.

Просмотреть файл

@@ -15,16 +15,16 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestEmojiStore(t *testing.T, ss store.Store) { func TestEmojiStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("EmojiSaveDelete", func(t *testing.T) { testEmojiSaveDelete(t, ss) }) t.Run("EmojiSaveDelete", func(t *testing.T) { testEmojiSaveDelete(t, rctx, ss) })
t.Run("EmojiGet", func(t *testing.T) { testEmojiGet(t, ss) }) t.Run("EmojiGet", func(t *testing.T) { testEmojiGet(t, rctx, ss) })
t.Run("EmojiGetByName", func(t *testing.T) { testEmojiGetByName(t, ss) }) t.Run("EmojiGetByName", func(t *testing.T) { testEmojiGetByName(t, rctx, ss) })
t.Run("EmojiGetMultipleByName", func(t *testing.T) { testEmojiGetMultipleByName(t, ss) }) t.Run("EmojiGetMultipleByName", func(t *testing.T) { testEmojiGetMultipleByName(t, rctx, ss) })
t.Run("EmojiGetList", func(t *testing.T) { testEmojiGetList(t, ss) }) t.Run("EmojiGetList", func(t *testing.T) { testEmojiGetList(t, rctx, ss) })
t.Run("EmojiSearch", func(t *testing.T) { testEmojiSearch(t, ss) }) t.Run("EmojiSearch", func(t *testing.T) { testEmojiSearch(t, rctx, ss) })
} }
func testEmojiSaveDelete(t *testing.T, ss store.Store) { func testEmojiSaveDelete(t *testing.T, rctx request.CTX, ss store.Store) {
emoji1 := &model.Emoji{ emoji1 := &model.Emoji{
CreatorId: model.NewId(), CreatorId: model.NewId(),
Name: model.NewId(), Name: model.NewId(),
@@ -52,9 +52,7 @@ func testEmojiSaveDelete(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testEmojiGet(t *testing.T, ss store.Store) { func testEmojiGet(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
emojis := []model.Emoji{ emojis := []model.Emoji{
{ {
CreatorId: model.NewId(), CreatorId: model.NewId(),
@@ -83,19 +81,17 @@ func testEmojiGet(t *testing.T, ss store.Store) {
}() }()
for _, emoji := range emojis { for _, emoji := range emojis {
_, err := ss.Emoji().Get(c, emoji.Id, false) _, err := ss.Emoji().Get(rctx, emoji.Id, false)
require.NoErrorf(t, err, "failed to get emoji with id %v", emoji.Id) require.NoErrorf(t, err, "failed to get emoji with id %v", emoji.Id)
} }
for _, emoji := range emojis { for _, emoji := range emojis {
_, err := ss.Emoji().Get(c, emoji.Id, true) _, err := ss.Emoji().Get(rctx, emoji.Id, true)
require.NoErrorf(t, err, "failed to get emoji with id %v", emoji.Id) require.NoErrorf(t, err, "failed to get emoji with id %v", emoji.Id)
} }
} }
func testEmojiGetByName(t *testing.T, ss store.Store) { func testEmojiGetByName(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
emojis := []model.Emoji{ emojis := []model.Emoji{
{ {
CreatorId: model.NewId(), CreatorId: model.NewId(),
@@ -124,14 +120,12 @@ func testEmojiGetByName(t *testing.T, ss store.Store) {
}() }()
for _, emoji := range emojis { for _, emoji := range emojis {
_, err := ss.Emoji().GetByName(c, emoji.Name, true) _, err := ss.Emoji().GetByName(rctx, emoji.Name, true)
require.NoErrorf(t, err, "failed to get emoji with name %v", emoji.Name) require.NoErrorf(t, err, "failed to get emoji with name %v", emoji.Name)
} }
} }
func testEmojiGetMultipleByName(t *testing.T, ss store.Store) { func testEmojiGetMultipleByName(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
emojis := []model.Emoji{ emojis := []model.Emoji{
{ {
CreatorId: model.NewId(), CreatorId: model.NewId(),
@@ -160,32 +154,32 @@ func testEmojiGetMultipleByName(t *testing.T, ss store.Store) {
}() }()
t.Run("one emoji", func(t *testing.T) { t.Run("one emoji", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName(c, []string{emojis[0].Name}) received, err := ss.Emoji().GetMultipleByName(rctx, []string{emojis[0].Name})
require.NoError(t, err, "could not get emoji") require.NoError(t, err, "could not get emoji")
require.Len(t, received, 1, "got incorrect emoji") require.Len(t, received, 1, "got incorrect emoji")
require.Equal(t, *received[0], emojis[0], "got incorrect emoji") require.Equal(t, *received[0], emojis[0], "got incorrect emoji")
}) })
t.Run("multiple emojis", func(t *testing.T) { t.Run("multiple emojis", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName(c, []string{emojis[0].Name, emojis[1].Name, emojis[2].Name}) received, err := ss.Emoji().GetMultipleByName(rctx, []string{emojis[0].Name, emojis[1].Name, emojis[2].Name})
require.NoError(t, err, "could not get emojis") require.NoError(t, err, "could not get emojis")
require.Len(t, received, 3, "got incorrect emojis") require.Len(t, received, 3, "got incorrect emojis")
}) })
t.Run("one nonexistent emoji", func(t *testing.T) { t.Run("one nonexistent emoji", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName(c, []string{"ab"}) received, err := ss.Emoji().GetMultipleByName(rctx, []string{"ab"})
require.NoError(t, err, "could not get emoji", err) require.NoError(t, err, "could not get emoji", err)
require.Empty(t, received, "got incorrect emoji") require.Empty(t, received, "got incorrect emoji")
}) })
t.Run("multiple emojis with nonexistent names", func(t *testing.T) { t.Run("multiple emojis with nonexistent names", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName(c, []string{emojis[0].Name, emojis[1].Name, emojis[2].Name, "abcd", "1234"}) received, err := ss.Emoji().GetMultipleByName(rctx, []string{emojis[0].Name, emojis[1].Name, emojis[2].Name, "abcd", "1234"})
require.NoError(t, err, "could not get emojis") require.NoError(t, err, "could not get emojis")
require.Len(t, received, 3, "got incorrect emojis") require.Len(t, received, 3, "got incorrect emojis")
}) })
} }
func testEmojiGetList(t *testing.T, ss store.Store) { func testEmojiGetList(t *testing.T, rctx request.CTX, ss store.Store) {
emojis := []model.Emoji{ emojis := []model.Emoji{
{ {
CreatorId: model.NewId(), CreatorId: model.NewId(),
@@ -243,7 +237,7 @@ func testEmojiGetList(t *testing.T, ss store.Store) {
assert.Equal(t, emojis[2].Name, remojis[1].Name) assert.Equal(t, emojis[2].Name, remojis[1].Name)
} }
func testEmojiSearch(t *testing.T, ss store.Store) { func testEmojiSearch(t *testing.T, rctx request.CTX, ss store.Store) {
emojis := []model.Emoji{ emojis := []model.Emoji{
{ {
CreatorId: model.NewId(), CreatorId: model.NewId(),

Просмотреть файл

@@ -10,6 +10,7 @@ import (
"time" "time"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/utils" "github.com/mattermost/mattermost/server/v8/channels/utils"
@@ -17,28 +18,28 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestFileInfoStore(t *testing.T, ss store.Store, s SqlStore) { func TestFileInfoStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Cleanup(func() { t.Cleanup(func() {
s.GetMasterX().Exec("TRUNCATE FileInfo") s.GetMasterX().Exec("TRUNCATE FileInfo")
}) })
t.Run("FileInfoSaveGet", func(t *testing.T) { testFileInfoSaveGet(t, ss) }) t.Run("FileInfoSaveGet", func(t *testing.T) { testFileInfoSaveGet(t, rctx, ss) })
t.Run("FileInfoSaveGetByPath", func(t *testing.T) { testFileInfoSaveGetByPath(t, ss) }) t.Run("FileInfoSaveGetByPath", func(t *testing.T) { testFileInfoSaveGetByPath(t, rctx, ss) })
t.Run("FileInfoGetForPost", func(t *testing.T) { testFileInfoGetForPost(t, ss) }) t.Run("FileInfoGetForPost", func(t *testing.T) { testFileInfoGetForPost(t, rctx, ss) })
t.Run("FileInfoGetForUser", func(t *testing.T) { testFileInfoGetForUser(t, ss) }) t.Run("FileInfoGetForUser", func(t *testing.T) { testFileInfoGetForUser(t, rctx, ss) })
t.Run("FileInfoGetWithOptions", func(t *testing.T) { testFileInfoGetWithOptions(t, ss) }) t.Run("FileInfoGetWithOptions", func(t *testing.T) { testFileInfoGetWithOptions(t, rctx, ss) })
t.Run("FileInfoAttachToPost", func(t *testing.T) { testFileInfoAttachToPost(t, ss) }) t.Run("FileInfoAttachToPost", func(t *testing.T) { testFileInfoAttachToPost(t, rctx, ss) })
t.Run("FileInfoDeleteForPost", func(t *testing.T) { testFileInfoDeleteForPost(t, ss) }) t.Run("FileInfoDeleteForPost", func(t *testing.T) { testFileInfoDeleteForPost(t, rctx, ss) })
t.Run("FileInfoPermanentDelete", func(t *testing.T) { testFileInfoPermanentDelete(t, ss) }) t.Run("FileInfoPermanentDelete", func(t *testing.T) { testFileInfoPermanentDelete(t, rctx, ss) })
t.Run("FileInfoPermanentDeleteBatch", func(t *testing.T) { testFileInfoPermanentDeleteBatch(t, ss) }) t.Run("FileInfoPermanentDeleteBatch", func(t *testing.T) { testFileInfoPermanentDeleteBatch(t, rctx, ss) })
t.Run("FileInfoPermanentDeleteByUser", func(t *testing.T) { testFileInfoPermanentDeleteByUser(t, ss) }) t.Run("FileInfoPermanentDeleteByUser", func(t *testing.T) { testFileInfoPermanentDeleteByUser(t, rctx, ss) })
t.Run("FileInfoUpdateMinipreview", func(t *testing.T) { testFileInfoUpdateMinipreview(t, ss) }) t.Run("FileInfoUpdateMinipreview", func(t *testing.T) { testFileInfoUpdateMinipreview(t, rctx, ss) })
t.Run("GetFilesBatchForIndexing", func(t *testing.T) { testFileInfoStoreGetFilesBatchForIndexing(t, ss) }) t.Run("GetFilesBatchForIndexing", func(t *testing.T) { testFileInfoStoreGetFilesBatchForIndexing(t, rctx, ss) })
t.Run("CountAll", func(t *testing.T) { testFileInfoStoreCountAll(t, ss) }) t.Run("CountAll", func(t *testing.T) { testFileInfoStoreCountAll(t, rctx, ss) })
t.Run("GetStorageUsage", func(t *testing.T) { testFileInfoGetStorageUsage(t, ss) }) t.Run("GetStorageUsage", func(t *testing.T) { testFileInfoGetStorageUsage(t, rctx, ss) })
t.Run("GetUptoNSizeFileTime", func(t *testing.T) { testGetUptoNSizeFileTime(t, ss, s) }) t.Run("GetUptoNSizeFileTime", func(t *testing.T) { testGetUptoNSizeFileTime(t, rctx, ss, s) })
} }
func testFileInfoSaveGet(t *testing.T, ss store.Store) { func testFileInfoSaveGet(t *testing.T, rctx request.CTX, ss store.Store) {
info := &model.FileInfo{ info := &model.FileInfo{
CreatorId: model.NewId(), CreatorId: model.NewId(),
Path: "file.txt", Path: "file.txt",
@@ -71,7 +72,7 @@ func testFileInfoSaveGet(t *testing.T, ss store.Store) {
}() }()
} }
func testFileInfoSaveGetByPath(t *testing.T, ss store.Store) { func testFileInfoSaveGetByPath(t *testing.T, rctx request.CTX, ss store.Store) {
info := &model.FileInfo{ info := &model.FileInfo{
CreatorId: model.NewId(), CreatorId: model.NewId(),
Path: fmt.Sprintf("%v/file.txt", model.NewId()), Path: fmt.Sprintf("%v/file.txt", model.NewId()),
@@ -103,7 +104,7 @@ func testFileInfoSaveGetByPath(t *testing.T, ss store.Store) {
}() }()
} }
func testFileInfoGetForPost(t *testing.T, ss store.Store) { func testFileInfoGetForPost(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
postId := model.NewId() postId := model.NewId()
channelId := model.NewId() channelId := model.NewId()
@@ -225,7 +226,7 @@ func testFileInfoGetForPost(t *testing.T, ss store.Store) {
} }
} }
func testFileInfoGetForUser(t *testing.T, ss store.Store) { func testFileInfoGetForUser(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
postId := model.NewId() postId := model.NewId()
@@ -276,7 +277,7 @@ func testFileInfoGetForUser(t *testing.T, ss store.Store) {
assert.Len(t, userPosts, 1) assert.Len(t, userPosts, 1)
} }
func testFileInfoGetWithOptions(t *testing.T, ss store.Store) { func testFileInfoGetWithOptions(t *testing.T, rctx request.CTX, ss store.Store) {
makePost := func(chId string, user string) *model.Post { makePost := func(chId string, user string) *model.Post {
post := model.Post{} post := model.Post{}
post.ChannelId = chId post.ChannelId = chId
@@ -422,7 +423,7 @@ func (a byFileInfoId) Len() int { return len(a) }
func (a byFileInfoId) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a byFileInfoId) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a byFileInfoId) Less(i, j int) bool { return a[i].Id < a[j].Id } func (a byFileInfoId) Less(i, j int) bool { return a[i].Id < a[j].Id }
func testFileInfoAttachToPost(t *testing.T, ss store.Store) { func testFileInfoAttachToPost(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should attach files", func(t *testing.T) { t.Run("should attach files", func(t *testing.T) {
userId := model.NewId() userId := model.NewId()
postId := model.NewId() postId := model.NewId()
@@ -520,7 +521,7 @@ func testFileInfoAttachToPost(t *testing.T, ss store.Store) {
}) })
} }
func testFileInfoDeleteForPost(t *testing.T, ss store.Store) { func testFileInfoDeleteForPost(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
postId := model.NewId() postId := model.NewId()
channelId := model.NewId() channelId := model.NewId()
@@ -570,7 +571,7 @@ func testFileInfoDeleteForPost(t *testing.T, ss store.Store) {
assert.Empty(t, infos) assert.Empty(t, infos)
} }
func testFileInfoPermanentDelete(t *testing.T, ss store.Store) { func testFileInfoPermanentDelete(t *testing.T, rctx request.CTX, ss store.Store) {
info, err := ss.FileInfo().Save(&model.FileInfo{ info, err := ss.FileInfo().Save(&model.FileInfo{
PostId: model.NewId(), PostId: model.NewId(),
ChannelId: model.NewId(), ChannelId: model.NewId(),
@@ -583,7 +584,7 @@ func testFileInfoPermanentDelete(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) { func testFileInfoPermanentDeleteBatch(t *testing.T, rctx request.CTX, ss store.Store) {
postId := model.NewId() postId := model.NewId()
channelId := model.NewId() channelId := model.NewId()
@@ -626,7 +627,7 @@ func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) {
assert.Len(t, postFiles, 1) assert.Len(t, postFiles, 1)
} }
func testFileInfoPermanentDeleteByUser(t *testing.T, ss store.Store) { func testFileInfoPermanentDeleteByUser(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
postId := model.NewId() postId := model.NewId()
channelId := model.NewId() channelId := model.NewId()
@@ -643,7 +644,7 @@ func testFileInfoPermanentDeleteByUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testFileInfoUpdateMinipreview(t *testing.T, ss store.Store) { func testFileInfoUpdateMinipreview(t *testing.T, rctx request.CTX, ss store.Store) {
info := &model.FileInfo{ info := &model.FileInfo{
CreatorId: model.NewId(), CreatorId: model.NewId(),
Path: "image.png", Path: "image.png",
@@ -676,7 +677,7 @@ func testFileInfoUpdateMinipreview(t *testing.T, ss store.Store) {
require.Equal(t, *tinfo.MiniPreview, miniPreview) require.Equal(t, *tinfo.MiniPreview, miniPreview)
} }
func testFileInfoStoreGetFilesBatchForIndexing(t *testing.T, ss store.Store) { func testFileInfoStoreGetFilesBatchForIndexing(t *testing.T, rctx request.CTX, ss store.Store) {
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = model.NewId() c1.TeamId = model.NewId()
c1.DisplayName = "Channel1" c1.DisplayName = "Channel1"
@@ -774,7 +775,7 @@ func testFileInfoStoreGetFilesBatchForIndexing(t *testing.T, ss store.Store) {
require.Len(t, r, 0, "Expected 0 posts in results. Got %v", len(r)) require.Len(t, r, 0, "Expected 0 posts in results. Got %v", len(r))
} }
func testFileInfoStoreCountAll(t *testing.T, ss store.Store) { func testFileInfoStoreCountAll(t *testing.T, rctx request.CTX, ss store.Store) {
_, err := ss.FileInfo().PermanentDeleteBatch(model.GetMillis(), 100000) _, err := ss.FileInfo().PermanentDeleteBatch(model.GetMillis(), 100000)
require.NoError(t, err) require.NoError(t, err)
f1, err := ss.FileInfo().Save(&model.FileInfo{ f1, err := ss.FileInfo().Save(&model.FileInfo{
@@ -811,7 +812,7 @@ func testFileInfoStoreCountAll(t *testing.T, ss store.Store) {
require.Equal(t, int64(2), count) require.Equal(t, int64(2), count)
} }
func testFileInfoGetStorageUsage(t *testing.T, ss store.Store) { func testFileInfoGetStorageUsage(t *testing.T, rctx request.CTX, ss store.Store) {
_, err := ss.FileInfo().PermanentDeleteBatch(model.GetMillis(), 100000) _, err := ss.FileInfo().PermanentDeleteBatch(model.GetMillis(), 100000)
require.NoError(t, err) require.NoError(t, err)
@@ -857,7 +858,7 @@ func testFileInfoGetStorageUsage(t *testing.T, ss store.Store) {
require.Equal(t, int64(30), usage) require.Equal(t, int64(30), usage)
} }
func testGetUptoNSizeFileTime(t *testing.T, ss store.Store, s SqlStore) { func testGetUptoNSizeFileTime(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Skip("MM-53905") t.Skip("MM-53905")
_, err := ss.FileInfo().GetUptoNSizeFileTime(0) _, err := ss.FileInfo().GetUptoNSizeFileTime(0)

Просмотреть файл

@@ -16,87 +16,88 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
pUtils "github.com/mattermost/mattermost/server/public/utils" pUtils "github.com/mattermost/mattermost/server/public/utils"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestGroupStore(t *testing.T, ss store.Store) { func TestGroupStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Create", func(t *testing.T) { testGroupStoreCreate(t, ss) }) t.Run("Create", func(t *testing.T) { testGroupStoreCreate(t, rctx, ss) })
t.Run("CreateWithUserIds", func(t *testing.T) { testGroupCreateWithUserIds(t, ss) }) t.Run("CreateWithUserIds", func(t *testing.T) { testGroupCreateWithUserIds(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testGroupStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testGroupStoreGet(t, rctx, ss) })
t.Run("GetByName", func(t *testing.T) { testGroupStoreGetByName(t, ss) }) t.Run("GetByName", func(t *testing.T) { testGroupStoreGetByName(t, rctx, ss) })
t.Run("GetByIDs", func(t *testing.T) { testGroupStoreGetByIDs(t, ss) }) t.Run("GetByIDs", func(t *testing.T) { testGroupStoreGetByIDs(t, rctx, ss) })
t.Run("GetByRemoteID", func(t *testing.T) { testGroupStoreGetByRemoteID(t, ss) }) t.Run("GetByRemoteID", func(t *testing.T) { testGroupStoreGetByRemoteID(t, rctx, ss) })
t.Run("GetAllBySource", func(t *testing.T) { testGroupStoreGetAllByType(t, ss) }) t.Run("GetAllBySource", func(t *testing.T) { testGroupStoreGetAllByType(t, rctx, ss) })
t.Run("GetByUser", func(t *testing.T) { testGroupStoreGetByUser(t, ss) }) t.Run("GetByUser", func(t *testing.T) { testGroupStoreGetByUser(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testGroupStoreUpdate(t, ss) }) t.Run("Update", func(t *testing.T) { testGroupStoreUpdate(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testGroupStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testGroupStoreDelete(t, rctx, ss) })
t.Run("Restore", func(t *testing.T) { testGroupStoreRestore(t, ss) }) t.Run("Restore", func(t *testing.T) { testGroupStoreRestore(t, rctx, ss) })
t.Run("GetMemberUsers", func(t *testing.T) { testGroupGetMemberUsers(t, ss) }) t.Run("GetMemberUsers", func(t *testing.T) { testGroupGetMemberUsers(t, rctx, ss) })
t.Run("GetMemberUsersPage", func(t *testing.T) { testGroupGetMemberUsersPage(t, ss) }) t.Run("GetMemberUsersPage", func(t *testing.T) { testGroupGetMemberUsersPage(t, rctx, ss) })
t.Run("GetMemberUsersSortedPage", func(t *testing.T) { testGroupGetMemberUsersSortedPage(t, ss) }) t.Run("GetMemberUsersSortedPage", func(t *testing.T) { testGroupGetMemberUsersSortedPage(t, rctx, ss) })
t.Run("GetMemberUsersInTeam", func(t *testing.T) { testGroupGetMemberUsersInTeam(t, ss) }) t.Run("GetMemberUsersInTeam", func(t *testing.T) { testGroupGetMemberUsersInTeam(t, rctx, ss) })
t.Run("GetMemberUsersNotInChannel", func(t *testing.T) { testGroupGetMemberUsersNotInChannel(t, ss) }) t.Run("GetMemberUsersNotInChannel", func(t *testing.T) { testGroupGetMemberUsersNotInChannel(t, rctx, ss) })
t.Run("UpsertMember", func(t *testing.T) { testUpsertMember(t, ss) }) t.Run("UpsertMember", func(t *testing.T) { testUpsertMember(t, rctx, ss) })
t.Run("UpsertMembers", func(t *testing.T) { testUpsertMembers(t, ss) }) t.Run("UpsertMembers", func(t *testing.T) { testUpsertMembers(t, rctx, ss) })
t.Run("DeleteMember", func(t *testing.T) { testGroupDeleteMember(t, ss) }) t.Run("DeleteMember", func(t *testing.T) { testGroupDeleteMember(t, rctx, ss) })
t.Run("DeleteMembers", func(t *testing.T) { testGroupDeleteMembers(t, ss) }) t.Run("DeleteMembers", func(t *testing.T) { testGroupDeleteMembers(t, rctx, ss) })
t.Run("PermanentDeleteMembersByUser", func(t *testing.T) { testGroupPermanentDeleteMembersByUser(t, ss) }) t.Run("PermanentDeleteMembersByUser", func(t *testing.T) { testGroupPermanentDeleteMembersByUser(t, rctx, ss) })
t.Run("CreateGroupSyncable", func(t *testing.T) { testCreateGroupSyncable(t, ss) }) t.Run("CreateGroupSyncable", func(t *testing.T) { testCreateGroupSyncable(t, rctx, ss) })
t.Run("GetGroupSyncable", func(t *testing.T) { testGetGroupSyncable(t, ss) }) t.Run("GetGroupSyncable", func(t *testing.T) { testGetGroupSyncable(t, rctx, ss) })
t.Run("GetAllGroupSyncablesByGroupId", func(t *testing.T) { testGetAllGroupSyncablesByGroup(t, ss) }) t.Run("GetAllGroupSyncablesByGroupId", func(t *testing.T) { testGetAllGroupSyncablesByGroup(t, rctx, ss) })
t.Run("UpdateGroupSyncable", func(t *testing.T) { testUpdateGroupSyncable(t, ss) }) t.Run("UpdateGroupSyncable", func(t *testing.T) { testUpdateGroupSyncable(t, rctx, ss) })
t.Run("DeleteGroupSyncable", func(t *testing.T) { testDeleteGroupSyncable(t, ss) }) t.Run("DeleteGroupSyncable", func(t *testing.T) { testDeleteGroupSyncable(t, rctx, ss) })
t.Run("TeamMembersToAdd", func(t *testing.T) { testTeamMembersToAdd(t, ss) }) t.Run("TeamMembersToAdd", func(t *testing.T) { testTeamMembersToAdd(t, rctx, ss) })
t.Run("TeamMembersToAdd_SingleTeam", func(t *testing.T) { testTeamMembersToAddSingleTeam(t, ss) }) t.Run("TeamMembersToAdd_SingleTeam", func(t *testing.T) { testTeamMembersToAddSingleTeam(t, rctx, ss) })
t.Run("ChannelMembersToAdd", func(t *testing.T) { testChannelMembersToAdd(t, ss) }) t.Run("ChannelMembersToAdd", func(t *testing.T) { testChannelMembersToAdd(t, rctx, ss) })
t.Run("ChannelMembersToAdd_SingleChannel", func(t *testing.T) { testChannelMembersToAddSingleChannel(t, ss) }) t.Run("ChannelMembersToAdd_SingleChannel", func(t *testing.T) { testChannelMembersToAddSingleChannel(t, rctx, ss) })
t.Run("TeamMembersToRemove", func(t *testing.T) { testTeamMembersToRemove(t, ss) }) t.Run("TeamMembersToRemove", func(t *testing.T) { testTeamMembersToRemove(t, rctx, ss) })
t.Run("TeamMembersToRemove_SingleTeam", func(t *testing.T) { testTeamMembersToRemoveSingleTeam(t, ss) }) t.Run("TeamMembersToRemove_SingleTeam", func(t *testing.T) { testTeamMembersToRemoveSingleTeam(t, rctx, ss) })
t.Run("ChannelMembersToRemove", func(t *testing.T) { testChannelMembersToRemove(t, ss) }) t.Run("ChannelMembersToRemove", func(t *testing.T) { testChannelMembersToRemove(t, rctx, ss) })
t.Run("ChannelMembersToRemove_SingleChannel", func(t *testing.T) { testChannelMembersToRemoveSingleChannel(t, ss) }) t.Run("ChannelMembersToRemove_SingleChannel", func(t *testing.T) { testChannelMembersToRemoveSingleChannel(t, rctx, ss) })
t.Run("GetGroupsByChannel", func(t *testing.T) { testGetGroupsByChannel(t, ss) }) t.Run("GetGroupsByChannel", func(t *testing.T) { testGetGroupsByChannel(t, rctx, ss) })
t.Run("GetGroupsAssociatedToChannelsByTeam", func(t *testing.T) { testGetGroupsAssociatedToChannelsByTeam(t, ss) }) t.Run("GetGroupsAssociatedToChannelsByTeam", func(t *testing.T) { testGetGroupsAssociatedToChannelsByTeam(t, rctx, ss) })
t.Run("GetGroupsByTeam", func(t *testing.T) { testGetGroupsByTeam(t, ss) }) t.Run("GetGroupsByTeam", func(t *testing.T) { testGetGroupsByTeam(t, rctx, ss) })
t.Run("GetGroups", func(t *testing.T) { testGetGroups(t, ss) }) t.Run("GetGroups", func(t *testing.T) { testGetGroups(t, rctx, ss) })
t.Run("TeamMembersMinusGroupMembers", func(t *testing.T) { testTeamMembersMinusGroupMembers(t, ss) }) t.Run("TeamMembersMinusGroupMembers", func(t *testing.T) { testTeamMembersMinusGroupMembers(t, rctx, ss) })
t.Run("ChannelMembersMinusGroupMembers", func(t *testing.T) { testChannelMembersMinusGroupMembers(t, ss) }) t.Run("ChannelMembersMinusGroupMembers", func(t *testing.T) { testChannelMembersMinusGroupMembers(t, rctx, ss) })
t.Run("GetMemberCount", func(t *testing.T) { groupTestGetMemberCount(t, ss) }) t.Run("GetMemberCount", func(t *testing.T) { groupTestGetMemberCount(t, rctx, ss) })
t.Run("AdminRoleGroupsForSyncableMember_Channel", func(t *testing.T) { groupTestAdminRoleGroupsForSyncableMemberChannel(t, ss) }) t.Run("AdminRoleGroupsForSyncableMember_Channel", func(t *testing.T) { groupTestAdminRoleGroupsForSyncableMemberChannel(t, rctx, ss) })
t.Run("AdminRoleGroupsForSyncableMember_Team", func(t *testing.T) { groupTestAdminRoleGroupsForSyncableMemberTeam(t, ss) }) t.Run("AdminRoleGroupsForSyncableMember_Team", func(t *testing.T) { groupTestAdminRoleGroupsForSyncableMemberTeam(t, rctx, ss) })
t.Run("PermittedSyncableAdmins_Team", func(t *testing.T) { groupTestPermittedSyncableAdminsTeam(t, ss) }) t.Run("PermittedSyncableAdmins_Team", func(t *testing.T) { groupTestPermittedSyncableAdminsTeam(t, rctx, ss) })
t.Run("PermittedSyncableAdmins_Channel", func(t *testing.T) { groupTestPermittedSyncableAdminsChannel(t, ss) }) t.Run("PermittedSyncableAdmins_Channel", func(t *testing.T) { groupTestPermittedSyncableAdminsChannel(t, rctx, ss) })
t.Run("UpdateMembersRole_Team", func(t *testing.T) { groupTestpUpdateMembersRoleTeam(t, ss) }) t.Run("UpdateMembersRole_Team", func(t *testing.T) { groupTestpUpdateMembersRoleTeam(t, rctx, ss) })
t.Run("UpdateMembersRole_Channel", func(t *testing.T) { groupTestpUpdateMembersRoleChannel(t, ss) }) t.Run("UpdateMembersRole_Channel", func(t *testing.T) { groupTestpUpdateMembersRoleChannel(t, rctx, ss) })
t.Run("GroupCount", func(t *testing.T) { groupTestGroupCount(t, ss) }) t.Run("GroupCount", func(t *testing.T) { groupTestGroupCount(t, rctx, ss) })
t.Run("GroupTeamCount", func(t *testing.T) { groupTestGroupTeamCount(t, ss) }) t.Run("GroupTeamCount", func(t *testing.T) { groupTestGroupTeamCount(t, rctx, ss) })
t.Run("GroupChannelCount", func(t *testing.T) { groupTestGroupChannelCount(t, ss) }) t.Run("GroupChannelCount", func(t *testing.T) { groupTestGroupChannelCount(t, rctx, ss) })
t.Run("GroupMemberCount", func(t *testing.T) { groupTestGroupMemberCount(t, ss) }) t.Run("GroupMemberCount", func(t *testing.T) { groupTestGroupMemberCount(t, rctx, ss) })
t.Run("DistinctGroupMemberCount", func(t *testing.T) { groupTestDistinctGroupMemberCount(t, ss) }) t.Run("DistinctGroupMemberCount", func(t *testing.T) { groupTestDistinctGroupMemberCount(t, rctx, ss) })
t.Run("GroupCountWithAllowReference", func(t *testing.T) { groupTestGroupCountWithAllowReference(t, ss) }) t.Run("GroupCountWithAllowReference", func(t *testing.T) { groupTestGroupCountWithAllowReference(t, rctx, ss) })
t.Run("GetMember", func(t *testing.T) { groupTestGetMember(t, ss) }) t.Run("GetMember", func(t *testing.T) { groupTestGetMember(t, rctx, ss) })
t.Run("GetNonMemberUsersPage", func(t *testing.T) { groupTestGetNonMemberUsersPage(t, ss) }) t.Run("GetNonMemberUsersPage", func(t *testing.T) { groupTestGetNonMemberUsersPage(t, rctx, ss) })
t.Run("DistinctGroupMemberCountForSource", func(t *testing.T) { groupTestDistinctGroupMemberCountForSource(t, ss) }) t.Run("DistinctGroupMemberCountForSource", func(t *testing.T) { groupTestDistinctGroupMemberCountForSource(t, rctx, ss) })
} }
func testGroupStoreCreate(t *testing.T, ss store.Store) { func testGroupStoreCreate(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a new group // Save a new group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -198,7 +199,7 @@ func testGroupStoreCreate(t *testing.T, ss store.Store) {
require.Equal(t, g7.IsValidForCreate().Id, "model.group.name.invalid_chars.app_error") require.Equal(t, g7.IsValidForCreate().Id, "model.group.name.invalid_chars.app_error")
} }
func testGroupCreateWithUserIds(t *testing.T, ss store.Store) { func testGroupCreateWithUserIds(t *testing.T, rctx request.CTX, ss store.Store) {
// Create user 1 // Create user 1
u1 := &model.User{ u1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
@@ -363,7 +364,7 @@ func testGroupCreateWithUserIds(t *testing.T, ss store.Store) {
require.Equal(t, store.NewErrNotFound("User", "1234uid"), err) require.Equal(t, store.NewErrNotFound("User", "1234uid"), err)
} }
func testGroupStoreGet(t *testing.T, ss store.Store) { func testGroupStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
// Create a group // Create a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -395,7 +396,7 @@ func testGroupStoreGet(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGroupStoreGetByName(t *testing.T, ss store.Store) { func testGroupStoreGetByName(t *testing.T, rctx request.CTX, ss store.Store) {
// Create a group // Create a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -431,7 +432,7 @@ func testGroupStoreGetByName(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGroupStoreGetByIDs(t *testing.T, ss store.Store) { func testGroupStoreGetByIDs(t *testing.T, rctx request.CTX, ss store.Store) {
var group1 *model.Group var group1 *model.Group
var group2 *model.Group var group2 *model.Group
@@ -464,7 +465,7 @@ func testGroupStoreGetByIDs(t *testing.T, ss store.Store) {
require.True(t, groups[0].Id != groups[1].Id) require.True(t, groups[0].Id != groups[1].Id)
} }
func testGroupStoreGetByRemoteID(t *testing.T, ss store.Store) { func testGroupStoreGetByRemoteID(t *testing.T, rctx request.CTX, ss store.Store) {
// Create a group // Create a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -496,7 +497,7 @@ func testGroupStoreGetByRemoteID(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGroupStoreGetAllByType(t *testing.T, ss store.Store) { func testGroupStoreGetAllByType(t *testing.T, rctx request.CTX, ss store.Store) {
numGroups := 10 numGroups := 10
groups := []*model.Group{} groups := []*model.Group{}
@@ -531,7 +532,7 @@ func testGroupStoreGetAllByType(t *testing.T, ss store.Store) {
} }
} }
func testGroupStoreGetByUser(t *testing.T, ss store.Store) { func testGroupStoreGetByUser(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a group // Save a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -601,7 +602,7 @@ func testGroupStoreGetByUser(t *testing.T, ss store.Store) {
assert.Equal(t, 0, len(groups)) assert.Equal(t, 0, len(groups))
} }
func testGroupStoreUpdate(t *testing.T, ss store.Store) { func testGroupStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a new group // Save a new group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString("g1-test"), Name: model.NewString("g1-test"),
@@ -694,7 +695,7 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) {
require.Zero(t, d4.DeleteAt) require.Zero(t, d4.DeleteAt)
} }
func testGroupStoreDelete(t *testing.T, ss store.Store) { func testGroupStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a group // Save a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -743,7 +744,7 @@ func testGroupStoreDelete(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGroupStoreRestore(t *testing.T, ss store.Store) { func testGroupStoreRestore(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a group // Save a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -796,7 +797,7 @@ func testGroupStoreRestore(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGroupGetMemberUsers(t *testing.T, ss store.Store) { func testGroupGetMemberUsers(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a group // Save a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -848,7 +849,7 @@ func testGroupGetMemberUsers(t *testing.T, ss store.Store) {
require.Equal(t, 1, len(groupMembers)) require.Equal(t, 1, len(groupMembers))
} }
func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) { func testGroupGetMemberUsersPage(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a group // Save a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -922,7 +923,7 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) {
require.Equal(t, 2, len(groupMembers)) require.Equal(t, 2, len(groupMembers))
} }
func testGroupGetMemberUsersSortedPage(t *testing.T, ss store.Store) { func testGroupGetMemberUsersSortedPage(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a group // Save a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1003,7 +1004,7 @@ func testGroupGetMemberUsersSortedPage(t *testing.T, ss store.Store) {
require.ElementsMatch(t, []*model.User{user2}, groupMembers) require.ElementsMatch(t, []*model.User{user2}, groupMembers)
} }
func testGroupGetMemberUsersInTeam(t *testing.T, ss store.Store) { func testGroupGetMemberUsersInTeam(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a team // Save a team
team := &model.Team{ team := &model.Team{
DisplayName: "Name", DisplayName: "Name",
@@ -1089,7 +1090,7 @@ func testGroupGetMemberUsersInTeam(t *testing.T, ss store.Store) {
require.Equal(t, 3, len(groupMembers)) require.Equal(t, 3, len(groupMembers))
} }
func testGroupGetMemberUsersNotInChannel(t *testing.T, ss store.Store) { func testGroupGetMemberUsersNotInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a team // Save a team
team := &model.Team{ team := &model.Team{
DisplayName: "Name", DisplayName: "Name",
@@ -1228,7 +1229,7 @@ func testGroupGetMemberUsersNotInChannel(t *testing.T, ss store.Store) {
require.Equal(t, 0, len(groupMembers)) require.Equal(t, 0, len(groupMembers))
} }
func testUpsertMember(t *testing.T, ss store.Store) { func testUpsertMember(t *testing.T, rctx request.CTX, ss store.Store) {
// Create group // Create group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1289,7 +1290,7 @@ func testUpsertMember(t *testing.T, ss store.Store) {
require.Equal(t, beforeRestoreCount+1, afterRestoreCount) require.Equal(t, beforeRestoreCount+1, afterRestoreCount)
} }
func testUpsertMembers(t *testing.T, ss store.Store) { func testUpsertMembers(t *testing.T, rctx request.CTX, ss store.Store) {
// Create group // Create group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1355,7 +1356,7 @@ func testUpsertMembers(t *testing.T, ss store.Store) {
require.Equal(t, beforeRestoreCount+1, afterRestoreCount) require.Equal(t, beforeRestoreCount+1, afterRestoreCount)
} }
func testGroupDeleteMember(t *testing.T, ss store.Store) { func testGroupDeleteMember(t *testing.T, rctx request.CTX, ss store.Store) {
// Create group // Create group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1400,7 +1401,7 @@ func testGroupDeleteMember(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGroupDeleteMembers(t *testing.T, ss store.Store) { func testGroupDeleteMembers(t *testing.T, rctx request.CTX, ss store.Store) {
// Create user // Create user
u1 := &model.User{ u1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
@@ -1443,7 +1444,7 @@ func testGroupDeleteMembers(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
func testGroupPermanentDeleteMembersByUser(t *testing.T, ss store.Store) { func testGroupPermanentDeleteMembersByUser(t *testing.T, rctx request.CTX, ss store.Store) {
var g *model.Group var g *model.Group
var groups []*model.Group var groups []*model.Group
numberOfGroups := 5 numberOfGroups := 5
@@ -1479,7 +1480,7 @@ func testGroupPermanentDeleteMembersByUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testCreateGroupSyncable(t *testing.T, ss store.Store) { func testCreateGroupSyncable(t *testing.T, rctx request.CTX, ss store.Store) {
// Invalid GroupID // Invalid GroupID
_, err := ss.Group().CreateGroupSyncable(model.NewGroupTeam("x", model.NewId(), false)) _, err := ss.Group().CreateGroupSyncable(model.NewGroupTeam("x", model.NewId(), false))
var appErr *model.AppError var appErr *model.AppError
@@ -1521,7 +1522,7 @@ func testCreateGroupSyncable(t *testing.T, ss store.Store) {
require.Zero(t, d1.DeleteAt) require.Zero(t, d1.DeleteAt)
} }
func testGetGroupSyncable(t *testing.T, ss store.Store) { func testGetGroupSyncable(t *testing.T, rctx request.CTX, ss store.Store) {
// Create a group // Create a group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1563,7 +1564,7 @@ func testGetGroupSyncable(t *testing.T, ss store.Store) {
require.Zero(t, gt1.DeleteAt) require.Zero(t, gt1.DeleteAt)
} }
func testGetAllGroupSyncablesByGroup(t *testing.T, ss store.Store) { func testGetAllGroupSyncablesByGroup(t *testing.T, rctx request.CTX, ss store.Store) {
numGroupSyncables := 10 numGroupSyncables := 10
// Create group // Create group
@@ -1622,7 +1623,7 @@ func testGetAllGroupSyncablesByGroup(t *testing.T, ss store.Store) {
} }
} }
func testUpdateGroupSyncable(t *testing.T, ss store.Store) { func testUpdateGroupSyncable(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Group // Create Group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1690,7 +1691,7 @@ func testUpdateGroupSyncable(t *testing.T, ss store.Store) {
require.Zero(t, d4.DeleteAt) require.Zero(t, d4.DeleteAt)
} }
func testDeleteGroupSyncable(t *testing.T, ss store.Store) { func testDeleteGroupSyncable(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Group // Create Group
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1746,7 +1747,7 @@ func testDeleteGroupSyncable(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &invErr)) require.True(t, errors.As(err, &invErr))
} }
func testTeamMembersToAdd(t *testing.T, ss store.Store) { func testTeamMembersToAdd(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Group // Create Group
group, err := ss.Group().Create(&model.Group{ group, err := ss.Group().Create(&model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -1925,7 +1926,7 @@ func testTeamMembersToAdd(t *testing.T, ss store.Store) {
require.Len(t, teamMembers, 1) require.Len(t, teamMembers, 1)
} }
func testTeamMembersToAddSingleTeam(t *testing.T, ss store.Store) { func testTeamMembersToAddSingleTeam(t *testing.T, rctx request.CTX, ss store.Store) {
group1, err := ss.Group().Create(&model.Group{ group1, err := ss.Group().Create(&model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
DisplayName: "TeamMembersToAdd Test Group", DisplayName: "TeamMembersToAdd Test Group",
@@ -2015,7 +2016,7 @@ func testTeamMembersToAddSingleTeam(t *testing.T, ss store.Store) {
require.Len(t, teamMembers, 1) require.Len(t, teamMembers, 1)
} }
func testChannelMembersToAdd(t *testing.T, ss store.Store) { func testChannelMembersToAdd(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Group // Create Group
group, err := ss.Group().Create(&model.Group{ group, err := ss.Group().Create(&model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -2192,7 +2193,7 @@ func testChannelMembersToAdd(t *testing.T, ss store.Store) {
require.Len(t, channelMembers, 1) require.Len(t, channelMembers, 1)
} }
func testChannelMembersToAddSingleChannel(t *testing.T, ss store.Store) { func testChannelMembersToAddSingleChannel(t *testing.T, rctx request.CTX, ss store.Store) {
group1, err := ss.Group().Create(&model.Group{ group1, err := ss.Group().Create(&model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
DisplayName: "TeamMembersToAdd Test Group", DisplayName: "TeamMembersToAdd Test Group",
@@ -2272,8 +2273,8 @@ func testChannelMembersToAddSingleChannel(t *testing.T, ss store.Store) {
require.Len(t, channelMembers, 1) require.Len(t, channelMembers, 1)
} }
func testTeamMembersToRemove(t *testing.T, ss store.Store) { func testTeamMembersToRemove(t *testing.T, rctx request.CTX, ss store.Store) {
data := pendingMemberRemovalsDataSetup(t, ss) data := pendingMemberRemovalsDataSetup(t, rctx, ss)
// one result when both users are in the group (for user C) // one result when both users are in the group (for user C)
teamMembers, err := ss.Group().TeamMembersToRemove(nil) teamMembers, err := ss.Group().TeamMembersToRemove(nil)
@@ -2347,7 +2348,7 @@ func testTeamMembersToRemove(t *testing.T, ss store.Store) {
require.NoError(t, nErr) require.NoError(t, nErr)
} }
func testTeamMembersToRemoveSingleTeam(t *testing.T, ss store.Store) { func testTeamMembersToRemoveSingleTeam(t *testing.T, rctx request.CTX, ss store.Store) {
user1 := &model.User{ user1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -2424,8 +2425,8 @@ func testTeamMembersToRemoveSingleTeam(t *testing.T, ss store.Store) {
require.Len(t, teamMembers, 1) require.Len(t, teamMembers, 1)
} }
func testChannelMembersToRemove(t *testing.T, ss store.Store) { func testChannelMembersToRemove(t *testing.T, rctx request.CTX, ss store.Store) {
data := pendingMemberRemovalsDataSetup(t, ss) data := pendingMemberRemovalsDataSetup(t, rctx, ss)
// one result when both users are in the group (for user C) // one result when both users are in the group (for user C)
channelMembers, err := ss.Group().ChannelMembersToRemove(nil) channelMembers, err := ss.Group().ChannelMembersToRemove(nil)
@@ -2499,7 +2500,7 @@ func testChannelMembersToRemove(t *testing.T, ss store.Store) {
require.NoError(t, nErr) require.NoError(t, nErr)
} }
func testChannelMembersToRemoveSingleChannel(t *testing.T, ss store.Store) { func testChannelMembersToRemoveSingleChannel(t *testing.T, rctx request.CTX, ss store.Store) {
user1 := &model.User{ user1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -2579,7 +2580,7 @@ type removalsData struct {
Group *model.Group Group *model.Group
} }
func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData { func pendingMemberRemovalsDataSetup(t *testing.T, rctx request.CTX, ss store.Store) *removalsData {
// create group // create group
group, err := ss.Group().Create(&model.Group{ group, err := ss.Group().Create(&model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
@@ -2732,7 +2733,7 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData
} }
} }
func testGetGroupsByChannel(t *testing.T, ss store.Store) { func testGetGroupsByChannel(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Channel1 // Create Channel1
channel1 := &model.Channel{ channel1 := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -2966,7 +2967,7 @@ func testGetGroupsByChannel(t *testing.T, ss store.Store) {
} }
} }
func testGetGroupsAssociatedToChannelsByTeam(t *testing.T, ss store.Store) { func testGetGroupsAssociatedToChannelsByTeam(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Team1 // Create Team1
team1 := &model.Team{ team1 := &model.Team{
DisplayName: "Team1", DisplayName: "Team1",
@@ -3209,7 +3210,7 @@ func testGetGroupsAssociatedToChannelsByTeam(t *testing.T, ss store.Store) {
} }
} }
func testGetGroupsByTeam(t *testing.T, ss store.Store) { func testGetGroupsByTeam(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Team1 // Create Team1
team1 := &model.Team{ team1 := &model.Team{
DisplayName: "Team1", DisplayName: "Team1",
@@ -3455,7 +3456,7 @@ func testGetGroupsByTeam(t *testing.T, ss store.Store) {
} }
} }
func testGetGroups(t *testing.T, ss store.Store) { func testGetGroups(t *testing.T, rctx request.CTX, ss store.Store) {
// Create Team1 // Create Team1
team1 := &model.Team{ team1 := &model.Team{
DisplayName: "Team1", DisplayName: "Team1",
@@ -3993,7 +3994,7 @@ func testGetGroups(t *testing.T, ss store.Store) {
} }
} }
func testTeamMembersMinusGroupMembers(t *testing.T, ss store.Store) { func testTeamMembersMinusGroupMembers(t *testing.T, rctx request.CTX, ss store.Store) {
const numberOfGroups = 3 const numberOfGroups = 3
const numberOfUsers = 4 const numberOfUsers = 4
@@ -4149,7 +4150,7 @@ func testTeamMembersMinusGroupMembers(t *testing.T, ss store.Store) {
} }
} }
func testChannelMembersMinusGroupMembers(t *testing.T, ss store.Store) { func testChannelMembersMinusGroupMembers(t *testing.T, rctx request.CTX, ss store.Store) {
const numberOfGroups = 3 const numberOfGroups = 3
const numberOfUsers = 4 const numberOfUsers = 4
@@ -4312,7 +4313,7 @@ func testChannelMembersMinusGroupMembers(t *testing.T, ss store.Store) {
} }
} }
func groupTestGetMemberCount(t *testing.T, ss store.Store) { func groupTestGetMemberCount(t *testing.T, rctx request.CTX, ss store.Store) {
group := &model.Group{ group := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -4350,7 +4351,7 @@ func groupTestGetMemberCount(t *testing.T, ss store.Store) {
require.Equal(t, int64(1), count) require.Equal(t, int64(1), count)
} }
func groupTestAdminRoleGroupsForSyncableMemberChannel(t *testing.T, ss store.Store) { func groupTestAdminRoleGroupsForSyncableMemberChannel(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -4438,7 +4439,7 @@ func groupTestAdminRoleGroupsForSyncableMemberChannel(t *testing.T, ss store.Sto
require.ElementsMatch(t, []string{}, actualGroupIDs) require.ElementsMatch(t, []string{}, actualGroupIDs)
} }
func groupTestAdminRoleGroupsForSyncableMemberTeam(t *testing.T, ss store.Store) { func groupTestAdminRoleGroupsForSyncableMemberTeam(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -4525,7 +4526,7 @@ func groupTestAdminRoleGroupsForSyncableMemberTeam(t *testing.T, ss store.Store)
require.ElementsMatch(t, []string{}, actualGroupIDs) require.ElementsMatch(t, []string{}, actualGroupIDs)
} }
func groupTestPermittedSyncableAdminsTeam(t *testing.T, ss store.Store) { func groupTestPermittedSyncableAdminsTeam(t *testing.T, rctx request.CTX, ss store.Store) {
user1 := &model.User{ user1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -4631,7 +4632,7 @@ func groupTestPermittedSyncableAdminsTeam(t *testing.T, ss store.Store) {
require.ElementsMatch(t, []string{user3.Id}, actualUserIDs) require.ElementsMatch(t, []string{user3.Id}, actualUserIDs)
} }
func groupTestPermittedSyncableAdminsChannel(t *testing.T, ss store.Store) { func groupTestPermittedSyncableAdminsChannel(t *testing.T, rctx request.CTX, ss store.Store) {
user1 := &model.User{ user1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -4738,7 +4739,7 @@ func groupTestPermittedSyncableAdminsChannel(t *testing.T, ss store.Store) {
require.ElementsMatch(t, []string{user3.Id}, actualUserIDs) require.ElementsMatch(t, []string{user3.Id}, actualUserIDs)
} }
func groupTestpUpdateMembersRoleTeam(t *testing.T, ss store.Store) { func groupTestpUpdateMembersRoleTeam(t *testing.T, rctx request.CTX, ss store.Store) {
team := &model.Team{ team := &model.Team{
DisplayName: "Name", DisplayName: "Name",
Description: "Some description", Description: "Some description",
@@ -4842,7 +4843,7 @@ func groupTestpUpdateMembersRoleTeam(t *testing.T, ss store.Store) {
} }
} }
func groupTestpUpdateMembersRoleChannel(t *testing.T, ss store.Store) { func groupTestpUpdateMembersRoleChannel(t *testing.T, rctx request.CTX, ss store.Store) {
channel := &model.Channel{ channel := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: "A Name", DisplayName: "A Name",
@@ -4952,7 +4953,7 @@ func groupTestpUpdateMembersRoleChannel(t *testing.T, ss store.Store) {
} }
} }
func groupTestGroupCount(t *testing.T, ss store.Store) { func groupTestGroupCount(t *testing.T, rctx request.CTX, ss store.Store) {
group1, err := ss.Group().Create(&model.Group{ group1, err := ss.Group().Create(&model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -4980,7 +4981,7 @@ func groupTestGroupCount(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, countAfter, count+1) require.GreaterOrEqual(t, countAfter, count+1)
} }
func groupTestGroupTeamCount(t *testing.T, ss store.Store) { func groupTestGroupTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: model.NewId(), DisplayName: model.NewId(),
Description: model.NewId(), Description: model.NewId(),
@@ -5028,7 +5029,7 @@ func groupTestGroupTeamCount(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, countAfter, count+1) require.GreaterOrEqual(t, countAfter, count+1)
} }
func groupTestGroupChannelCount(t *testing.T, ss store.Store) { func groupTestGroupChannelCount(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -5073,7 +5074,7 @@ func groupTestGroupChannelCount(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, countAfter, count+1) require.GreaterOrEqual(t, countAfter, count+1)
} }
func groupTestGroupMemberCount(t *testing.T, ss store.Store) { func groupTestGroupMemberCount(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{ user := &model.User{
Email: fmt.Sprintf("test.%s@localhost", model.NewId()), Email: fmt.Sprintf("test.%s@localhost", model.NewId()),
Username: model.NewId(), Username: model.NewId(),
@@ -5114,7 +5115,7 @@ func groupTestGroupMemberCount(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, countAfter, count+1) require.GreaterOrEqual(t, countAfter, count+1)
} }
func groupTestDistinctGroupMemberCount(t *testing.T, ss store.Store) { func groupTestDistinctGroupMemberCount(t *testing.T, rctx request.CTX, ss store.Store) {
group1, err := ss.Group().Create(&model.Group{ group1, err := ss.Group().Create(&model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -5172,7 +5173,7 @@ func groupTestDistinctGroupMemberCount(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, countAfter2, countAfter1) require.GreaterOrEqual(t, countAfter2, countAfter1)
} }
func groupTestGroupCountWithAllowReference(t *testing.T, ss store.Store) { func groupTestGroupCountWithAllowReference(t *testing.T, rctx request.CTX, ss store.Store) {
initialCount, err := ss.Group().GroupCountWithAllowReference() initialCount, err := ss.Group().GroupCountWithAllowReference()
require.NoError(t, err) require.NoError(t, err)
@@ -5204,7 +5205,7 @@ func groupTestGroupCountWithAllowReference(t *testing.T, ss store.Store) {
require.Greater(t, countAfter, count) require.Greater(t, countAfter, count)
} }
func groupTestGetMember(t *testing.T, ss store.Store) { func groupTestGetMember(t *testing.T, rctx request.CTX, ss store.Store) {
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -5241,7 +5242,7 @@ func groupTestGetMember(t *testing.T, ss store.Store) {
require.Nil(t, member) require.Nil(t, member)
} }
func groupTestGetNonMemberUsersPage(t *testing.T, ss store.Store) { func groupTestGetNonMemberUsersPage(t *testing.T, rctx request.CTX, ss store.Store) {
g1 := &model.Group{ g1 := &model.Group{
Name: model.NewString(model.NewId()), Name: model.NewString(model.NewId()),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -5283,7 +5284,7 @@ func groupTestGetNonMemberUsersPage(t *testing.T, ss store.Store) {
require.Nil(t, users) require.Nil(t, users)
} }
func groupTestDistinctGroupMemberCountForSource(t *testing.T, ss store.Store) { func groupTestDistinctGroupMemberCountForSource(t *testing.T, rctx request.CTX, ss store.Store) {
// get the before counts // get the before counts
customGroupCountBefore, err := ss.Group().DistinctGroupMemberCountForSource(model.GroupSourceCustom) customGroupCountBefore, err := ss.Group().DistinctGroupMemberCountForSource(model.GroupSourceCustom)
require.NoError(t, err) require.NoError(t, err)

Просмотреть файл

@@ -11,33 +11,30 @@ import (
"github.com/lib/pq" "github.com/lib/pq"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/mlog"
"github.com/mattermost/mattermost/server/public/shared/request" "github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestJobStore(t *testing.T, ss store.Store) { func TestJobStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("JobSaveGet", func(t *testing.T) { testJobSaveGet(t, ss) }) t.Run("JobSaveGet", func(t *testing.T) { testJobSaveGet(t, rctx, ss) })
t.Run("JobSaveOnce", func(t *testing.T) { testJobSaveOnce(t, ss) }) t.Run("JobSaveOnce", func(t *testing.T) { testJobSaveOnce(t, rctx, ss) })
t.Run("JobGetAllByType", func(t *testing.T) { testJobGetAllByType(t, ss) }) t.Run("JobGetAllByType", func(t *testing.T) { testJobGetAllByType(t, rctx, ss) })
t.Run("JobGetAllByTypeAndStatus", func(t *testing.T) { testJobGetAllByTypeAndStatus(t, ss) }) t.Run("JobGetAllByTypeAndStatus", func(t *testing.T) { testJobGetAllByTypeAndStatus(t, rctx, ss) })
t.Run("JobGetAllByTypePage", func(t *testing.T) { testJobGetAllByTypePage(t, ss) }) t.Run("JobGetAllByTypePage", func(t *testing.T) { testJobGetAllByTypePage(t, rctx, ss) })
t.Run("JobGetAllByTypesPage", func(t *testing.T) { testJobGetAllByTypesPage(t, ss) }) t.Run("JobGetAllByTypesPage", func(t *testing.T) { testJobGetAllByTypesPage(t, rctx, ss) })
t.Run("JobGetAllByStatus", func(t *testing.T) { testJobGetAllByStatus(t, ss) }) t.Run("JobGetAllByStatus", func(t *testing.T) { testJobGetAllByStatus(t, rctx, ss) })
t.Run("GetNewestJobByStatusAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusAndType(t, ss) }) t.Run("GetNewestJobByStatusAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusAndType(t, rctx, ss) })
t.Run("GetNewestJobByStatusesAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusesAndType(t, ss) }) t.Run("GetNewestJobByStatusesAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusesAndType(t, rctx, ss) })
t.Run("GetCountByStatusAndType", func(t *testing.T) { testJobStoreGetCountByStatusAndType(t, ss) }) t.Run("GetCountByStatusAndType", func(t *testing.T) { testJobStoreGetCountByStatusAndType(t, rctx, ss) })
t.Run("JobUpdateOptimistically", func(t *testing.T) { testJobUpdateOptimistically(t, ss) }) t.Run("JobUpdateOptimistically", func(t *testing.T) { testJobUpdateOptimistically(t, rctx, ss) })
t.Run("JobUpdateStatusUpdateStatusOptimistically", func(t *testing.T) { testJobUpdateStatusUpdateStatusOptimistically(t, ss) }) t.Run("JobUpdateStatusUpdateStatusOptimistically", func(t *testing.T) { testJobUpdateStatusUpdateStatusOptimistically(t, rctx, ss) })
t.Run("JobDelete", func(t *testing.T) { testJobDelete(t, ss) }) t.Run("JobDelete", func(t *testing.T) { testJobDelete(t, rctx, ss) })
t.Run("JobCleanup", func(t *testing.T) { testJobCleanup(t, ss) }) t.Run("JobCleanup", func(t *testing.T) { testJobCleanup(t, rctx, ss) })
} }
func testJobSaveGet(t *testing.T, ss store.Store) { func testJobSaveGet(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
job := &model.Job{ job := &model.Job{
Id: model.NewId(), Id: model.NewId(),
Type: model.NewId(), Type: model.NewId(),
@@ -54,13 +51,13 @@ func testJobSaveGet(t *testing.T, ss store.Store) {
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
received, err := ss.Job().Get(ctx, job.Id) received, err := ss.Job().Get(rctx, job.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, job.Id, received.Id, "received incorrect job after save") require.Equal(t, job.Id, received.Id, "received incorrect job after save")
require.Equal(t, "12345", received.Data["Total"]) require.Equal(t, "12345", received.Data["Total"])
} }
func testJobSaveOnce(t *testing.T, ss store.Store) { func testJobSaveOnce(t *testing.T, rctx request.CTX, ss store.Store) {
var wg sync.WaitGroup var wg sync.WaitGroup
ids := make([]string, 2) ids := make([]string, 2)
@@ -105,9 +102,7 @@ func testJobSaveOnce(t *testing.T, ss store.Store) {
} }
} }
func testJobGetAllByType(t *testing.T, ss store.Store) { func testJobGetAllByType(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
jobType := model.NewId() jobType := model.NewId()
jobs := []*model.Job{ jobs := []*model.Job{
@@ -131,15 +126,13 @@ func testJobGetAllByType(t *testing.T, ss store.Store) {
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllByType(ctx, jobType) received, err := ss.Job().GetAllByType(rctx, jobType)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 2) require.Len(t, received, 2)
require.ElementsMatch(t, []string{jobs[0].Id, jobs[1].Id}, []string{received[0].Id, received[1].Id}) require.ElementsMatch(t, []string{jobs[0].Id, jobs[1].Id}, []string{received[0].Id, received[1].Id})
} }
func testJobGetAllByTypeAndStatus(t *testing.T, ss store.Store) { func testJobGetAllByTypeAndStatus(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
jobType := model.NewId() jobType := model.NewId()
jobs := []*model.Job{ jobs := []*model.Job{
@@ -161,15 +154,13 @@ func testJobGetAllByTypeAndStatus(t *testing.T, ss store.Store) {
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllByTypeAndStatus(ctx, jobType, model.JobStatusPending) received, err := ss.Job().GetAllByTypeAndStatus(rctx, jobType, model.JobStatusPending)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 2) require.Len(t, received, 2)
require.ElementsMatch(t, []string{jobs[0].Id, jobs[1].Id}, []string{received[0].Id, received[1].Id}) require.ElementsMatch(t, []string{jobs[0].Id, jobs[1].Id}, []string{received[0].Id, received[1].Id})
} }
func testJobGetAllByTypePage(t *testing.T, ss store.Store) { func testJobGetAllByTypePage(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
jobType := model.NewId() jobType := model.NewId()
jobs := []*model.Job{ jobs := []*model.Job{
@@ -201,21 +192,19 @@ func testJobGetAllByTypePage(t *testing.T, ss store.Store) {
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllByTypePage(ctx, jobType, 0, 2) received, err := ss.Job().GetAllByTypePage(rctx, jobType, 0, 2)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 2) require.Len(t, received, 2)
require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first") require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first")
require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second") require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second")
received, err = ss.Job().GetAllByTypePage(ctx, jobType, 2, 2) received, err = ss.Job().GetAllByTypePage(rctx, jobType, 2, 2)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 1) require.Len(t, received, 1)
require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last") require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last")
} }
func testJobGetAllByTypesPage(t *testing.T, ss store.Store) { func testJobGetAllByTypesPage(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
jobType := model.NewId() jobType := model.NewId()
jobType2 := model.NewId() jobType2 := model.NewId()
@@ -250,7 +239,7 @@ func testJobGetAllByTypesPage(t *testing.T, ss store.Store) {
// test return all // test return all
jobTypes := []string{jobType, jobType2} jobTypes := []string{jobType, jobType2}
received, err := ss.Job().GetAllByTypesPage(ctx, jobTypes, 0, 4) received, err := ss.Job().GetAllByTypesPage(rctx, jobTypes, 0, 4)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 3) require.Len(t, received, 3)
require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first") require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first")
@@ -258,21 +247,19 @@ func testJobGetAllByTypesPage(t *testing.T, ss store.Store) {
// test paging // test paging
jobTypes = []string{jobType, jobType2} jobTypes = []string{jobType, jobType2}
received, err = ss.Job().GetAllByTypesPage(ctx, jobTypes, 0, 2) received, err = ss.Job().GetAllByTypesPage(rctx, jobTypes, 0, 2)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 2) require.Len(t, received, 2)
require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first") require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first")
require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second") require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second")
received, err = ss.Job().GetAllByTypesPage(ctx, jobTypes, 2, 2) received, err = ss.Job().GetAllByTypesPage(rctx, jobTypes, 2, 2)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 1) require.Len(t, received, 1)
require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last") require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last")
} }
func testJobGetAllByStatus(t *testing.T, ss store.Store) { func testJobGetAllByStatus(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
jobType := model.NewId() jobType := model.NewId()
status := model.NewId() status := model.NewId()
@@ -312,7 +299,7 @@ func testJobGetAllByStatus(t *testing.T, ss store.Store) {
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllByStatus(ctx, status) received, err := ss.Job().GetAllByStatus(rctx, status)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, received, 3) require.Len(t, received, 3)
require.Equal(t, received[0].Id, jobs[1].Id) require.Equal(t, received[0].Id, jobs[1].Id)
@@ -321,7 +308,7 @@ func testJobGetAllByStatus(t *testing.T, ss store.Store) {
require.Equal(t, "data", received[1].Data["test"], "should've received job data field back as saved") require.Equal(t, "data", received[1].Data["test"], "should've received job data field back as saved")
} }
func testJobStoreGetNewestJobByStatusAndType(t *testing.T, ss store.Store) { func testJobStoreGetNewestJobByStatusAndType(t *testing.T, rctx request.CTX, ss store.Store) {
jobType1 := model.NewId() jobType1 := model.NewId()
jobType2 := model.NewId() jobType2 := model.NewId()
status1 := model.NewId() status1 := model.NewId()
@@ -371,7 +358,7 @@ func testJobStoreGetNewestJobByStatusAndType(t *testing.T, ss store.Store) {
assert.Nil(t, received) assert.Nil(t, received)
} }
func testJobStoreGetNewestJobByStatusesAndType(t *testing.T, ss store.Store) { func testJobStoreGetNewestJobByStatusesAndType(t *testing.T, rctx request.CTX, ss store.Store) {
jobType1 := model.NewId() jobType1 := model.NewId()
jobType2 := model.NewId() jobType2 := model.NewId()
status1 := model.NewId() status1 := model.NewId()
@@ -435,7 +422,7 @@ func testJobStoreGetNewestJobByStatusesAndType(t *testing.T, ss store.Store) {
assert.Nil(t, received) assert.Nil(t, received)
} }
func testJobStoreGetCountByStatusAndType(t *testing.T, ss store.Store) { func testJobStoreGetCountByStatusAndType(t *testing.T, rctx request.CTX, ss store.Store) {
jobType1 := model.NewId() jobType1 := model.NewId()
jobType2 := model.NewId() jobType2 := model.NewId()
status1 := model.NewId() status1 := model.NewId()
@@ -491,9 +478,7 @@ func testJobStoreGetCountByStatusAndType(t *testing.T, ss store.Store) {
assert.EqualValues(t, 1, count) assert.EqualValues(t, 1, count)
} }
func testJobUpdateOptimistically(t *testing.T, ss store.Store) { func testJobUpdateOptimistically(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
job := &model.Job{ job := &model.Job{
Id: model.NewId(), Id: model.NewId(),
Type: model.JobTypeDataRetention, Type: model.JobTypeDataRetention,
@@ -521,7 +506,7 @@ func testJobUpdateOptimistically(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.True(t, updated) require.True(t, updated)
updatedJob, err := ss.Job().Get(ctx, job.Id) updatedJob, err := ss.Job().Get(rctx, job.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, updatedJob.Type, job.Type) require.Equal(t, updatedJob.Type, job.Type)
@@ -532,8 +517,7 @@ func testJobUpdateOptimistically(t *testing.T, ss store.Store) {
require.Equal(t, updatedJob.Data["Foo"], job.Data["Foo"]) require.Equal(t, updatedJob.Data["Foo"], job.Data["Foo"])
} }
func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store) { func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
job := &model.Job{ job := &model.Job{
Id: model.NewId(), Id: model.NewId(),
Type: model.JobTypeDataRetention, Type: model.JobTypeDataRetention,
@@ -563,7 +547,7 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
require.NoError(t, err) require.NoError(t, err)
require.False(t, updated) require.False(t, updated)
received, err = ss.Job().Get(ctx, job.Id) received, err = ss.Job().Get(rctx, job.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, model.JobStatusPending, received.Status) require.Equal(t, model.JobStatusPending, received.Status)
@@ -576,7 +560,7 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
require.True(t, updated, "should have succeeded") require.True(t, updated, "should have succeeded")
var startAtSet int64 var startAtSet int64
received, err = ss.Job().Get(ctx, job.Id) received, err = ss.Job().Get(rctx, job.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, model.JobStatusInProgress, received.Status) require.Equal(t, model.JobStatusInProgress, received.Status)
require.NotEqual(t, 0, received.StartAt) require.NotEqual(t, 0, received.StartAt)
@@ -590,14 +574,14 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
require.NoError(t, err) require.NoError(t, err)
require.True(t, updated, "should have succeeded") require.True(t, updated, "should have succeeded")
received, err = ss.Job().Get(ctx, job.Id) received, err = ss.Job().Get(rctx, job.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, model.JobStatusSuccess, received.Status) require.Equal(t, model.JobStatusSuccess, received.Status)
require.Equal(t, startAtSet, received.StartAt) require.Equal(t, startAtSet, received.StartAt)
require.Greater(t, received.LastActivityAt, lastUpdateAt) require.Greater(t, received.LastActivityAt, lastUpdateAt)
} }
func testJobDelete(t *testing.T, ss store.Store) { func testJobDelete(t *testing.T, rctx request.CTX, ss store.Store) {
job, err := ss.Job().Save(&model.Job{Id: model.NewId()}) job, err := ss.Job().Save(&model.Job{Id: model.NewId()})
require.NoError(t, err) require.NoError(t, err)
@@ -605,9 +589,7 @@ func testJobDelete(t *testing.T, ss store.Store) {
assert.NoError(t, err) assert.NoError(t, err)
} }
func testJobCleanup(t *testing.T, ss store.Store) { func testJobCleanup(t *testing.T, rctx request.CTX, ss store.Store) {
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
now := model.GetMillis() now := model.GetMillis()
ids := make([]string, 0, 10) ids := make([]string, 0, 10)
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
@@ -621,7 +603,7 @@ func testJobCleanup(t *testing.T, ss store.Store) {
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
jobs, err := ss.Job().GetAllByStatus(ctx, model.JobStatusPending) jobs, err := ss.Job().GetAllByStatus(rctx, model.JobStatusPending)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, jobs, 10) assert.Len(t, jobs, 10)
@@ -629,7 +611,7 @@ func testJobCleanup(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// Should not clean up pending jobs // Should not clean up pending jobs
jobs, err = ss.Job().GetAllByStatus(ctx, model.JobStatusPending) jobs, err = ss.Job().GetAllByStatus(rctx, model.JobStatusPending)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, jobs, 10) assert.Len(t, jobs, 10)
@@ -642,7 +624,7 @@ func testJobCleanup(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
// Should clean up now // Should clean up now
jobs, err = ss.Job().GetAllByStatus(ctx, model.JobStatusSuccess) jobs, err = ss.Job().GetAllByStatus(rctx, model.JobStatusSuccess)
require.NoError(t, err) require.NoError(t, err)
assert.Len(t, jobs, 0) assert.Len(t, jobs, 0)
} }

Просмотреть файл

@@ -13,12 +13,12 @@ import (
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestLicenseStore(t *testing.T, ss store.Store) { func TestLicenseStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save", func(t *testing.T) { testLicenseStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testLicenseStoreSave(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testLicenseStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testLicenseStoreGet(t, rctx, ss) })
} }
func testLicenseStoreSave(t *testing.T, ss store.Store) { func testLicenseStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
l1 := model.LicenseRecord{} l1 := model.LicenseRecord{}
l1.Id = model.NewId() l1.Id = model.NewId()
l1.Bytes = "junk" l1.Bytes = "junk"
@@ -35,9 +35,7 @@ func testLicenseStoreSave(t *testing.T, ss store.Store) {
require.Error(t, err, "should fail on invalid license") require.Error(t, err, "should fail on invalid license")
} }
func testLicenseStoreGet(t *testing.T, ss store.Store) { func testLicenseStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
l1 := model.LicenseRecord{} l1 := model.LicenseRecord{}
l1.Id = model.NewId() l1.Id = model.NewId()
l1.Bytes = "junk" l1.Bytes = "junk"
@@ -45,11 +43,11 @@ func testLicenseStoreGet(t *testing.T, ss store.Store) {
err := ss.License().Save(&l1) err := ss.License().Save(&l1)
require.NoError(t, err) require.NoError(t, err)
record, err := ss.License().Get(c, l1.Id) record, err := ss.License().Get(rctx, l1.Id)
require.NoError(t, err, "couldn't get license") require.NoError(t, err, "couldn't get license")
require.Equal(t, record.Bytes, l1.Bytes, "license bytes didn't match") require.Equal(t, record.Bytes, l1.Bytes, "license bytes didn't match")
_, err = ss.License().Get(c, "missing") _, err = ss.License().Get(rctx, "missing")
require.Error(t, err, "should fail on get license") require.Error(t, err, "should fail on get license")
} }

Просмотреть файл

@@ -14,6 +14,7 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
@@ -25,13 +26,13 @@ func getNextLinkMetadataTimestamp() int64 {
return linkMetadataTimestamp return linkMetadataTimestamp
} }
func TestLinkMetadataStore(t *testing.T, ss store.Store) { func TestLinkMetadataStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save", func(t *testing.T) { testLinkMetadataStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testLinkMetadataStoreSave(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testLinkMetadataStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testLinkMetadataStoreGet(t, rctx, ss) })
t.Run("Types", func(t *testing.T) { testLinkMetadataStoreTypes(t, ss) }) t.Run("Types", func(t *testing.T) { testLinkMetadataStoreTypes(t, rctx, ss) })
} }
func testLinkMetadataStoreSave(t *testing.T, ss store.Store) { func testLinkMetadataStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should save item", func(t *testing.T) { t.Run("should save item", func(t *testing.T) {
metadata := &model.LinkMetadata{ metadata := &model.LinkMetadata{
URL: "http://example.com", URL: "http://example.com",
@@ -122,7 +123,7 @@ func testLinkMetadataStoreSave(t *testing.T, ss store.Store) {
}) })
} }
func testLinkMetadataStoreGet(t *testing.T, ss store.Store) { func testLinkMetadataStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should get value", func(t *testing.T) { t.Run("should get value", func(t *testing.T) {
metadata := &model.LinkMetadata{ metadata := &model.LinkMetadata{
URL: "http://example.com", URL: "http://example.com",
@@ -178,7 +179,7 @@ func testLinkMetadataStoreGet(t *testing.T, ss store.Store) {
}) })
} }
func testLinkMetadataStoreTypes(t *testing.T, ss store.Store) { func testLinkMetadataStoreTypes(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should save and get image metadata", func(t *testing.T) { t.Run("should save and get image metadata", func(t *testing.T) {
metadata := &model.LinkMetadata{ metadata := &model.LinkMetadata{
URL: "http://example.com", URL: "http://example.com",

Просмотреть файл

@@ -10,20 +10,21 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
const PluginIdJenkins = "jenkins" const PluginIdJenkins = "jenkins"
func TestNotifyAdminStore(t *testing.T, ss store.Store) { func TestNotifyAdminStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save", func(t *testing.T) { testNotifyAdminStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testNotifyAdminStoreSave(t, rctx, ss) })
t.Run("testGetDataByUserIdAndFeature", func(t *testing.T) { testGetDataByUserIdAndFeature(t, ss) }) t.Run("testGetDataByUserIdAndFeature", func(t *testing.T) { testGetDataByUserIdAndFeature(t, rctx, ss) })
t.Run("testGet", func(t *testing.T) { testGet(t, ss) }) t.Run("testGet", func(t *testing.T) { testGet(t, rctx, ss) })
t.Run("testDeleteBefore", func(t *testing.T) { testDeleteBefore(t, ss) }) t.Run("testDeleteBefore", func(t *testing.T) { testDeleteBefore(t, rctx, ss) })
t.Run("testUpdate", func(t *testing.T) { testUpdate(t, ss) }) t.Run("testUpdate", func(t *testing.T) { testUpdate(t, rctx, ss) })
} }
func tearDown(t *testing.T, ss store.Store) { func tearDown(t *testing.T, rctx request.CTX, ss store.Store) {
err := ss.NotifyAdmin().DeleteBefore(true, model.GetMillis()+model.GetMillis()) err := ss.NotifyAdmin().DeleteBefore(true, model.GetMillis()+model.GetMillis())
require.NoError(t, err) require.NoError(t, err)
@@ -31,7 +32,7 @@ func tearDown(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testNotifyAdminStoreSave(t *testing.T, ss store.Store) { func testNotifyAdminStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
d1 := &model.NotifyAdminData{ d1 := &model.NotifyAdminData{
UserId: model.NewId(), UserId: model.NewId(),
RequiredPlan: model.LicenseShortSkuProfessional, RequiredPlan: model.LicenseShortSkuProfessional,
@@ -78,10 +79,10 @@ func testNotifyAdminStoreSave(t *testing.T, ss store.Store) {
_, err = ss.NotifyAdmin().Save(d6) _, err = ss.NotifyAdmin().Save(d6)
require.Error(t, err) require.Error(t, err)
tearDown(t, ss) tearDown(t, rctx, ss)
} }
func testGet(t *testing.T, ss store.Store) { func testGet(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
d1 := &model.NotifyAdminData{ d1 := &model.NotifyAdminData{
UserId: userId1, UserId: userId1,
@@ -118,10 +119,10 @@ func testGet(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, len(trialRequests), 2) require.Equal(t, len(trialRequests), 2)
tearDown(t, ss) tearDown(t, rctx, ss)
} }
func testGetDataByUserIdAndFeature(t *testing.T, ss store.Store) { func testGetDataByUserIdAndFeature(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
d1 := &model.NotifyAdminData{ d1 := &model.NotifyAdminData{
UserId: userId1, UserId: userId1,
@@ -147,10 +148,10 @@ func testGetDataByUserIdAndFeature(t *testing.T, ss store.Store) {
require.Equal(t, len(user1Request), 1) require.Equal(t, len(user1Request), 1)
require.Equal(t, user1Request[0].RequiredFeature, model.PaidFeatureAllProfessionalfeatures) require.Equal(t, user1Request[0].RequiredFeature, model.PaidFeatureAllProfessionalfeatures)
tearDown(t, ss) tearDown(t, rctx, ss)
} }
func testUpdate(t *testing.T, ss store.Store) { func testUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
d1 := &model.NotifyAdminData{ d1 := &model.NotifyAdminData{
UserId: userId1, UserId: userId1,
@@ -169,10 +170,10 @@ func testUpdate(t *testing.T, ss store.Store) {
require.Equal(t, len(userRequest), 1) require.Equal(t, len(userRequest), 1)
require.Equal(t, userRequest[0].SentAt, sql.NullInt64{Int64: 100, Valid: true}) require.Equal(t, userRequest[0].SentAt, sql.NullInt64{Int64: 100, Valid: true})
tearDown(t, ss) tearDown(t, rctx, ss)
} }
func testDeleteBefore(t *testing.T, ss store.Store) { func testDeleteBefore(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
d1 := &model.NotifyAdminData{ d1 := &model.NotifyAdminData{
UserId: userId1, UserId: userId1,

Просмотреть файл

@@ -14,25 +14,25 @@ import (
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestOAuthStore(t *testing.T, ss store.Store) { func TestOAuthStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("SaveApp", func(t *testing.T) { testOAuthStoreSaveApp(t, ss) }) t.Run("SaveApp", func(t *testing.T) { testOAuthStoreSaveApp(t, rctx, ss) })
t.Run("GetApp", func(t *testing.T) { testOAuthStoreGetApp(t, ss) }) t.Run("GetApp", func(t *testing.T) { testOAuthStoreGetApp(t, rctx, ss) })
t.Run("UpdateApp", func(t *testing.T) { testOAuthStoreUpdateApp(t, ss) }) t.Run("UpdateApp", func(t *testing.T) { testOAuthStoreUpdateApp(t, rctx, ss) })
t.Run("SaveAccessData", func(t *testing.T) { testOAuthStoreSaveAccessData(t, ss) }) t.Run("SaveAccessData", func(t *testing.T) { testOAuthStoreSaveAccessData(t, rctx, ss) })
t.Run("OAuthUpdateAccessData", func(t *testing.T) { testOAuthUpdateAccessData(t, ss) }) t.Run("OAuthUpdateAccessData", func(t *testing.T) { testOAuthUpdateAccessData(t, rctx, ss) })
t.Run("GetAccessData", func(t *testing.T) { testOAuthStoreGetAccessData(t, ss) }) t.Run("GetAccessData", func(t *testing.T) { testOAuthStoreGetAccessData(t, rctx, ss) })
t.Run("RemoveAccessData", func(t *testing.T) { testOAuthStoreRemoveAccessData(t, ss) }) t.Run("RemoveAccessData", func(t *testing.T) { testOAuthStoreRemoveAccessData(t, rctx, ss) })
t.Run("RemoveAllAccessData", func(t *testing.T) { testOAuthStoreRemoveAllAccessData(t, ss) }) t.Run("RemoveAllAccessData", func(t *testing.T) { testOAuthStoreRemoveAllAccessData(t, rctx, ss) })
t.Run("SaveAuthData", func(t *testing.T) { testOAuthStoreSaveAuthData(t, ss) }) t.Run("SaveAuthData", func(t *testing.T) { testOAuthStoreSaveAuthData(t, rctx, ss) })
t.Run("GetAuthData", func(t *testing.T) { testOAuthStoreGetAuthData(t, ss) }) t.Run("GetAuthData", func(t *testing.T) { testOAuthStoreGetAuthData(t, rctx, ss) })
t.Run("RemoveAuthData", func(t *testing.T) { testOAuthStoreRemoveAuthData(t, ss) }) t.Run("RemoveAuthData", func(t *testing.T) { testOAuthStoreRemoveAuthData(t, rctx, ss) })
t.Run("RemoveAuthDataByUser", func(t *testing.T) { testOAuthStoreRemoveAuthDataByUser(t, ss) }) t.Run("RemoveAuthDataByUser", func(t *testing.T) { testOAuthStoreRemoveAuthDataByUser(t, rctx, ss) })
t.Run("OAuthGetAuthorizedApps", func(t *testing.T) { testOAuthGetAuthorizedApps(t, ss) }) t.Run("OAuthGetAuthorizedApps", func(t *testing.T) { testOAuthGetAuthorizedApps(t, rctx, ss) })
t.Run("OAuthGetAccessDataByUserForApp", func(t *testing.T) { testOAuthGetAccessDataByUserForApp(t, ss) }) t.Run("OAuthGetAccessDataByUserForApp", func(t *testing.T) { testOAuthGetAccessDataByUserForApp(t, rctx, ss) })
t.Run("DeleteApp", func(t *testing.T) { testOAuthStoreDeleteApp(t, ss) }) t.Run("DeleteApp", func(t *testing.T) { testOAuthStoreDeleteApp(t, rctx, ss) })
} }
func testOAuthStoreSaveApp(t *testing.T, ss store.Store) { func testOAuthStoreSaveApp(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.OAuthApp{} a1 := model.OAuthApp{}
a1.CreatorId = model.NewId() a1.CreatorId = model.NewId()
a1.CallbackUrls = []string{"https://nowhere.com"} a1.CallbackUrls = []string{"https://nowhere.com"}
@@ -60,7 +60,7 @@ func testOAuthStoreSaveApp(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testOAuthStoreGetApp(t *testing.T, ss store.Store) { func testOAuthStoreGetApp(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.OAuthApp{} a1 := model.OAuthApp{}
a1.CreatorId = model.NewId() a1.CreatorId = model.NewId()
a1.Name = "TestApp" + model.NewId() a1.Name = "TestApp" + model.NewId()
@@ -88,7 +88,7 @@ func testOAuthStoreGetApp(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testOAuthStoreUpdateApp(t *testing.T, ss store.Store) { func testOAuthStoreUpdateApp(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.OAuthApp{} a1 := model.OAuthApp{}
a1.CreatorId = model.NewId() a1.CreatorId = model.NewId()
a1.Name = "TestApp" + model.NewId() a1.Name = "TestApp" + model.NewId()
@@ -123,7 +123,7 @@ func testOAuthStoreUpdateApp(t *testing.T, ss store.Store) {
require.NotEqual(t, ua.CreatorId, "12345678901234567890123456", "creator id should not have updated") require.NotEqual(t, ua.CreatorId, "12345678901234567890123456", "creator id should not have updated")
} }
func testOAuthStoreSaveAccessData(t *testing.T, ss store.Store) { func testOAuthStoreSaveAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AccessData{} a1 := model.AccessData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -140,7 +140,7 @@ func testOAuthStoreSaveAccessData(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testOAuthUpdateAccessData(t *testing.T, ss store.Store) { func testOAuthUpdateAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AccessData{} a1 := model.AccessData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -170,7 +170,7 @@ func testOAuthUpdateAccessData(t *testing.T, ss store.Store) {
require.NotEqual(t, ra1.RefreshToken, refreshToken, "refresh tokens didn't match") require.NotEqual(t, ra1.RefreshToken, refreshToken, "refresh tokens didn't match")
} }
func testOAuthStoreGetAccessData(t *testing.T, ss store.Store) { func testOAuthStoreGetAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AccessData{} a1 := model.AccessData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -204,7 +204,7 @@ func testOAuthStoreGetAccessData(t *testing.T, ss store.Store) {
assert.Equal(t, a1.RefreshToken, ra1.RefreshToken, "tokens didn't match") assert.Equal(t, a1.RefreshToken, ra1.RefreshToken, "tokens didn't match")
} }
func testOAuthStoreRemoveAccessData(t *testing.T, ss store.Store) { func testOAuthStoreRemoveAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AccessData{} a1 := model.AccessData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -221,7 +221,7 @@ func testOAuthStoreRemoveAccessData(t *testing.T, ss store.Store) {
require.Nil(t, result, "did not delete access token") require.Nil(t, result, "did not delete access token")
} }
func testOAuthStoreRemoveAllAccessData(t *testing.T, ss store.Store) { func testOAuthStoreRemoveAllAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AccessData{} a1 := model.AccessData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -238,7 +238,7 @@ func testOAuthStoreRemoveAllAccessData(t *testing.T, ss store.Store) {
require.Nil(t, result, "did not delete access token") require.Nil(t, result, "did not delete access token")
} }
func testOAuthStoreSaveAuthData(t *testing.T, ss store.Store) { func testOAuthStoreSaveAuthData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AuthData{} a1 := model.AuthData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -248,7 +248,7 @@ func testOAuthStoreSaveAuthData(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testOAuthStoreGetAuthData(t *testing.T, ss store.Store) { func testOAuthStoreGetAuthData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AuthData{} a1 := model.AuthData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -261,7 +261,7 @@ func testOAuthStoreGetAuthData(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testOAuthStoreRemoveAuthData(t *testing.T, ss store.Store) { func testOAuthStoreRemoveAuthData(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AuthData{} a1 := model.AuthData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -277,7 +277,7 @@ func testOAuthStoreRemoveAuthData(t *testing.T, ss store.Store) {
require.Error(t, err, "should have errored - auth code removed") require.Error(t, err, "should have errored - auth code removed")
} }
func testOAuthStoreRemoveAuthDataByUser(t *testing.T, ss store.Store) { func testOAuthStoreRemoveAuthDataByUser(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.AuthData{} a1 := model.AuthData{}
a1.ClientId = model.NewId() a1.ClientId = model.NewId()
a1.UserId = model.NewId() a1.UserId = model.NewId()
@@ -290,7 +290,7 @@ func testOAuthStoreRemoveAuthDataByUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testOAuthGetAuthorizedApps(t *testing.T, ss store.Store) { func testOAuthGetAuthorizedApps(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.OAuthApp{} a1 := model.OAuthApp{}
a1.CreatorId = model.NewId() a1.CreatorId = model.NewId()
a1.Name = "TestApp" + model.NewId() a1.Name = "TestApp" + model.NewId()
@@ -318,7 +318,7 @@ func testOAuthGetAuthorizedApps(t *testing.T, ss store.Store) {
assert.NotEqual(t, len(apps), 0, "It should have return apps") assert.NotEqual(t, len(apps), 0, "It should have return apps")
} }
func testOAuthGetAccessDataByUserForApp(t *testing.T, ss store.Store) { func testOAuthGetAccessDataByUserForApp(t *testing.T, rctx request.CTX, ss store.Store) {
a1 := model.OAuthApp{} a1 := model.OAuthApp{}
a1.CreatorId = model.NewId() a1.CreatorId = model.NewId()
a1.Name = "TestApp" + model.NewId() a1.Name = "TestApp" + model.NewId()
@@ -356,9 +356,7 @@ func testOAuthGetAccessDataByUserForApp(t *testing.T, ss store.Store) {
assert.NotEqual(t, len(accessData), 0, "It should have return access data") assert.NotEqual(t, len(accessData), 0, "It should have return access data")
} }
func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) { func testOAuthStoreDeleteApp(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
a1 := model.OAuthApp{} a1 := model.OAuthApp{}
a1.CreatorId = model.NewId() a1.CreatorId = model.NewId()
a1.Name = "TestApp" + model.NewId() a1.Name = "TestApp" + model.NewId()
@@ -376,7 +374,7 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
s1.Token = model.NewId() s1.Token = model.NewId()
s1.IsOAuth = true s1.IsOAuth = true
s1, nErr := ss.Session().Save(c, s1) s1, nErr := ss.Session().Save(rctx, s1)
require.NoError(t, nErr) require.NoError(t, nErr)
ad1 := model.AccessData{} ad1 := model.AccessData{}
@@ -392,7 +390,7 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
err = ss.OAuth().DeleteApp(a1.Id) err = ss.OAuth().DeleteApp(a1.Id)
require.NoError(t, err) require.NoError(t, err)
_, nErr = ss.Session().Get(c, s1.Token) _, nErr = ss.Session().Get(rctx, s1.Token)
require.Error(t, nErr, "should error - session should be deleted") require.Error(t, nErr, "should error - session should be deleted")
_, err = ss.OAuth().GetAccessData(s1.Token) _, err = ss.OAuth().GetAccessData(s1.Token)

Просмотреть файл

@@ -11,22 +11,23 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestPluginStore(t *testing.T, ss store.Store, s SqlStore) { func TestPluginStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("SaveOrUpdate", func(t *testing.T) { testPluginSaveOrUpdate(t, ss) }) t.Run("SaveOrUpdate", func(t *testing.T) { testPluginSaveOrUpdate(t, rctx, ss) })
t.Run("CompareAndSet", func(t *testing.T) { testPluginCompareAndSet(t, ss) }) t.Run("CompareAndSet", func(t *testing.T) { testPluginCompareAndSet(t, rctx, ss) })
t.Run("CompareAndDelete", func(t *testing.T) { testPluginCompareAndDelete(t, ss) }) t.Run("CompareAndDelete", func(t *testing.T) { testPluginCompareAndDelete(t, rctx, ss) })
t.Run("SetWithOptions", func(t *testing.T) { testPluginSetWithOptions(t, ss) }) t.Run("SetWithOptions", func(t *testing.T) { testPluginSetWithOptions(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testPluginGet(t, ss) }) t.Run("Get", func(t *testing.T) { testPluginGet(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testPluginDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testPluginDelete(t, rctx, ss) })
t.Run("DeleteAllForPlugin", func(t *testing.T) { testPluginDeleteAllForPlugin(t, ss) }) t.Run("DeleteAllForPlugin", func(t *testing.T) { testPluginDeleteAllForPlugin(t, rctx, ss) })
t.Run("DeleteAllExpired", func(t *testing.T) { testPluginDeleteAllExpired(t, ss) }) t.Run("DeleteAllExpired", func(t *testing.T) { testPluginDeleteAllExpired(t, rctx, ss) })
t.Run("List", func(t *testing.T) { testPluginList(t, ss) }) t.Run("List", func(t *testing.T) { testPluginList(t, rctx, ss) })
} }
func setupKVs(t *testing.T, ss store.Store) (string, func()) { func setupKVs(t *testing.T, rctx request.CTX, ss store.Store) (string, func()) {
pluginId := model.NewId() pluginId := model.NewId()
otherPluginId := model.NewId() otherPluginId := model.NewId()
@@ -63,9 +64,9 @@ func setupKVs(t *testing.T, ss store.Store) (string, func()) {
} }
} }
func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error)) { func doTestPluginSaveOrUpdate(t *testing.T, rctx request.CTX, ss store.Store, doer func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error)) {
t.Run("invalid kv", func(t *testing.T) { t.Run("invalid kv", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
kv := &model.PluginKeyValue{ kv := &model.PluginKeyValue{
@@ -84,7 +85,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
}) })
t.Run("new key", func(t *testing.T) { t.Run("new key", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -114,7 +115,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
}) })
t.Run("nil value for new key", func(t *testing.T) { t.Run("nil value for new key", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -146,7 +147,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
}) })
t.Run("existing key", func(t *testing.T) { t.Run("existing key", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -182,7 +183,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
}) })
t.Run("nil value for existing key", func(t *testing.T) { t.Run("nil value for existing key", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -219,17 +220,17 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
}) })
} }
func testPluginSaveOrUpdate(t *testing.T, ss store.Store) { func testPluginSaveOrUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
doTestPluginSaveOrUpdate(t, ss, func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error) { doTestPluginSaveOrUpdate(t, rctx, ss, func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error) {
return ss.Plugin().SaveOrUpdate(kv) return ss.Plugin().SaveOrUpdate(kv)
}) })
} }
// doTestPluginCompareAndSet exercises the CompareAndSet functionality, but abstracts the actual // doTestPluginCompareAndSet exercises the CompareAndSet functionality, but abstracts the actual
// call to same to allow reuse with SetWithOptions // call to same to allow reuse with SetWithOptions
func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(kv *model.PluginKeyValue, oldValue []byte) (bool, error)) { func doTestPluginCompareAndSet(t *testing.T, rctx request.CTX, ss store.Store, compareAndSet func(kv *model.PluginKeyValue, oldValue []byte) (bool, error)) {
t.Run("invalid kv", func(t *testing.T) { t.Run("invalid kv", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
kv := &model.PluginKeyValue{ kv := &model.PluginKeyValue{
@@ -310,7 +311,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
// Non-existent keys and expired keys should behave identically. // Non-existent keys and expired keys should behave identically.
for description, setup := range map[string]func(t *testing.T) (*model.PluginKeyValue, func()){ for description, setup := range map[string]func(t *testing.T) (*model.PluginKeyValue, func()){
"non-existent key": func(t *testing.T) (*model.PluginKeyValue, func()) { "non-existent key": func(t *testing.T) (*model.PluginKeyValue, func()) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
kv := &model.PluginKeyValue{ kv := &model.PluginKeyValue{
PluginId: pluginId, PluginId: pluginId,
@@ -322,7 +323,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
return kv, tearDown return kv, tearDown
}, },
"expired key": func(t *testing.T) (*model.PluginKeyValue, func()) { "expired key": func(t *testing.T) (*model.PluginKeyValue, func()) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
expiredKV := &model.PluginKeyValue{ expiredKV := &model.PluginKeyValue{
PluginId: pluginId, PluginId: pluginId,
@@ -398,7 +399,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
t.Run("existing key", func(t *testing.T) { t.Run("existing key", func(t *testing.T) {
setup := func(t *testing.T) (*model.PluginKeyValue, func()) { setup := func(t *testing.T) (*model.PluginKeyValue, func()) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
existingKV := &model.PluginKeyValue{ existingKV := &model.PluginKeyValue{
PluginId: pluginId, PluginId: pluginId,
@@ -524,15 +525,15 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
}) })
} }
func testPluginCompareAndSet(t *testing.T, ss store.Store) { func testPluginCompareAndSet(t *testing.T, rctx request.CTX, ss store.Store) {
doTestPluginCompareAndSet(t, ss, func(kv *model.PluginKeyValue, oldValue []byte) (bool, error) { doTestPluginCompareAndSet(t, rctx, ss, func(kv *model.PluginKeyValue, oldValue []byte) (bool, error) {
return ss.Plugin().CompareAndSet(kv, oldValue) return ss.Plugin().CompareAndSet(kv, oldValue)
}) })
} }
func testPluginCompareAndDelete(t *testing.T, ss store.Store) { func testPluginCompareAndDelete(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("invalid kv", func(t *testing.T) { t.Run("invalid kv", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
kv := &model.PluginKeyValue{ kv := &model.PluginKeyValue{
@@ -551,7 +552,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
}) })
t.Run("non-existent key should fail", func(t *testing.T) { t.Run("non-existent key should fail", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -580,7 +581,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
}) })
t.Run("expired key should fail", func(t *testing.T) { t.Run("expired key should fail", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -612,7 +613,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
}) })
t.Run("existing key should fail given different old value", func(t *testing.T) { t.Run("existing key should fail given different old value", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -636,7 +637,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
}) })
t.Run("existing key should succeed given same old value", func(t *testing.T) { t.Run("existing key should succeed given same old value", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -660,9 +661,9 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
}) })
} }
func testPluginSetWithOptions(t *testing.T, ss store.Store) { func testPluginSetWithOptions(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("invalid options", func(t *testing.T) { t.Run("invalid options", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
pluginId := "" pluginId := ""
@@ -682,7 +683,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
}) })
t.Run("invalid kv", func(t *testing.T) { t.Run("invalid kv", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
pluginId := "" pluginId := ""
@@ -699,7 +700,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
}) })
t.Run("atomic", func(t *testing.T) { t.Run("atomic", func(t *testing.T) {
doTestPluginCompareAndSet(t, ss, func(kv *model.PluginKeyValue, oldValue []byte) (bool, error) { doTestPluginCompareAndSet(t, rctx, ss, func(kv *model.PluginKeyValue, oldValue []byte) (bool, error) {
now := model.GetMillis() now := model.GetMillis()
options := model.PluginKVSetOptions{ options := model.PluginKVSetOptions{
Atomic: true, Atomic: true,
@@ -715,7 +716,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
}) })
t.Run("non-atomic", func(t *testing.T) { t.Run("non-atomic", func(t *testing.T) {
doTestPluginSaveOrUpdate(t, ss, func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error) { doTestPluginSaveOrUpdate(t, rctx, ss, func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error) {
now := model.GetMillis() now := model.GetMillis()
options := model.PluginKVSetOptions{ options := model.PluginKVSetOptions{
Atomic: false, Atomic: false,
@@ -734,7 +735,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
}) })
} }
func testPluginGet(t *testing.T, ss store.Store) { func testPluginGet(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("no matching key value", func(t *testing.T) { t.Run("no matching key value", func(t *testing.T) {
pluginId := model.NewId() pluginId := model.NewId()
key := model.NewId() key := model.NewId()
@@ -881,9 +882,9 @@ func testPluginGet(t *testing.T, ss store.Store) {
}) })
} }
func testPluginDelete(t *testing.T, ss store.Store) { func testPluginDelete(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("no matching key value", func(t *testing.T) { t.Run("no matching key value", func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -918,7 +919,7 @@ func testPluginDelete(t *testing.T, ss store.Store) {
for _, testCase := range testCases { for _, testCase := range testCases {
t.Run(testCase.description, func(t *testing.T) { t.Run(testCase.description, func(t *testing.T) {
pluginId, tearDown := setupKVs(t, ss) pluginId, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
key := model.NewId() key := model.NewId()
@@ -947,7 +948,7 @@ func testPluginDelete(t *testing.T, ss store.Store) {
} }
} }
func testPluginDeleteAllForPlugin(t *testing.T, ss store.Store) { func testPluginDeleteAllForPlugin(t *testing.T, rctx request.CTX, ss store.Store) {
setupKVsForDeleteAll := func(t *testing.T) (string, func()) { setupKVsForDeleteAll := func(t *testing.T) (string, func()) {
pluginId := model.NewId() pluginId := model.NewId()
otherPluginId := model.NewId() otherPluginId := model.NewId()
@@ -1015,7 +1016,7 @@ func testPluginDeleteAllForPlugin(t *testing.T, ss store.Store) {
}) })
} }
func testPluginDeleteAllExpired(t *testing.T, ss store.Store) { func testPluginDeleteAllExpired(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("no keys", func(t *testing.T) { t.Run("no keys", func(t *testing.T) {
err := ss.Plugin().DeleteAllExpired() err := ss.Plugin().DeleteAllExpired()
require.NoError(t, err) require.NoError(t, err)
@@ -1206,9 +1207,9 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
}) })
} }
func testPluginList(t *testing.T, ss store.Store) { func testPluginList(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("no key values", func(t *testing.T) { t.Run("no key values", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
// Ignore the pluginId setup by setupKVs // Ignore the pluginId setup by setupKVs
@@ -1219,7 +1220,7 @@ func testPluginList(t *testing.T, ss store.Store) {
}) })
t.Run("single key", func(t *testing.T) { t.Run("single key", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
// Ignore the pluginId setup by setupKVs // Ignore the pluginId setup by setupKVs
@@ -1241,7 +1242,7 @@ func testPluginList(t *testing.T, ss store.Store) {
}) })
t.Run("multiple keys", func(t *testing.T) { t.Run("multiple keys", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
// Ignore the pluginId setup by setupKVs // Ignore the pluginId setup by setupKVs
@@ -1278,7 +1279,7 @@ func testPluginList(t *testing.T, ss store.Store) {
}) })
t.Run("multiple keys, some expiring", func(t *testing.T) { t.Run("multiple keys, some expiring", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
// Ignore the pluginId setup by setupKVs // Ignore the pluginId setup by setupKVs
@@ -1328,7 +1329,7 @@ func testPluginList(t *testing.T, ss store.Store) {
}) })
t.Run("offsets and limits", func(t *testing.T) { t.Run("offsets and limits", func(t *testing.T) {
_, tearDown := setupKVs(t, ss) _, tearDown := setupKVs(t, rctx, ss)
defer tearDown() defer tearDown()
// Ignore the pluginId setup by setupKVs // Ignore the pluginId setup by setupKVs

Просмотреть файл

@@ -9,16 +9,17 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestPostAcknowledgementsStore(t *testing.T, ss store.Store, s SqlStore) { func TestPostAcknowledgementsStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("Save", func(t *testing.T) { testPostAcknowledgementsStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testPostAcknowledgementsStoreSave(t, rctx, ss) })
t.Run("GetForPost", func(t *testing.T) { testPostAcknowledgementsStoreGetForPost(t, ss) }) t.Run("GetForPost", func(t *testing.T) { testPostAcknowledgementsStoreGetForPost(t, rctx, ss) })
t.Run("GetForPosts", func(t *testing.T) { testPostAcknowledgementsStoreGetForPosts(t, ss) }) t.Run("GetForPosts", func(t *testing.T) { testPostAcknowledgementsStoreGetForPosts(t, rctx, ss) })
} }
func testPostAcknowledgementsStoreSave(t *testing.T, ss store.Store) { func testPostAcknowledgementsStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
p1 := model.Post{} p1 := model.Post{}
@@ -61,7 +62,7 @@ func testPostAcknowledgementsStoreSave(t *testing.T, ss store.Store) {
}) })
} }
func testPostAcknowledgementsStoreGetForPost(t *testing.T, ss store.Store) { func testPostAcknowledgementsStoreGetForPost(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
userId3 := model.NewId() userId3 := model.NewId()
@@ -112,7 +113,7 @@ func testPostAcknowledgementsStoreGetForPost(t *testing.T, ss store.Store) {
}) })
} }
func testPostAcknowledgementsStoreGetForPosts(t *testing.T, ss store.Store) { func testPostAcknowledgementsStoreGetForPosts(t *testing.T, rctx request.CTX, ss store.Store) {
userId1 := model.NewId() userId1 := model.NewId()
userId2 := model.NewId() userId2 := model.NewId()
userId3 := model.NewId() userId3 := model.NewId()

Просмотреть файл

@@ -8,18 +8,19 @@ import (
"time" "time"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestPostPersistentNotificationStore(t *testing.T, ss store.Store, s SqlStore) { func TestPostPersistentNotificationStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("Get", func(t *testing.T) { testPostPersistentNotificationStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testPostPersistentNotificationStoreGet(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testPostPersistentNotificationStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testPostPersistentNotificationStoreDelete(t, rctx, ss) })
t.Run("UpdateLastSentAt", func(t *testing.T) { testPostPersistentNotificationStoreUpdateLastSentAt(t, ss) }) t.Run("UpdateLastSentAt", func(t *testing.T) { testPostPersistentNotificationStoreUpdateLastSentAt(t, rctx, ss) })
} }
func testPostPersistentNotificationStoreGet(t *testing.T, ss store.Store) { func testPostPersistentNotificationStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
p1 := model.Post{} p1 := model.Post{}
p1.ChannelId = model.NewId() p1.ChannelId = model.NewId()
p1.UserId = model.NewId() p1.UserId = model.NewId()
@@ -141,7 +142,7 @@ func testPostPersistentNotificationStoreGet(t *testing.T, ss store.Store) {
}) })
} }
func testPostPersistentNotificationStoreUpdateLastSentAt(t *testing.T, ss store.Store) { func testPostPersistentNotificationStoreUpdateLastSentAt(t *testing.T, rctx request.CTX, ss store.Store) {
p1 := model.Post{} p1 := model.Post{}
p1.ChannelId = model.NewId() p1.ChannelId = model.NewId()
p1.UserId = model.NewId() p1.UserId = model.NewId()
@@ -193,7 +194,7 @@ func testPostPersistentNotificationStoreUpdateLastSentAt(t *testing.T, ss store.
assert.WithinDuration(t, now, model.GetTimeForMillis(pn[0].LastSentAt), delta) assert.WithinDuration(t, now, model.GetTimeForMillis(pn[0].LastSentAt), delta)
} }
func testPostPersistentNotificationStoreDelete(t *testing.T, ss store.Store) { func testPostPersistentNotificationStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Delete", func(t *testing.T) { t.Run("Delete", func(t *testing.T) {
p1 := model.Post{} p1 := model.Post{}
p1.ChannelId = model.NewId() p1.ChannelId = model.NewId()

Просмотреть файл

@@ -12,14 +12,15 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestPostPriorityStore(t *testing.T, ss store.Store, s SqlStore) { func TestPostPriorityStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("GetForPost", func(t *testing.T) { testPostPriorityStoreGetForPost(t, ss) }) t.Run("GetForPost", func(t *testing.T) { testPostPriorityStoreGetForPost(t, rctx, ss) })
} }
func testPostPriorityStoreGetForPost(t *testing.T, ss store.Store) { func testPostPriorityStoreGetForPost(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save post priority when in post's metadata", func(t *testing.T) { t.Run("Save post priority when in post's metadata", func(t *testing.T) {
p1 := model.Post{} p1 := model.Post{}
p1.ChannelId = model.NewId() p1.ChannelId = model.NewId()

Просмотреть файл

@@ -16,56 +16,57 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/utils" "github.com/mattermost/mattermost/server/v8/channels/utils"
) )
func TestPostStore(t *testing.T, ss store.Store, s SqlStore) { func TestPostStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("SaveMultiple", func(t *testing.T) { testPostStoreSaveMultiple(t, ss) }) t.Run("SaveMultiple", func(t *testing.T) { testPostStoreSaveMultiple(t, rctx, ss) })
t.Run("Save", func(t *testing.T) { testPostStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testPostStoreSave(t, rctx, ss) })
t.Run("SaveAndUpdateChannelMsgCounts", func(t *testing.T) { testPostStoreSaveChannelMsgCounts(t, ss) }) t.Run("SaveAndUpdateChannelMsgCounts", func(t *testing.T) { testPostStoreSaveChannelMsgCounts(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testPostStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testPostStoreGet(t, rctx, ss) })
t.Run("GetSingle", func(t *testing.T) { testPostStoreGetSingle(t, ss) }) t.Run("GetSingle", func(t *testing.T) { testPostStoreGetSingle(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testPostStoreUpdate(t, ss) }) t.Run("Update", func(t *testing.T) { testPostStoreUpdate(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testPostStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testPostStoreDelete(t, rctx, ss) })
t.Run("PermDelete1Level", func(t *testing.T) { testPostStorePermDelete1Level(t, ss) }) t.Run("PermDelete1Level", func(t *testing.T) { testPostStorePermDelete1Level(t, rctx, ss) })
t.Run("PermDelete1Level2", func(t *testing.T) { testPostStorePermDelete1Level2(t, ss) }) t.Run("PermDelete1Level2", func(t *testing.T) { testPostStorePermDelete1Level2(t, rctx, ss) })
t.Run("GetWithChildren", func(t *testing.T) { testPostStoreGetWithChildren(t, ss) }) t.Run("GetWithChildren", func(t *testing.T) { testPostStoreGetWithChildren(t, rctx, ss) })
t.Run("GetPostsWithDetails", func(t *testing.T) { testPostStoreGetPostsWithDetails(t, ss) }) t.Run("GetPostsWithDetails", func(t *testing.T) { testPostStoreGetPostsWithDetails(t, rctx, ss) })
t.Run("GetPostsBeforeAfter", func(t *testing.T) { testPostStoreGetPostsBeforeAfter(t, ss) }) t.Run("GetPostsBeforeAfter", func(t *testing.T) { testPostStoreGetPostsBeforeAfter(t, rctx, ss) })
t.Run("GetPostsSince", func(t *testing.T) { testPostStoreGetPostsSince(t, ss) }) t.Run("GetPostsSince", func(t *testing.T) { testPostStoreGetPostsSince(t, rctx, ss) })
t.Run("GetPosts", func(t *testing.T) { testPostStoreGetPosts(t, ss) }) t.Run("GetPosts", func(t *testing.T) { testPostStoreGetPosts(t, rctx, ss) })
t.Run("GetPostBeforeAfter", func(t *testing.T) { testPostStoreGetPostBeforeAfter(t, ss) }) t.Run("GetPostBeforeAfter", func(t *testing.T) { testPostStoreGetPostBeforeAfter(t, rctx, ss) })
t.Run("UserCountsWithPostsByDay", func(t *testing.T) { testUserCountsWithPostsByDay(t, ss) }) t.Run("UserCountsWithPostsByDay", func(t *testing.T) { testUserCountsWithPostsByDay(t, rctx, ss) })
t.Run("PostCountsByDuration", func(t *testing.T) { testPostCountsByDay(t, ss) }) t.Run("PostCountsByDuration", func(t *testing.T) { testPostCountsByDay(t, rctx, ss) })
t.Run("PostCounts", func(t *testing.T) { testPostCounts(t, ss) }) t.Run("PostCounts", func(t *testing.T) { testPostCounts(t, rctx, ss) })
t.Run("GetFlaggedPostsForTeam", func(t *testing.T) { testPostStoreGetFlaggedPostsForTeam(t, ss, s) }) t.Run("GetFlaggedPostsForTeam", func(t *testing.T) { testPostStoreGetFlaggedPostsForTeam(t, rctx, ss, s) })
t.Run("GetFlaggedPosts", func(t *testing.T) { testPostStoreGetFlaggedPosts(t, ss) }) t.Run("GetFlaggedPosts", func(t *testing.T) { testPostStoreGetFlaggedPosts(t, rctx, ss) })
t.Run("GetFlaggedPostsForChannel", func(t *testing.T) { testPostStoreGetFlaggedPostsForChannel(t, ss) }) t.Run("GetFlaggedPostsForChannel", func(t *testing.T) { testPostStoreGetFlaggedPostsForChannel(t, rctx, ss) })
t.Run("GetPostsCreatedAt", func(t *testing.T) { testPostStoreGetPostsCreatedAt(t, ss) }) t.Run("GetPostsCreatedAt", func(t *testing.T) { testPostStoreGetPostsCreatedAt(t, rctx, ss) })
t.Run("Overwrite", func(t *testing.T) { testPostStoreOverwrite(t, ss) }) t.Run("Overwrite", func(t *testing.T) { testPostStoreOverwrite(t, rctx, ss) })
t.Run("OverwriteMultiple", func(t *testing.T) { testPostStoreOverwriteMultiple(t, ss) }) t.Run("OverwriteMultiple", func(t *testing.T) { testPostStoreOverwriteMultiple(t, rctx, ss) })
t.Run("GetPostsByIds", func(t *testing.T) { testPostStoreGetPostsByIds(t, ss) }) t.Run("GetPostsByIds", func(t *testing.T) { testPostStoreGetPostsByIds(t, rctx, ss) })
t.Run("GetPostsBatchForIndexing", func(t *testing.T) { testPostStoreGetPostsBatchForIndexing(t, ss) }) t.Run("GetPostsBatchForIndexing", func(t *testing.T) { testPostStoreGetPostsBatchForIndexing(t, rctx, ss) })
t.Run("PermanentDeleteBatch", func(t *testing.T) { testPostStorePermanentDeleteBatch(t, ss) }) t.Run("PermanentDeleteBatch", func(t *testing.T) { testPostStorePermanentDeleteBatch(t, rctx, ss) })
t.Run("GetOldest", func(t *testing.T) { testPostStoreGetOldest(t, ss) }) t.Run("GetOldest", func(t *testing.T) { testPostStoreGetOldest(t, rctx, ss) })
t.Run("TestGetMaxPostSize", func(t *testing.T) { testGetMaxPostSize(t, ss) }) t.Run("TestGetMaxPostSize", func(t *testing.T) { testGetMaxPostSize(t, rctx, ss) })
t.Run("GetParentsForExportAfter", func(t *testing.T) { testPostStoreGetParentsForExportAfter(t, ss) }) t.Run("GetParentsForExportAfter", func(t *testing.T) { testPostStoreGetParentsForExportAfter(t, rctx, ss) })
t.Run("GetRepliesForExport", func(t *testing.T) { testPostStoreGetRepliesForExport(t, ss) }) t.Run("GetRepliesForExport", func(t *testing.T) { testPostStoreGetRepliesForExport(t, rctx, ss) })
t.Run("GetDirectPostParentsForExportAfter", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfter(t, ss, s) }) t.Run("GetDirectPostParentsForExportAfter", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfter(t, rctx, ss, s) })
t.Run("GetDirectPostParentsForExportAfterDeleted", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterDeleted(t, ss, s) }) t.Run("GetDirectPostParentsForExportAfterDeleted", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterDeleted(t, rctx, ss, s) })
t.Run("GetDirectPostParentsForExportAfterBatched", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterBatched(t, ss, s) }) t.Run("GetDirectPostParentsForExportAfterBatched", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterBatched(t, rctx, ss, s) })
t.Run("GetForThread", func(t *testing.T) { testPostStoreGetForThread(t, ss) }) t.Run("GetForThread", func(t *testing.T) { testPostStoreGetForThread(t, rctx, ss) })
t.Run("HasAutoResponsePostByUserSince", func(t *testing.T) { testHasAutoResponsePostByUserSince(t, ss) }) t.Run("HasAutoResponsePostByUserSince", func(t *testing.T) { testHasAutoResponsePostByUserSince(t, rctx, ss) })
t.Run("GetPostsSinceForSync", func(t *testing.T) { testGetPostsSinceForSync(t, ss, s) }) t.Run("GetPostsSinceForSync", func(t *testing.T) { testGetPostsSinceForSync(t, rctx, ss, s) })
t.Run("SetPostReminder", func(t *testing.T) { testSetPostReminder(t, ss, s) }) t.Run("SetPostReminder", func(t *testing.T) { testSetPostReminder(t, rctx, ss, s) })
t.Run("GetPostReminders", func(t *testing.T) { testGetPostReminders(t, ss, s) }) t.Run("GetPostReminders", func(t *testing.T) { testGetPostReminders(t, rctx, ss, s) })
t.Run("GetPostReminderMetadata", func(t *testing.T) { testGetPostReminderMetadata(t, ss, s) }) t.Run("GetPostReminderMetadata", func(t *testing.T) { testGetPostReminderMetadata(t, rctx, ss, s) })
t.Run("GetNthRecentPostTime", func(t *testing.T) { testGetNthRecentPostTime(t, ss) }) t.Run("GetNthRecentPostTime", func(t *testing.T) { testGetNthRecentPostTime(t, rctx, ss) })
t.Run("GetEditHistoryForPost", func(t *testing.T) { testGetEditHistoryForPost(t, ss) }) t.Run("GetEditHistoryForPost", func(t *testing.T) { testGetEditHistoryForPost(t, rctx, ss) })
} }
func testPostStoreSave(t *testing.T, ss store.Store) { func testPostStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save post", func(t *testing.T) { t.Run("Save post", func(t *testing.T) {
o1 := model.Post{} o1 := model.Post{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
@@ -265,7 +266,7 @@ func testPostStoreSave(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreSaveMultiple(t *testing.T, ss store.Store) { func testPostStoreSaveMultiple(t *testing.T, rctx request.CTX, ss store.Store) {
p1 := model.Post{} p1 := model.Post{}
p1.ChannelId = model.NewId() p1.ChannelId = model.NewId()
p1.UserId = model.NewId() p1.UserId = model.NewId()
@@ -577,7 +578,7 @@ func testPostStoreSaveMultiple(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreSaveChannelMsgCounts(t *testing.T, ss store.Store) { func testPostStoreSaveChannelMsgCounts(t *testing.T, rctx request.CTX, ss store.Store) {
c1 := &model.Channel{Name: model.NewId(), DisplayName: "posttestchannel", Type: model.ChannelTypeOpen, TeamId: model.NewId()} c1 := &model.Channel{Name: model.NewId(), DisplayName: "posttestchannel", Type: model.ChannelTypeOpen, TeamId: model.NewId()}
_, err := ss.Channel().Save(c1, 1000000) _, err := ss.Channel().Save(c1, 1000000)
require.NoError(t, err) require.NoError(t, err)
@@ -623,7 +624,7 @@ func testPostStoreSaveChannelMsgCounts(t *testing.T, ss store.Store) {
assert.Equal(t, oldLastPostAt, c1.LastPostAt, "LastPostAt should not update for old message save") assert.Equal(t, oldLastPostAt, c1.LastPostAt, "LastPostAt should not update for old message save")
} }
func testPostStoreGet(t *testing.T, ss store.Store) { func testPostStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -657,7 +658,7 @@ func testPostStoreGet(t *testing.T, ss store.Store) {
require.Error(t, err, "should fail for blank post ids") require.Error(t, err, "should fail for blank post ids")
} }
func testPostStoreGetForThread(t *testing.T, ss store.Store) { func testPostStoreGetForThread(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Post thread is followed", func(t *testing.T) { t.Run("Post thread is followed", func(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
@@ -889,7 +890,7 @@ func testPostStoreGetForThread(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreGetSingle(t *testing.T, ss store.Store) { func testPostStoreGetSingle(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -957,7 +958,7 @@ func testPostStoreGetSingle(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testPostStoreUpdate(t *testing.T, ss store.Store) { func testPostStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -1071,7 +1072,7 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
require.Len(t, ro4a.FileIds, 1, "Failed to set FileIds") require.Len(t, ro4a.FileIds, 1, "Failed to set FileIds")
} }
func testPostStoreDelete(t *testing.T, ss store.Store) { func testPostStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("single post, no replies", func(t *testing.T) { t.Run("single post, no replies", func(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
@@ -1394,7 +1395,7 @@ func testPostStoreDelete(t *testing.T, ss store.Store) {
}) })
} }
func testPostStorePermDelete1Level(t *testing.T, ss store.Store) { func testPostStorePermDelete1Level(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel, err := ss.Channel().Save(&model.Channel{ channel, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -1565,7 +1566,7 @@ func testPostStorePermDelete1Level(t *testing.T, ss store.Store) {
require.Error(t, err, "Deleted id should have failed") require.Error(t, err, "Deleted id should have failed")
} }
func testPostStorePermDelete1Level2(t *testing.T, ss store.Store) { func testPostStorePermDelete1Level2(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -1618,7 +1619,7 @@ func testPostStorePermDelete1Level2(t *testing.T, ss store.Store) {
require.NoError(t, err, "Deleted id should have failed") require.NoError(t, err, "Deleted id should have failed")
} }
func testPostStoreGetWithChildren(t *testing.T, ss store.Store) { func testPostStoreGetWithChildren(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -1673,7 +1674,7 @@ func testPostStoreGetWithChildren(t *testing.T, ss store.Store) {
require.Len(t, pl.Posts, 1, "invalid returned post") require.Len(t, pl.Posts, 1, "invalid returned post")
} }
func testPostStoreGetPostsWithDetails(t *testing.T, ss store.Store) { func testPostStoreGetPostsWithDetails(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -1776,7 +1777,7 @@ func testPostStoreGetPostsWithDetails(t *testing.T, ss store.Store) {
assert.Equal(t, 7, len(r3.Order)) assert.Equal(t, 7, len(r3.Order))
} }
func testPostStoreGetPostsBeforeAfter(t *testing.T, ss store.Store) { func testPostStoreGetPostsBeforeAfter(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("without threads", func(t *testing.T) { t.Run("without threads", func(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
@@ -2206,7 +2207,7 @@ func testPostStoreGetPostsBeforeAfter(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreGetPostsSince(t *testing.T, ss store.Store) { func testPostStoreGetPostsSince(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should return posts created after the given time", func(t *testing.T) { t.Run("should return posts created after the given time", func(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
@@ -2356,7 +2357,7 @@ func testPostStoreGetPostsSince(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreGetPosts(t *testing.T, ss store.Store) { func testPostStoreGetPosts(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -2544,7 +2545,7 @@ func testPostStoreGetPosts(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreGetPostBeforeAfter(t *testing.T, ss store.Store) { func testPostStoreGetPostBeforeAfter(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -2661,7 +2662,7 @@ func testPostStoreGetPostBeforeAfter(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testUserCountsWithPostsByDay(t *testing.T, ss store.Store) { func testUserCountsWithPostsByDay(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := &model.Team{} t1 := &model.Team{}
t1.DisplayName = "DisplayName" t1.DisplayName = "DisplayName"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -2720,7 +2721,7 @@ func testUserCountsWithPostsByDay(t *testing.T, ss store.Store) {
require.Equal(t, float64(1), row2.Value, "wrong value") require.Equal(t, float64(1), row2.Value, "wrong value")
} }
func testPostCountsByDay(t *testing.T, ss store.Store) { func testPostCountsByDay(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := &model.Team{} t1 := &model.Team{}
t1.DisplayName = "DisplayName" t1.DisplayName = "DisplayName"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -2832,7 +2833,7 @@ func testPostCountsByDay(t *testing.T, ss store.Store) {
assert.Equal(t, float64(1), r1[0].Value) assert.Equal(t, float64(1), r1[0].Value)
} }
func testPostCounts(t *testing.T, ss store.Store) { func testPostCounts(t *testing.T, rctx request.CTX, ss store.Store) {
now := time.Now() now := time.Now()
twentyMinAgo := now.Add(-20 * time.Minute).UnixMilli() twentyMinAgo := now.Add(-20 * time.Minute).UnixMilli()
fifteenMinAgo := now.Add(-15 * time.Minute).UnixMilli() fifteenMinAgo := now.Add(-15 * time.Minute).UnixMilli()
@@ -2995,7 +2996,7 @@ func testPostCounts(t *testing.T, ss store.Store) {
assert.Equal(t, int64(3), c) assert.Equal(t, int64(3), c)
} }
func testPostStoreGetFlaggedPostsForTeam(t *testing.T, ss store.Store, s SqlStore) { func testPostStoreGetFlaggedPostsForTeam(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = model.NewId() c1.TeamId = model.NewId()
c1.DisplayName = "Channel1" c1.DisplayName = "Channel1"
@@ -3214,7 +3215,7 @@ func testPostStoreGetFlaggedPostsForTeam(t *testing.T, ss store.Store, s SqlStor
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testPostStoreGetFlaggedPosts(t *testing.T, ss store.Store) { func testPostStoreGetFlaggedPosts(t *testing.T, rctx request.CTX, ss store.Store) {
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = model.NewId() c1.TeamId = model.NewId()
c1.DisplayName = "Channel1" c1.DisplayName = "Channel1"
@@ -3354,7 +3355,7 @@ func testPostStoreGetFlaggedPosts(t *testing.T, ss store.Store) {
require.Len(t, r4.Order, 2, "should have 2 posts") require.Len(t, r4.Order, 2, "should have 2 posts")
} }
func testPostStoreGetFlaggedPostsForChannel(t *testing.T, ss store.Store) { func testPostStoreGetFlaggedPostsForChannel(t *testing.T, rctx request.CTX, ss store.Store) {
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = model.NewId() c1.TeamId = model.NewId()
c1.DisplayName = "Channel1" c1.DisplayName = "Channel1"
@@ -3504,7 +3505,7 @@ func testPostStoreGetFlaggedPostsForChannel(t *testing.T, ss store.Store) {
require.Len(t, r.Order, 0, "should have 0 posts") require.Len(t, r.Order, 0, "should have 0 posts")
} }
func testPostStoreGetPostsCreatedAt(t *testing.T, ss store.Store) { func testPostStoreGetPostsCreatedAt(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -3561,7 +3562,7 @@ func testPostStoreGetPostsCreatedAt(t *testing.T, ss store.Store) {
assert.Equal(t, 2, len(r1)) assert.Equal(t, 2, len(r1))
} }
func testPostStoreOverwriteMultiple(t *testing.T, ss store.Store) { func testPostStoreOverwriteMultiple(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -3711,7 +3712,7 @@ func testPostStoreOverwriteMultiple(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreOverwrite(t *testing.T, ss store.Store) { func testPostStoreOverwrite(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -3828,7 +3829,7 @@ func testPostStoreOverwrite(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreGetPostsByIds(t *testing.T, ss store.Store) { func testPostStoreGetPostsByIds(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -3889,7 +3890,7 @@ func testPostStoreGetPostsByIds(t *testing.T, ss store.Store) {
require.Len(t, posts, 3, "Expected 3 posts in results. Got %v", len(posts)) require.Len(t, posts, 3, "Expected 3 posts in results. Got %v", len(posts))
} }
func testPostStoreGetPostsBatchForIndexing(t *testing.T, ss store.Store) { func testPostStoreGetPostsBatchForIndexing(t *testing.T, rctx request.CTX, ss store.Store) {
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = model.NewId() c1.TeamId = model.NewId()
c1.DisplayName = "Channel1" c1.DisplayName = "Channel1"
@@ -3949,7 +3950,7 @@ func testPostStoreGetPostsBatchForIndexing(t *testing.T, ss store.Store) {
require.Len(t, r, 0, "Expected 0 post in results. Got %v", len(r)) require.Len(t, r, 0, "Expected 0 post in results. Got %v", len(r))
} }
func testPostStorePermanentDeleteBatch(t *testing.T, ss store.Store) { func testPostStorePermanentDeleteBatch(t *testing.T, rctx request.CTX, ss store.Store) {
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: "team" + model.NewId(), Name: "team" + model.NewId(),
@@ -4201,7 +4202,7 @@ func testPostStorePermanentDeleteBatch(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreGetOldest(t *testing.T, ss store.Store) { func testPostStoreGetOldest(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
TeamId: teamId, TeamId: teamId,
@@ -4241,12 +4242,12 @@ func testPostStoreGetOldest(t *testing.T, ss store.Store) {
assert.EqualValues(t, o2.Id, r1.Id) assert.EqualValues(t, o2.Id, r1.Id)
} }
func testGetMaxPostSize(t *testing.T, ss store.Store) { func testGetMaxPostSize(t *testing.T, rctx request.CTX, ss store.Store) {
assert.Equal(t, model.PostMessageMaxRunesV2, ss.Post().GetMaxPostSize()) assert.Equal(t, model.PostMessageMaxRunesV2, ss.Post().GetMaxPostSize())
assert.Equal(t, model.PostMessageMaxRunesV2, ss.Post().GetMaxPostSize()) assert.Equal(t, model.PostMessageMaxRunesV2, ss.Post().GetMaxPostSize())
} }
func testPostStoreGetParentsForExportAfter(t *testing.T, ss store.Store) { func testPostStoreGetParentsForExportAfter(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -4338,7 +4339,7 @@ func testPostStoreGetParentsForExportAfter(t *testing.T, ss store.Store) {
}) })
} }
func testPostStoreGetRepliesForExport(t *testing.T, ss store.Store) { func testPostStoreGetRepliesForExport(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -4404,7 +4405,7 @@ func testPostStoreGetRepliesForExport(t *testing.T, ss store.Store) {
assert.Equal(t, reply1.Username, u1.Username) assert.Equal(t, reply1.Username, u1.Username)
} }
func testPostStoreGetDirectPostParentsForExportAfter(t *testing.T, ss store.Store, s SqlStore) { func testPostStoreGetDirectPostParentsForExportAfter(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -4458,7 +4459,7 @@ func testPostStoreGetDirectPostParentsForExportAfter(t *testing.T, ss store.Stor
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, ss store.Store, s SqlStore) { func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -4524,7 +4525,7 @@ func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, ss sto
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, ss store.Store, s SqlStore) { func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamId := model.NewId() teamId := model.NewId()
o1 := model.Channel{} o1 := model.Channel{}
@@ -4600,7 +4601,7 @@ func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, ss sto
s.GetMasterX().Exec("TRUNCATE Channels") s.GetMasterX().Exec("TRUNCATE Channels")
} }
func testHasAutoResponsePostByUserSince(t *testing.T, ss store.Store) { func testHasAutoResponsePostByUserSince(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should return posts created after the given time", func(t *testing.T) { t.Run("should return posts created after the given time", func(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
channel1, err := ss.Channel().Save(&model.Channel{ channel1, err := ss.Channel().Save(&model.Channel{
@@ -4654,7 +4655,7 @@ func testHasAutoResponsePostByUserSince(t *testing.T, ss store.Store) {
}) })
} }
func testGetPostsSinceForSync(t *testing.T, ss store.Store, s SqlStore) { func testGetPostsSinceForSync(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
// create some posts. // create some posts.
channelID := model.NewId() channelID := model.NewId()
remoteID := model.NewString(model.NewId()) remoteID := model.NewString(model.NewId())
@@ -4757,7 +4758,7 @@ func testGetPostsSinceForSync(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testSetPostReminder(t *testing.T, ss store.Store, s SqlStore) { func testSetPostReminder(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
// Basic // Basic
userID := NewTestId() userID := NewTestId()
@@ -4799,7 +4800,7 @@ func testSetPostReminder(t *testing.T, ss store.Store, s SqlStore) {
assert.Equal(t, reminder, &out) assert.Equal(t, reminder, &out)
} }
func testGetPostReminders(t *testing.T, ss store.Store, s SqlStore) { func testGetPostReminders(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
times := []int64{100, 101, 102} times := []int64{100, 101, 102}
for _, tt := range times { for _, tt := range times {
userID := NewTestId() userID := NewTestId()
@@ -4837,7 +4838,7 @@ func testGetPostReminders(t *testing.T, ss store.Store, s SqlStore) {
require.Len(t, reminders, 0) require.Len(t, reminders, 0)
} }
func testGetPostReminderMetadata(t *testing.T, ss store.Store, s SqlStore) { func testGetPostReminderMetadata(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
team := &model.Team{ team := &model.Team{
Name: "teamname", Name: "teamname",
DisplayName: "display", DisplayName: "display",
@@ -4917,7 +4918,7 @@ func getPostIds(posts []*model.Post, morePosts ...*model.Post) []string {
return ids return ids
} }
func testGetNthRecentPostTime(t *testing.T, ss store.Store) { func testGetNthRecentPostTime(t *testing.T, rctx request.CTX, ss store.Store) {
_, err := ss.Post().GetNthRecentPostTime(0) _, err := ss.Post().GetNthRecentPostTime(0)
assert.Error(t, err) assert.Error(t, err)
_, err = ss.Post().GetNthRecentPostTime(-1) _, err = ss.Post().GetNthRecentPostTime(-1)
@@ -5012,7 +5013,7 @@ func testGetNthRecentPostTime(t *testing.T, ss store.Store) {
assert.IsType(t, &store.ErrNotFound{}, err) assert.IsType(t, &store.ErrNotFound{}, err)
} }
func testGetEditHistoryForPost(t *testing.T, ss store.Store) { func testGetEditHistoryForPost(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("should return edit history for post", func(t *testing.T) { t.Run("should return edit history for post", func(t *testing.T) {
// create a post // create a post
post := &model.Post{ post := &model.Post{

Просмотреть файл

@@ -10,22 +10,23 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestPreferenceStore(t *testing.T, ss store.Store) { func TestPreferenceStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("PreferenceSave", func(t *testing.T) { testPreferenceSave(t, ss) }) t.Run("PreferenceSave", func(t *testing.T) { testPreferenceSave(t, rctx, ss) })
t.Run("PreferenceGet", func(t *testing.T) { testPreferenceGet(t, ss) }) t.Run("PreferenceGet", func(t *testing.T) { testPreferenceGet(t, rctx, ss) })
t.Run("PreferenceGetCategory", func(t *testing.T) { testPreferenceGetCategory(t, ss) }) t.Run("PreferenceGetCategory", func(t *testing.T) { testPreferenceGetCategory(t, rctx, ss) })
t.Run("PreferenceGetAll", func(t *testing.T) { testPreferenceGetAll(t, ss) }) t.Run("PreferenceGetAll", func(t *testing.T) { testPreferenceGetAll(t, rctx, ss) })
t.Run("PreferenceDeleteByUser", func(t *testing.T) { testPreferenceDeleteByUser(t, ss) }) t.Run("PreferenceDeleteByUser", func(t *testing.T) { testPreferenceDeleteByUser(t, rctx, ss) })
t.Run("PreferenceDelete", func(t *testing.T) { testPreferenceDelete(t, ss) }) t.Run("PreferenceDelete", func(t *testing.T) { testPreferenceDelete(t, rctx, ss) })
t.Run("PreferenceDeleteCategory", func(t *testing.T) { testPreferenceDeleteCategory(t, ss) }) t.Run("PreferenceDeleteCategory", func(t *testing.T) { testPreferenceDeleteCategory(t, rctx, ss) })
t.Run("PreferenceDeleteCategoryAndName", func(t *testing.T) { testPreferenceDeleteCategoryAndName(t, ss) }) t.Run("PreferenceDeleteCategoryAndName", func(t *testing.T) { testPreferenceDeleteCategoryAndName(t, rctx, ss) })
t.Run("PreferenceDeleteOrphanedRows", func(t *testing.T) { testPreferenceDeleteOrphanedRows(t, ss) }) t.Run("PreferenceDeleteOrphanedRows", func(t *testing.T) { testPreferenceDeleteOrphanedRows(t, rctx, ss) })
} }
func testPreferenceSave(t *testing.T, ss store.Store) { func testPreferenceSave(t *testing.T, rctx request.CTX, ss store.Store) {
id := model.NewId() id := model.NewId()
preferences := model.Preferences{ preferences := model.Preferences{
@@ -61,7 +62,7 @@ func testPreferenceSave(t *testing.T, ss store.Store) {
} }
} }
func testPreferenceGet(t *testing.T, ss store.Store) { func testPreferenceGet(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
category := model.PreferenceCategoryDirectChannelShow category := model.PreferenceCategoryDirectChannelShow
name := model.NewId() name := model.NewId()
@@ -101,7 +102,7 @@ func testPreferenceGet(t *testing.T, ss store.Store) {
require.Error(t, err, "no error on getting a missing preference") require.Error(t, err, "no error on getting a missing preference")
} }
func testPreferenceGetCategory(t *testing.T, ss store.Store) { func testPreferenceGetCategory(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
category := model.PreferenceCategoryDirectChannelShow category := model.PreferenceCategoryDirectChannelShow
name := model.NewId() name := model.NewId()
@@ -150,7 +151,7 @@ func testPreferenceGetCategory(t *testing.T, ss store.Store) {
require.Equal(t, 0, len(preferencesByCategory), "shouldn't have got any preferences") require.Equal(t, 0, len(preferencesByCategory), "shouldn't have got any preferences")
} }
func testPreferenceGetAll(t *testing.T, ss store.Store) { func testPreferenceGetAll(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
category := model.PreferenceCategoryDirectChannelShow category := model.PreferenceCategoryDirectChannelShow
name := model.NewId() name := model.NewId()
@@ -193,7 +194,7 @@ func testPreferenceGetAll(t *testing.T, ss store.Store) {
} }
} }
func testPreferenceDeleteByUser(t *testing.T, ss store.Store) { func testPreferenceDeleteByUser(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
category := model.PreferenceCategoryDirectChannelShow category := model.PreferenceCategoryDirectChannelShow
name := model.NewId() name := model.NewId()
@@ -231,7 +232,7 @@ func testPreferenceDeleteByUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testPreferenceDelete(t *testing.T, ss store.Store) { func testPreferenceDelete(t *testing.T, rctx request.CTX, ss store.Store) {
preference := model.Preference{ preference := model.Preference{
UserId: model.NewId(), UserId: model.NewId(),
Category: model.PreferenceCategoryDirectChannelShow, Category: model.PreferenceCategoryDirectChannelShow,
@@ -253,7 +254,7 @@ func testPreferenceDelete(t *testing.T, ss store.Store) {
assert.Empty(t, preferences, "should've returned no preferences") assert.Empty(t, preferences, "should've returned no preferences")
} }
func testPreferenceDeleteCategory(t *testing.T, ss store.Store) { func testPreferenceDeleteCategory(t *testing.T, rctx request.CTX, ss store.Store) {
category := model.NewId() category := model.NewId()
userId := model.NewId() userId := model.NewId()
@@ -286,7 +287,7 @@ func testPreferenceDeleteCategory(t *testing.T, ss store.Store) {
assert.Empty(t, preferences, "should've returned no preferences") assert.Empty(t, preferences, "should've returned no preferences")
} }
func testPreferenceDeleteCategoryAndName(t *testing.T, ss store.Store) { func testPreferenceDeleteCategoryAndName(t *testing.T, rctx request.CTX, ss store.Store) {
category := model.NewId() category := model.NewId()
name := model.NewId() name := model.NewId()
userId := model.NewId() userId := model.NewId()
@@ -329,7 +330,7 @@ func testPreferenceDeleteCategoryAndName(t *testing.T, ss store.Store) {
assert.Empty(t, preferences, "should've returned no preference") assert.Empty(t, preferences, "should've returned no preference")
} }
func testPreferenceDeleteOrphanedRows(t *testing.T, ss store.Store) { func testPreferenceDeleteOrphanedRows(t *testing.T, rctx request.CTX, ss store.Store) {
const limit = 1000 const limit = 1000
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",

Просмотреть файл

@@ -9,16 +9,17 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestProductNoticesStore(t *testing.T, ss store.Store) { func TestProductNoticesStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("TestAddViewed", func(t *testing.T) { testAddViewed(t, ss) }) t.Run("TestAddViewed", func(t *testing.T) { testAddViewed(t, rctx, ss) })
t.Run("TestUpdateViewed", func(t *testing.T) { testUpdateViewed(t, ss) }) t.Run("TestUpdateViewed", func(t *testing.T) { testUpdateViewed(t, rctx, ss) })
t.Run("TestClearOld", func(t *testing.T) { testClearOld(t, ss) }) t.Run("TestClearOld", func(t *testing.T) { testClearOld(t, rctx, ss) })
} }
func testAddViewed(t *testing.T, ss store.Store) { func testAddViewed(t *testing.T, rctx request.CTX, ss store.Store) {
notices := []string{"noticeA", "noticeB"} notices := []string{"noticeA", "noticeB"}
defer ss.ProductNotices().Clear(notices) defer ss.ProductNotices().Clear(notices)
@@ -32,7 +33,7 @@ func testAddViewed(t *testing.T, ss store.Store) {
require.Len(t, res, 2) require.Len(t, res, 2)
} }
func testUpdateViewed(t *testing.T, ss store.Store) { func testUpdateViewed(t *testing.T, rctx request.CTX, ss store.Store) {
noticesA := []string{"noticeA", "noticeB"} noticesA := []string{"noticeA", "noticeB"}
noticesB := []string{"noticeB", "noticeC"} noticesB := []string{"noticeB", "noticeC"}
defer ss.ProductNotices().Clear(noticesA) defer ss.ProductNotices().Clear(noticesA)
@@ -57,7 +58,7 @@ func testUpdateViewed(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, res[1].Timestamp, res[0].Timestamp) require.GreaterOrEqual(t, res[1].Timestamp, res[0].Timestamp)
} }
func testClearOld(t *testing.T, ss store.Store) { func testClearOld(t *testing.T, rctx request.CTX, ss store.Store) {
noticesA := []string{"noticeA", "noticeB"} noticesA := []string{"noticeA", "noticeB"}
defer ss.ProductNotices().Clear(noticesA) defer ss.ProductNotices().Clear(noticesA)
// mark two notices // mark two notices

Просмотреть файл

@@ -14,23 +14,24 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/store/retrylayer" "github.com/mattermost/mattermost/server/v8/channels/store/retrylayer"
) )
func TestReactionStore(t *testing.T, ss store.Store, s SqlStore) { func TestReactionStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("ReactionSave", func(t *testing.T) { testReactionSave(t, ss) }) t.Run("ReactionSave", func(t *testing.T) { testReactionSave(t, rctx, ss) })
t.Run("ReactionDelete", func(t *testing.T) { testReactionDelete(t, ss) }) t.Run("ReactionDelete", func(t *testing.T) { testReactionDelete(t, rctx, ss) })
t.Run("ReactionGetForPost", func(t *testing.T) { testReactionGetForPost(t, ss) }) t.Run("ReactionGetForPost", func(t *testing.T) { testReactionGetForPost(t, rctx, ss) })
t.Run("ReactionGetForPostSince", func(t *testing.T) { testReactionGetForPostSince(t, ss, s) }) t.Run("ReactionGetForPostSince", func(t *testing.T) { testReactionGetForPostSince(t, rctx, ss, s) })
t.Run("ReactionDeleteAllWithEmojiName", func(t *testing.T) { testReactionDeleteAllWithEmojiName(t, ss, s) }) t.Run("ReactionDeleteAllWithEmojiName", func(t *testing.T) { testReactionDeleteAllWithEmojiName(t, rctx, ss, s) })
t.Run("PermanentDeleteByUser", func(t *testing.T) { testPermanentDeleteByUser(t, ss) }) t.Run("PermanentDeleteByUser", func(t *testing.T) { testPermanentDeleteByUser(t, rctx, ss) })
t.Run("PermanentDeleteBatch", func(t *testing.T) { testReactionStorePermanentDeleteBatch(t, ss) }) t.Run("PermanentDeleteBatch", func(t *testing.T) { testReactionStorePermanentDeleteBatch(t, rctx, ss) })
t.Run("ReactionBulkGetForPosts", func(t *testing.T) { testReactionBulkGetForPosts(t, ss) }) t.Run("ReactionBulkGetForPosts", func(t *testing.T) { testReactionBulkGetForPosts(t, rctx, ss) })
t.Run("ReactionDeadlock", func(t *testing.T) { testReactionDeadlock(t, ss) }) t.Run("ReactionDeadlock", func(t *testing.T) { testReactionDeadlock(t, rctx, ss) })
} }
func testReactionSave(t *testing.T, ss store.Store) { func testReactionSave(t *testing.T, rctx request.CTX, ss store.Store) {
post, err := ss.Post().Save(&model.Post{ post, err := ss.Post().Save(&model.Post{
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
@@ -131,7 +132,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
}) })
} }
func testReactionDelete(t *testing.T, ss store.Store) { func testReactionDelete(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Delete", func(t *testing.T) { t.Run("Delete", func(t *testing.T) {
post, err := ss.Post().Save(&model.Post{ post, err := ss.Post().Save(&model.Post{
ChannelId: model.NewId(), ChannelId: model.NewId(),
@@ -201,7 +202,7 @@ func testReactionDelete(t *testing.T, ss store.Store) {
}) })
} }
func testReactionGetForPost(t *testing.T, ss store.Store) { func testReactionGetForPost(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
// create post // create post
post, err := ss.Post().Save(&model.Post{ post, err := ss.Post().Save(&model.Post{
@@ -303,7 +304,7 @@ func testReactionGetForPost(t *testing.T, ss store.Store) {
} }
} }
func testReactionGetForPostSince(t *testing.T, ss store.Store, s SqlStore) { func testReactionGetForPostSince(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
now := model.GetMillis() now := model.GetMillis()
later := now + 1800000 // add 30 minutes later := now + 1800000 // add 30 minutes
remoteId := model.NewId() remoteId := model.NewId()
@@ -467,7 +468,7 @@ func forceNULL(reaction *model.Reaction, s SqlStore) error {
return nil return nil
} }
func testReactionDeleteAllWithEmojiName(t *testing.T, ss store.Store, s SqlStore) { func testReactionDeleteAllWithEmojiName(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
emojiToDelete := model.NewId() emojiToDelete := model.NewId()
post, err1 := ss.Post().Save(&model.Post{ post, err1 := ss.Post().Save(&model.Post{
@@ -561,7 +562,7 @@ func testReactionDeleteAllWithEmojiName(t *testing.T, ss store.Store, s SqlStore
assert.False(t, postList.Posts[post3.Id].HasReactions, "post shouldn't have reactions any more") assert.False(t, postList.Posts[post3.Id].HasReactions, "post shouldn't have reactions any more")
} }
func testPermanentDeleteByUser(t *testing.T, ss store.Store) { func testPermanentDeleteByUser(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
post, err1 := ss.Post().Save(&model.Post{ post, err1 := ss.Post().Save(&model.Post{
ChannelId: model.NewId(), ChannelId: model.NewId(),
@@ -646,7 +647,7 @@ func testPermanentDeleteByUser(t *testing.T, ss store.Store) {
assert.False(t, postList.Posts[post3.Id].HasReactions, "post shouldn't have reactions any more") assert.False(t, postList.Posts[post3.Id].HasReactions, "post shouldn't have reactions any more")
} }
func testReactionStorePermanentDeleteBatch(t *testing.T, ss store.Store) { func testReactionStorePermanentDeleteBatch(t *testing.T, rctx request.CTX, ss store.Store) {
const limit = 1000 const limit = 1000
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",
@@ -727,7 +728,7 @@ func testReactionStorePermanentDeleteBatch(t *testing.T, ss store.Store) {
require.Len(t, returned, 1, "reactions for newer post should not have been deleted") require.Len(t, returned, 1, "reactions for newer post should not have been deleted")
} }
func testReactionBulkGetForPosts(t *testing.T, ss store.Store) { func testReactionBulkGetForPosts(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
post, _ := ss.Post().Save(&model.Post{ post, _ := ss.Post().Save(&model.Post{
ChannelId: model.NewId(), ChannelId: model.NewId(),
@@ -806,7 +807,7 @@ func testReactionBulkGetForPosts(t *testing.T, ss store.Store) {
// testReactionDeadlock is a best-case attempt to recreate the deadlock scenario. // testReactionDeadlock is a best-case attempt to recreate the deadlock scenario.
// It at least deadlocks 2 times out of 5. // It at least deadlocks 2 times out of 5.
func testReactionDeadlock(t *testing.T, ss store.Store) { func testReactionDeadlock(t *testing.T, rctx request.CTX, ss store.Store) {
ss = retrylayer.New(ss) ss = retrylayer.New(ss)
post, err := ss.Post().Save(&model.Post{ post, err := ss.Post().Save(&model.Post{

Просмотреть файл

@@ -8,24 +8,25 @@ import (
"testing" "testing"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestRemoteClusterStore(t *testing.T, ss store.Store) { func TestRemoteClusterStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("RemoteClusterGetAllInChannel", func(t *testing.T) { testRemoteClusterGetAllInChannel(t, ss) }) t.Run("RemoteClusterGetAllInChannel", func(t *testing.T) { testRemoteClusterGetAllInChannel(t, rctx, ss) })
t.Run("RemoteClusterGetAllNotInChannel", func(t *testing.T) { testRemoteClusterGetAllNotInChannel(t, ss) }) t.Run("RemoteClusterGetAllNotInChannel", func(t *testing.T) { testRemoteClusterGetAllNotInChannel(t, rctx, ss) })
t.Run("RemoteClusterSave", func(t *testing.T) { testRemoteClusterSave(t, ss) }) t.Run("RemoteClusterSave", func(t *testing.T) { testRemoteClusterSave(t, rctx, ss) })
t.Run("RemoteClusterDelete", func(t *testing.T) { testRemoteClusterDelete(t, ss) }) t.Run("RemoteClusterDelete", func(t *testing.T) { testRemoteClusterDelete(t, rctx, ss) })
t.Run("RemoteClusterGet", func(t *testing.T) { testRemoteClusterGet(t, ss) }) t.Run("RemoteClusterGet", func(t *testing.T) { testRemoteClusterGet(t, rctx, ss) })
t.Run("RemoteClusterGetAll", func(t *testing.T) { testRemoteClusterGetAll(t, ss) }) t.Run("RemoteClusterGetAll", func(t *testing.T) { testRemoteClusterGetAll(t, rctx, ss) })
t.Run("RemoteClusterGetByTopic", func(t *testing.T) { testRemoteClusterGetByTopic(t, ss) }) t.Run("RemoteClusterGetByTopic", func(t *testing.T) { testRemoteClusterGetByTopic(t, rctx, ss) })
t.Run("RemoteClusterUpdateTopics", func(t *testing.T) { testRemoteClusterUpdateTopics(t, ss) }) t.Run("RemoteClusterUpdateTopics", func(t *testing.T) { testRemoteClusterUpdateTopics(t, rctx, ss) })
} }
func testRemoteClusterSave(t *testing.T, ss store.Store) { func testRemoteClusterSave(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save", func(t *testing.T) { t.Run("Save", func(t *testing.T) {
rc := &model.RemoteCluster{ rc := &model.RemoteCluster{
Name: "some_remote", Name: "some_remote",
@@ -60,7 +61,7 @@ func testRemoteClusterSave(t *testing.T, ss store.Store) {
}) })
} }
func testRemoteClusterDelete(t *testing.T, ss store.Store) { func testRemoteClusterDelete(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Delete", func(t *testing.T) { t.Run("Delete", func(t *testing.T) {
rc := &model.RemoteCluster{ rc := &model.RemoteCluster{
Name: "shortlived_remote", Name: "shortlived_remote",
@@ -82,7 +83,7 @@ func testRemoteClusterDelete(t *testing.T, ss store.Store) {
}) })
} }
func testRemoteClusterGet(t *testing.T, ss store.Store) { func testRemoteClusterGet(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Get", func(t *testing.T) { t.Run("Get", func(t *testing.T) {
rc := &model.RemoteCluster{ rc := &model.RemoteCluster{
Name: "shortlived_remote_2", Name: "shortlived_remote_2",
@@ -103,7 +104,7 @@ func testRemoteClusterGet(t *testing.T, ss store.Store) {
}) })
} }
func testRemoteClusterGetAll(t *testing.T, ss store.Store) { func testRemoteClusterGetAll(t *testing.T, rctx request.CTX, ss store.Store) {
require.NoError(t, clearRemoteClusters(ss)) require.NoError(t, clearRemoteClusters(ss))
userId := model.NewId() userId := model.NewId()
@@ -208,7 +209,7 @@ func testRemoteClusterGetAll(t *testing.T, ss store.Store) {
}) })
} }
func testRemoteClusterGetAllInChannel(t *testing.T, ss store.Store) { func testRemoteClusterGetAllInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
require.NoError(t, clearRemoteClusters(ss)) require.NoError(t, clearRemoteClusters(ss))
now := model.GetMillis() now := model.GetMillis()
@@ -316,7 +317,7 @@ func testRemoteClusterGetAllInChannel(t *testing.T, ss store.Store) {
}) })
} }
func testRemoteClusterGetAllNotInChannel(t *testing.T, ss store.Store) { func testRemoteClusterGetAllNotInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
require.NoError(t, clearRemoteClusters(ss)) require.NoError(t, clearRemoteClusters(ss))
userId := model.NewId() userId := model.NewId()
@@ -421,7 +422,7 @@ func getIds(remotes []*model.RemoteCluster) []string {
return ids return ids
} }
func testRemoteClusterGetByTopic(t *testing.T, ss store.Store) { func testRemoteClusterGetByTopic(t *testing.T, rctx request.CTX, ss store.Store) {
require.NoError(t, clearRemoteClusters(ss)) require.NoError(t, clearRemoteClusters(ss))
rcData := []*model.RemoteCluster{ rcData := []*model.RemoteCluster{
@@ -466,7 +467,7 @@ func testRemoteClusterGetByTopic(t *testing.T, ss store.Store) {
} }
} }
func testRemoteClusterUpdateTopics(t *testing.T, ss store.Store) { func testRemoteClusterUpdateTopics(t *testing.T, rctx request.CTX, ss store.Store) {
remoteId := model.NewId() remoteId := model.NewId()
rc := &model.RemoteCluster{ rc := &model.RemoteCluster{
DisplayName: "Blap Inc", DisplayName: "Blap Inc",

Просмотреть файл

@@ -11,23 +11,24 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestRetentionPolicyStore(t *testing.T, ss store.Store, s SqlStore) { func TestRetentionPolicyStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("Save", func(t *testing.T) { testRetentionPolicyStoreSave(t, ss, s) }) t.Run("Save", func(t *testing.T) { testRetentionPolicyStoreSave(t, rctx, ss, s) })
t.Run("Patch", func(t *testing.T) { testRetentionPolicyStorePatch(t, ss, s) }) t.Run("Patch", func(t *testing.T) { testRetentionPolicyStorePatch(t, rctx, ss, s) })
t.Run("Get", func(t *testing.T) { testRetentionPolicyStoreGet(t, ss, s) }) t.Run("Get", func(t *testing.T) { testRetentionPolicyStoreGet(t, rctx, ss, s) })
t.Run("GetCount", func(t *testing.T) { testRetentionPolicyStoreGetCount(t, ss, s) }) t.Run("GetCount", func(t *testing.T) { testRetentionPolicyStoreGetCount(t, rctx, ss, s) })
t.Run("Delete", func(t *testing.T) { testRetentionPolicyStoreDelete(t, ss, s) }) t.Run("Delete", func(t *testing.T) { testRetentionPolicyStoreDelete(t, rctx, ss, s) })
t.Run("GetChannels", func(t *testing.T) { testRetentionPolicyStoreGetChannels(t, ss, s) }) t.Run("GetChannels", func(t *testing.T) { testRetentionPolicyStoreGetChannels(t, rctx, ss, s) })
t.Run("AddChannels", func(t *testing.T) { testRetentionPolicyStoreAddChannels(t, ss, s) }) t.Run("AddChannels", func(t *testing.T) { testRetentionPolicyStoreAddChannels(t, rctx, ss, s) })
t.Run("RemoveChannels", func(t *testing.T) { testRetentionPolicyStoreRemoveChannels(t, ss, s) }) t.Run("RemoveChannels", func(t *testing.T) { testRetentionPolicyStoreRemoveChannels(t, rctx, ss, s) })
t.Run("GetTeams", func(t *testing.T) { testRetentionPolicyStoreGetTeams(t, ss, s) }) t.Run("GetTeams", func(t *testing.T) { testRetentionPolicyStoreGetTeams(t, rctx, ss, s) })
t.Run("AddTeams", func(t *testing.T) { testRetentionPolicyStoreAddTeams(t, ss, s) }) t.Run("AddTeams", func(t *testing.T) { testRetentionPolicyStoreAddTeams(t, rctx, ss, s) })
t.Run("RemoveTeams", func(t *testing.T) { testRetentionPolicyStoreRemoveTeams(t, ss, s) }) t.Run("RemoveTeams", func(t *testing.T) { testRetentionPolicyStoreRemoveTeams(t, rctx, ss, s) })
t.Run("RemoveOrphanedRows", func(t *testing.T) { testRetentionPolicyStoreRemoveOrphanedRows(t, ss, s) }) t.Run("RemoveOrphanedRows", func(t *testing.T) { testRetentionPolicyStoreRemoveOrphanedRows(t, rctx, ss, s) })
t.Run("GetPoliciesForUser", func(t *testing.T) { testRetentionPolicyStoreGetPoliciesForUser(t, ss, s) }) t.Run("GetPoliciesForUser", func(t *testing.T) { testRetentionPolicyStoreGetPoliciesForUser(t, rctx, ss, s) })
} }
func getRetentionPolicyWithTeamAndChannelIds(t *testing.T, ss store.Store, policyID string) *model.RetentionPolicyWithTeamAndChannelIDs { func getRetentionPolicyWithTeamAndChannelIds(t *testing.T, ss store.Store, policyID string) *model.RetentionPolicyWithTeamAndChannelIDs {
@@ -138,7 +139,7 @@ func createTeamsForRetentionPolicy(t *testing.T, ss store.Store, numTeams int) (
return return
} }
func createTeamsAndChannelsForRetentionPolicy(t *testing.T, ss store.Store) (teamIDs, channelIDs []string) { func createTeamsAndChannelsForRetentionPolicy(t *testing.T, rctx request.CTX, ss store.Store) (teamIDs, channelIDs []string) {
teamIDs = createTeamsForRetentionPolicy(t, ss, 2) teamIDs = createTeamsForRetentionPolicy(t, ss, 2)
channels1 := createChannelsForRetentionPolicy(t, ss, teamIDs[0], 1) channels1 := createChannelsForRetentionPolicy(t, ss, teamIDs[0], 1)
channels2 := createChannelsForRetentionPolicy(t, ss, teamIDs[1], 2) channels2 := createChannelsForRetentionPolicy(t, ss, teamIDs[1], 2)
@@ -197,7 +198,7 @@ func restoreRetentionPolicy(t *testing.T, ss store.Store, policy *model.Retentio
checkRetentionPolicyLikeThisExists(t, ss, policy) checkRetentionPolicyLikeThisExists(t, ss, policy)
} }
func testRetentionPolicyStoreSave(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreSave(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
defer cleanupRetentionPolicyTest(s) defer cleanupRetentionPolicyTest(s)
t.Run("teams and channels are nil", func(t *testing.T) { t.Run("teams and channels are nil", func(t *testing.T) {
@@ -211,7 +212,7 @@ func testRetentionPolicyStoreSave(t *testing.T, ss store.Store, s SqlStore) {
checkRetentionPolicyLikeThisExists(t, ss, policy) checkRetentionPolicyLikeThisExists(t, ss, policy)
}) })
t.Run("some teams and channels are specified", func(t *testing.T) { t.Run("some teams and channels are specified", func(t *testing.T) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 3", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 3", teamIDs, channelIDs)
checkRetentionPolicyLikeThisExists(t, ss, policy) checkRetentionPolicyLikeThisExists(t, ss, policy)
@@ -228,8 +229,8 @@ func testRetentionPolicyStoreSave(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testRetentionPolicyStorePatch(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStorePatch(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
@@ -322,7 +323,7 @@ func testRetentionPolicyStorePatch(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testRetentionPolicyStoreGet(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreGet(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("get none", func(t *testing.T) { t.Run("get none", func(t *testing.T) {
retrievedPolicies, err := ss.RetentionPolicy().GetAll(0, 10) retrievedPolicies, err := ss.RetentionPolicy().GetAll(0, 10)
require.NoError(t, err) require.NoError(t, err)
@@ -333,7 +334,7 @@ func testRetentionPolicyStoreGet(t *testing.T, ss store.Store, s SqlStore) {
// create multiple policies // create multiple policies
policiesWithCounts := make([]*model.RetentionPolicyWithTeamAndChannelCounts, 0) policiesWithCounts := make([]*model.RetentionPolicyWithTeamAndChannelCounts, 0)
for i := 0; i < 3; i++ { for i := 0; i < 3; i++ {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
policyWithIds := createRetentionPolicyWithTeamAndChannelIds( policyWithIds := createRetentionPolicyWithTeamAndChannelIds(
"Policy "+strconv.Itoa(i+1), teamIDs, channelIDs) "Policy "+strconv.Itoa(i+1), teamIDs, channelIDs)
@@ -361,7 +362,7 @@ func testRetentionPolicyStoreGet(t *testing.T, ss store.Store, s SqlStore) {
}) })
t.Run("get all with same display name", func(t *testing.T) { t.Run("get all with same display name", func(t *testing.T) {
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
proposal := createRetentionPolicyWithTeamAndChannelIds( proposal := createRetentionPolicyWithTeamAndChannelIds(
"Policy Name", teamIDs, channelIDs) "Policy Name", teamIDs, channelIDs)
@@ -380,7 +381,7 @@ func testRetentionPolicyStoreGet(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testRetentionPolicyStoreGetCount(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreGetCount(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
defer cleanupRetentionPolicyTest(s) defer cleanupRetentionPolicyTest(s)
t.Run("no policies", func(t *testing.T) { t.Run("no policies", func(t *testing.T) {
@@ -398,8 +399,8 @@ func testRetentionPolicyStoreGetCount(t *testing.T, ss store.Store, s SqlStore)
}) })
} }
func testRetentionPolicyStoreDelete(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreDelete(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
@@ -414,7 +415,7 @@ func testRetentionPolicyStoreDelete(t *testing.T, ss store.Store, s SqlStore) {
}) })
} }
func testRetentionPolicyStoreGetChannels(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreGetChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
defer cleanupRetentionPolicyTest(s) defer cleanupRetentionPolicyTest(s)
t.Run("no channels", func(t *testing.T) { t.Run("no channels", func(t *testing.T) {
@@ -424,7 +425,7 @@ func testRetentionPolicyStoreGetChannels(t *testing.T, ss store.Store, s SqlStor
require.Len(t, channels, 0) require.Len(t, channels, 0)
}) })
t.Run("some channels", func(t *testing.T) { t.Run("some channels", func(t *testing.T) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 2", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 2", teamIDs, channelIDs)
channels, err := ss.RetentionPolicy().GetChannels(policy.ID, 0, len(channelIDs)) channels, err := ss.RetentionPolicy().GetChannels(policy.ID, 0, len(channelIDs))
@@ -440,8 +441,8 @@ func testRetentionPolicyStoreGetChannels(t *testing.T, ss store.Store, s SqlStor
}) })
} }
func testRetentionPolicyStoreAddChannels(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreAddChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
@@ -475,8 +476,8 @@ func testRetentionPolicyStoreAddChannels(t *testing.T, ss store.Store, s SqlStor
}) })
} }
func testRetentionPolicyStoreRemoveChannels(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreRemoveChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
@@ -510,7 +511,7 @@ func testRetentionPolicyStoreRemoveChannels(t *testing.T, ss store.Store, s SqlS
}) })
} }
func testRetentionPolicyStoreGetTeams(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreGetTeams(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
defer cleanupRetentionPolicyTest(s) defer cleanupRetentionPolicyTest(s)
t.Run("no teams", func(t *testing.T) { t.Run("no teams", func(t *testing.T) {
@@ -520,7 +521,7 @@ func testRetentionPolicyStoreGetTeams(t *testing.T, ss store.Store, s SqlStore)
require.Len(t, teams, 0) require.Len(t, teams, 0)
}) })
t.Run("some teams", func(t *testing.T) { t.Run("some teams", func(t *testing.T) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 2", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 2", teamIDs, channelIDs)
teams, err := ss.RetentionPolicy().GetTeams(policy.ID, 0, len(teamIDs)) teams, err := ss.RetentionPolicy().GetTeams(policy.ID, 0, len(teamIDs))
@@ -536,8 +537,8 @@ func testRetentionPolicyStoreGetTeams(t *testing.T, ss store.Store, s SqlStore)
}) })
} }
func testRetentionPolicyStoreAddTeams(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreAddTeams(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
@@ -571,8 +572,8 @@ func testRetentionPolicyStoreAddTeams(t *testing.T, ss store.Store, s SqlStore)
}) })
} }
func testRetentionPolicyStoreRemoveTeams(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreRemoveTeams(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs) policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
@@ -606,8 +607,8 @@ func testRetentionPolicyStoreRemoveTeams(t *testing.T, ss store.Store, s SqlStor
}) })
} }
func testRetentionPolicyStoreGetPoliciesForUser(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreGetPoliciesForUser(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss) teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs) saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", teamIDs, channelIDs)
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs) defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
@@ -662,7 +663,7 @@ func testRetentionPolicyStoreGetPoliciesForUser(t *testing.T, ss store.Store, s
}) })
} }
func testRetentionPolicyStoreRemoveOrphanedRows(t *testing.T, ss store.Store, s SqlStore) { func testRetentionPolicyStoreRemoveOrphanedRows(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamID := createTeamsForRetentionPolicy(t, ss, 1)[0] teamID := createTeamsForRetentionPolicy(t, ss, 1)[0]
channelID := createChannelsForRetentionPolicy(t, ss, teamID, 1)[0] channelID := createChannelsForRetentionPolicy(t, ss, teamID, 1)[0]
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1",

Просмотреть файл

@@ -12,22 +12,25 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestRoleStore(t *testing.T, ss store.Store, s SqlStore) { func TestRoleStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("Save", func(t *testing.T) { testRoleStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testRoleStoreSave(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testRoleStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testRoleStoreGet(t, rctx, ss) })
t.Run("GetAll", func(t *testing.T) { testRoleStoreGetAll(t, ss) }) t.Run("GetAll", func(t *testing.T) { testRoleStoreGetAll(t, rctx, ss) })
t.Run("GetByName", func(t *testing.T) { testRoleStoreGetByName(t, ss) }) t.Run("GetByName", func(t *testing.T) { testRoleStoreGetByName(t, rctx, ss) })
t.Run("GetNames", func(t *testing.T) { testRoleStoreGetByNames(t, ss) }) t.Run("GetNames", func(t *testing.T) { testRoleStoreGetByNames(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testRoleStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testRoleStoreDelete(t, rctx, ss) })
t.Run("PermanentDeleteAll", func(t *testing.T) { testRoleStorePermanentDeleteAll(t, ss) }) t.Run("PermanentDeleteAll", func(t *testing.T) { testRoleStorePermanentDeleteAll(t, rctx, ss) })
t.Run("LowerScopedChannelSchemeRoles_AllChannelSchemeRoles", func(t *testing.T) { testRoleStoreLowerScopedChannelSchemeRoles(t, ss) }) t.Run("LowerScopedChannelSchemeRoles_AllChannelSchemeRoles", func(t *testing.T) { testRoleStoreLowerScopedChannelSchemeRoles(t, rctx, ss) })
t.Run("ChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest", func(t *testing.T) { testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t, ss, s) }) t.Run("ChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest", func(t *testing.T) {
testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t, rctx, ss, s)
})
} }
func testRoleStoreSave(t *testing.T, ss store.Store) { func testRoleStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a new role. // Save a new role.
r1 := &model.Role{ r1 := &model.Role{
Name: model.NewId(), Name: model.NewId(),
@@ -100,7 +103,7 @@ func testRoleStoreSave(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testRoleStoreGetAll(t *testing.T, ss store.Store) { func testRoleStoreGetAll(t *testing.T, rctx request.CTX, ss store.Store) {
prev, err := ss.Role().GetAll() prev, err := ss.Role().GetAll()
require.NoError(t, err) require.NoError(t, err)
prevCount := len(prev) prevCount := len(prev)
@@ -140,7 +143,7 @@ func testRoleStoreGetAll(t *testing.T, ss store.Store) {
assert.Len(t, data, prevCount+2) assert.Len(t, data, prevCount+2)
} }
func testRoleStoreGet(t *testing.T, ss store.Store) { func testRoleStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a role to test with. // Save a role to test with.
r1 := &model.Role{ r1 := &model.Role{
Name: model.NewId(), Name: model.NewId(),
@@ -173,7 +176,7 @@ func testRoleStoreGet(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testRoleStoreGetByName(t *testing.T, ss store.Store) { func testRoleStoreGetByName(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a role to test with. // Save a role to test with.
r1 := &model.Role{ r1 := &model.Role{
Name: model.NewId(), Name: model.NewId(),
@@ -206,7 +209,7 @@ func testRoleStoreGetByName(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testRoleStoreGetByNames(t *testing.T, ss store.Store) { func testRoleStoreGetByNames(t *testing.T, rctx request.CTX, ss store.Store) {
// Save some roles to test with. // Save some roles to test with.
r1 := &model.Role{ r1 := &model.Role{
Name: model.NewId(), Name: model.NewId(),
@@ -279,7 +282,7 @@ func testRoleStoreGetByNames(t *testing.T, ss store.Store) {
assert.NotContains(t, roles6, d3) assert.NotContains(t, roles6, d3)
} }
func testRoleStoreDelete(t *testing.T, ss store.Store) { func testRoleStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a role to test with. // Save a role to test with.
r1 := &model.Role{ r1 := &model.Role{
Name: model.NewId(), Name: model.NewId(),
@@ -319,7 +322,7 @@ func testRoleStoreDelete(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testRoleStorePermanentDeleteAll(t *testing.T, ss store.Store) { func testRoleStorePermanentDeleteAll(t *testing.T, rctx request.CTX, ss store.Store) {
r1 := &model.Role{ r1 := &model.Role{
Name: model.NewId(), Name: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -361,7 +364,7 @@ func testRoleStorePermanentDeleteAll(t *testing.T, ss store.Store) {
assert.Empty(t, roles) assert.Empty(t, roles)
} }
func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) { func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, rctx request.CTX, ss store.Store) {
createDefaultRoles(ss) createDefaultRoles(ss)
teamScheme1 := &model.Scheme{ teamScheme1 := &model.Scheme{
@@ -517,7 +520,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
}) })
} }
func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *testing.T, ss store.Store, s SqlStore) { func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
teamScheme := &model.Scheme{ teamScheme := &model.Scheme{
DisplayName: model.NewId(), DisplayName: model.NewId(),
Name: model.NewId(), Name: model.NewId(),

Просмотреть файл

@@ -11,20 +11,21 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestSchemeStore(t *testing.T, ss store.Store) { func TestSchemeStore(t *testing.T, rctx request.CTX, ss store.Store) {
createDefaultRoles(ss) createDefaultRoles(ss)
t.Run("Save", func(t *testing.T) { testSchemeStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testSchemeStoreSave(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testSchemeStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testSchemeStoreGet(t, rctx, ss) })
t.Run("GetAllPage", func(t *testing.T) { testSchemeStoreGetAllPage(t, ss) }) t.Run("GetAllPage", func(t *testing.T) { testSchemeStoreGetAllPage(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testSchemeStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testSchemeStoreDelete(t, rctx, ss) })
t.Run("PermanentDeleteAll", func(t *testing.T) { testSchemeStorePermanentDeleteAll(t, ss) }) t.Run("PermanentDeleteAll", func(t *testing.T) { testSchemeStorePermanentDeleteAll(t, rctx, ss) })
t.Run("GetByName", func(t *testing.T) { testSchemeStoreGetByName(t, ss) }) t.Run("GetByName", func(t *testing.T) { testSchemeStoreGetByName(t, rctx, ss) })
t.Run("CountByScope", func(t *testing.T) { testSchemeStoreCountByScope(t, ss) }) t.Run("CountByScope", func(t *testing.T) { testSchemeStoreCountByScope(t, rctx, ss) })
t.Run("CountWithoutPermission", func(t *testing.T) { testCountWithoutPermission(t, ss) }) t.Run("CountWithoutPermission", func(t *testing.T) { testCountWithoutPermission(t, rctx, ss) })
} }
func createDefaultRoles(ss store.Store) { func createDefaultRoles(ss store.Store) {
@@ -115,7 +116,7 @@ func createDefaultRoles(ss store.Store) {
}) })
} }
func testSchemeStoreSave(t *testing.T, ss store.Store) { func testSchemeStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a new scheme. // Save a new scheme.
s1 := &model.Scheme{ s1 := &model.Scheme{
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -206,7 +207,7 @@ func testSchemeStoreSave(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testSchemeStoreGet(t *testing.T, ss store.Store) { func testSchemeStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a scheme to test with. // Save a scheme to test with.
s1 := &model.Scheme{ s1 := &model.Scheme{
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -242,7 +243,7 @@ func testSchemeStoreGet(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testSchemeStoreGetByName(t *testing.T, ss store.Store) { func testSchemeStoreGetByName(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a scheme to test with. // Save a scheme to test with.
s1 := &model.Scheme{ s1 := &model.Scheme{
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -278,7 +279,7 @@ func testSchemeStoreGetByName(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testSchemeStoreGetAllPage(t *testing.T, ss store.Store) { func testSchemeStoreGetAllPage(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a scheme to test with. // Save a scheme to test with.
schemes := []*model.Scheme{ schemes := []*model.Scheme{
{ {
@@ -343,7 +344,7 @@ func testSchemeStoreGetAllPage(t *testing.T, ss store.Store) {
} }
} }
func testSchemeStoreDelete(t *testing.T, ss store.Store) { func testSchemeStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
// Save a new scheme. // Save a new scheme.
s1 := &model.Scheme{ s1 := &model.Scheme{
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -490,7 +491,7 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
assert.Equal(t, "", *c6.SchemeId) assert.Equal(t, "", *c6.SchemeId)
} }
func testSchemeStorePermanentDeleteAll(t *testing.T, ss store.Store) { func testSchemeStorePermanentDeleteAll(t *testing.T, rctx request.CTX, ss store.Store) {
s1 := &model.Scheme{ s1 := &model.Scheme{
Name: model.NewId(), Name: model.NewId(),
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -524,7 +525,7 @@ func testSchemeStorePermanentDeleteAll(t *testing.T, ss store.Store) {
assert.Empty(t, schemes) assert.Empty(t, schemes)
} }
func testSchemeStoreCountByScope(t *testing.T, ss store.Store) { func testSchemeStoreCountByScope(t *testing.T, rctx request.CTX, ss store.Store) {
testCounts := func(expectedTeamCount, expectedChannelCount int) { testCounts := func(expectedTeamCount, expectedChannelCount int) {
actualCount, err := ss.Scheme().CountByScope(model.SchemeScopeTeam) actualCount, err := ss.Scheme().CountByScope(model.SchemeScopeTeam)
require.NoError(t, err) require.NoError(t, err)
@@ -557,7 +558,7 @@ func testSchemeStoreCountByScope(t *testing.T, ss store.Store) {
testCounts(2, 2) testCounts(2, 2)
} }
func testCountWithoutPermission(t *testing.T, ss store.Store) { func testCountWithoutPermission(t *testing.T, rctx request.CTX, ss store.Store) {
perm := model.PermissionCreatePost.Id perm := model.PermissionCreatePost.Id
createScheme := func(scope string) *model.Scheme { createScheme := func(scope string) *model.Scheme {

Просмотреть файл

@@ -18,59 +18,55 @@ const (
TenMinutes = 600000 TenMinutes = 600000
) )
func TestSessionStore(t *testing.T, ss store.Store) { func TestSessionStore(t *testing.T, rctx request.CTX, ss store.Store) {
// Run serially to prevent interfering with other tests // Run serially to prevent interfering with other tests
testSessionCleanup(t, ss) testSessionCleanup(t, rctx, ss)
t.Run("Save", func(t *testing.T) { testSessionStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testSessionStoreSave(t, rctx, ss) })
t.Run("SessionGet", func(t *testing.T) { testSessionGet(t, ss) }) t.Run("SessionGet", func(t *testing.T) { testSessionGet(t, rctx, ss) })
t.Run("SessionGetWithDeviceId", func(t *testing.T) { testSessionGetWithDeviceId(t, ss) }) t.Run("SessionGetWithDeviceId", func(t *testing.T) { testSessionGetWithDeviceId(t, rctx, ss) })
t.Run("SessionRemove", func(t *testing.T) { testSessionRemove(t, ss) }) t.Run("SessionRemove", func(t *testing.T) { testSessionRemove(t, rctx, ss) })
t.Run("SessionRemoveAll", func(t *testing.T) { testSessionRemoveAll(t, ss) }) t.Run("SessionRemoveAll", func(t *testing.T) { testSessionRemoveAll(t, rctx, ss) })
t.Run("SessionRemoveByUser", func(t *testing.T) { testSessionRemoveByUser(t, ss) }) t.Run("SessionRemoveByUser", func(t *testing.T) { testSessionRemoveByUser(t, rctx, ss) })
t.Run("SessionRemoveToken", func(t *testing.T) { testSessionRemoveToken(t, ss) }) t.Run("SessionRemoveToken", func(t *testing.T) { testSessionRemoveToken(t, rctx, ss) })
t.Run("SessionUpdateDeviceId", func(t *testing.T) { testSessionUpdateDeviceId(t, ss) }) t.Run("SessionUpdateDeviceId", func(t *testing.T) { testSessionUpdateDeviceId(t, rctx, ss) })
t.Run("SessionUpdateDeviceId2", func(t *testing.T) { testSessionUpdateDeviceId2(t, ss) }) t.Run("SessionUpdateDeviceId2", func(t *testing.T) { testSessionUpdateDeviceId2(t, rctx, ss) })
t.Run("UpdateExpiresAt", func(t *testing.T) { testSessionStoreUpdateExpiresAt(t, ss) }) t.Run("UpdateExpiresAt", func(t *testing.T) { testSessionStoreUpdateExpiresAt(t, rctx, ss) })
t.Run("UpdateLastActivityAt", func(t *testing.T) { testSessionStoreUpdateLastActivityAt(t, ss) }) t.Run("UpdateLastActivityAt", func(t *testing.T) { testSessionStoreUpdateLastActivityAt(t, rctx, ss) })
t.Run("SessionCount", func(t *testing.T) { testSessionCount(t, ss) }) t.Run("SessionCount", func(t *testing.T) { testSessionCount(t, rctx, ss) })
t.Run("GetSessionsExpired", func(t *testing.T) { testGetSessionsExpired(t, ss) }) t.Run("GetSessionsExpired", func(t *testing.T) { testGetSessionsExpired(t, rctx, ss) })
t.Run("UpdateExpiredNotify", func(t *testing.T) { testUpdateExpiredNotify(t, ss) }) t.Run("UpdateExpiredNotify", func(t *testing.T) { testUpdateExpiredNotify(t, rctx, ss) })
} }
func testSessionStoreSave(t *testing.T, ss store.Store) { func testSessionStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
_, err := ss.Session().Save(c, s1) _, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
} }
func testSessionGet(t *testing.T, ss store.Store) { func testSessionGet(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = s1.UserId s2.UserId = s1.UserId
_, err = ss.Session().Save(c, s2) _, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
s3.UserId = s1.UserId s3.UserId = s1.UserId
s3.ExpiresAt = 1 s3.ExpiresAt = 1
_, err = ss.Session().Save(c, s3) _, err = ss.Session().Save(rctx, s3)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
@@ -79,23 +75,21 @@ func testSessionGet(t *testing.T, ss store.Store) {
err = ss.Session().UpdateProps(session) err = ss.Session().UpdateProps(session)
require.NoError(t, err) require.NoError(t, err)
session2, err := ss.Session().Get(c, session.Id) session2, err := ss.Session().Get(rctx, session.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, session.Props, session2.Props, "should match") require.Equal(t, session.Props, session2.Props, "should match")
data, err := ss.Session().GetSessions(c, s1.UserId) data, err := ss.Session().GetSessions(rctx, s1.UserId)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, data, 3, "should match len") require.Len(t, data, 3, "should match len")
} }
func testSessionGetWithDeviceId(t *testing.T, ss store.Store) { func testSessionGetWithDeviceId(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1.ExpiresAt = model.GetMillis() + 10000 s1.ExpiresAt = model.GetMillis() + 10000
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
@@ -103,7 +97,7 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
s2.DeviceId = model.NewId() s2.DeviceId = model.NewId()
s2.ExpiresAt = model.GetMillis() + 10000 s2.ExpiresAt = model.GetMillis() + 10000
_, err = ss.Session().Save(c, s2) _, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
@@ -111,7 +105,7 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
s3.ExpiresAt = 1 s3.ExpiresAt = 1
s3.DeviceId = model.NewId() s3.DeviceId = model.NewId()
_, err = ss.Session().Save(c, s3) _, err = ss.Session().Save(rctx, s3)
require.NoError(t, err) require.NoError(t, err)
data, err := ss.Session().GetSessionsWithActiveDeviceIds(s1.UserId) data, err := ss.Session().GetSessionsWithActiveDeviceIds(s1.UserId)
@@ -119,97 +113,87 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
require.Len(t, data, 1, "should match len") require.Len(t, data, 1, "should match len")
} }
func testSessionRemove(t *testing.T, ss store.Store) { func testSessionRemove(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
removeErr := ss.Session().Remove(s1.Id) removeErr := ss.Session().Remove(s1.Id)
require.NoError(t, removeErr) require.NoError(t, removeErr)
_, err = ss.Session().Get(c, s1.Id) _, err = ss.Session().Get(rctx, s1.Id)
require.Error(t, err, "should have been removed") require.Error(t, err, "should have been removed")
} }
func testSessionRemoveAll(t *testing.T, ss store.Store) { func testSessionRemoveAll(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
removeErr := ss.Session().RemoveAllSessions() removeErr := ss.Session().RemoveAllSessions()
require.NoError(t, removeErr) require.NoError(t, removeErr)
_, err = ss.Session().Get(c, s1.Id) _, err = ss.Session().Get(rctx, s1.Id)
require.Error(t, err, "should have been removed") require.Error(t, err, "should have been removed")
} }
func testSessionRemoveByUser(t *testing.T, ss store.Store) { func testSessionRemoveByUser(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
deleteErr := ss.Session().PermanentDeleteSessionsByUser(s1.UserId) deleteErr := ss.Session().PermanentDeleteSessionsByUser(s1.UserId)
require.NoError(t, deleteErr) require.NoError(t, deleteErr)
_, err = ss.Session().Get(c, s1.Id) _, err = ss.Session().Get(rctx, s1.Id)
require.Error(t, err, "should have been removed") require.Error(t, err, "should have been removed")
} }
func testSessionRemoveToken(t *testing.T, ss store.Store) { func testSessionRemoveToken(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
removeErr := ss.Session().Remove(s1.Token) removeErr := ss.Session().Remove(s1.Token)
require.NoError(t, removeErr) require.NoError(t, removeErr)
_, err = ss.Session().Get(c, s1.Id) _, err = ss.Session().Get(rctx, s1.Id)
require.Error(t, err, "should have been removed") require.Error(t, err, "should have been removed")
data, err := ss.Session().GetSessions(c, s1.UserId) data, err := ss.Session().GetSessions(rctx, s1.UserId)
require.NoError(t, err) require.NoError(t, err)
require.Empty(t, data, "should match len") require.Empty(t, data, "should match len")
} }
func testSessionUpdateDeviceId(t *testing.T, ss store.Store) { func testSessionUpdateDeviceId(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s1.Id, model.PushNotifyApple+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s1.Id, model.PushNotifyApple+":1234567890", s1.ExpiresAt)
@@ -218,20 +202,18 @@ func testSessionUpdateDeviceId(t *testing.T, ss store.Store) {
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = model.NewId() s2.UserId = model.NewId()
s2, err = ss.Session().Save(c, s2) s2, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s2.Id, model.PushNotifyApple+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s2.Id, model.PushNotifyApple+":1234567890", s1.ExpiresAt)
require.NoError(t, err) require.NoError(t, err)
} }
func testSessionUpdateDeviceId2(t *testing.T, ss store.Store) { func testSessionUpdateDeviceId2(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s1.Id, model.PushNotifyAppleReactNative+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s1.Id, model.PushNotifyAppleReactNative+":1234567890", s1.ExpiresAt)
@@ -240,55 +222,49 @@ func testSessionUpdateDeviceId2(t *testing.T, ss store.Store) {
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = model.NewId() s2.UserId = model.NewId()
s2, err = ss.Session().Save(c, s2) s2, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s2.Id, model.PushNotifyAppleReactNative+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s2.Id, model.PushNotifyAppleReactNative+":1234567890", s1.ExpiresAt)
require.NoError(t, err) require.NoError(t, err)
} }
func testSessionStoreUpdateExpiresAt(t *testing.T, ss store.Store) { func testSessionStoreUpdateExpiresAt(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
err = ss.Session().UpdateExpiresAt(s1.Id, 1234567890) err = ss.Session().UpdateExpiresAt(s1.Id, 1234567890)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.EqualValues(t, session.ExpiresAt, 1234567890, "ExpiresAt not updated correctly") require.EqualValues(t, session.ExpiresAt, 1234567890, "ExpiresAt not updated correctly")
} }
func testSessionStoreUpdateLastActivityAt(t *testing.T, ss store.Store) { func testSessionStoreUpdateLastActivityAt(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
err = ss.Session().UpdateLastActivityAt(s1.Id, 1234567890) err = ss.Session().UpdateLastActivityAt(s1.Id, 1234567890)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.EqualValues(t, session.LastActivityAt, 1234567890, "LastActivityAt not updated correctly") require.EqualValues(t, session.LastActivityAt, 1234567890, "LastActivityAt not updated correctly")
} }
func testSessionCount(t *testing.T, ss store.Store) { func testSessionCount(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1.ExpiresAt = model.GetMillis() + 100000 s1.ExpiresAt = model.GetMillis() + 100000
_, err := ss.Session().Save(c, s1) _, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
count, err := ss.Session().AnalyticsSessionCount() count, err := ss.Session().AnalyticsSessionCount()
@@ -296,52 +272,50 @@ func testSessionCount(t *testing.T, ss store.Store) {
require.NotZero(t, count, "should have at least 1 session") require.NotZero(t, count, "should have at least 1 session")
} }
func testSessionCleanup(t *testing.T, ss store.Store) { func testSessionCleanup(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
now := model.GetMillis() now := model.GetMillis()
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1.ExpiresAt = 0 // never expires s1.ExpiresAt = 0 // never expires
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = s1.UserId s2.UserId = s1.UserId
s2.ExpiresAt = now + 1000000 // expires in the future s2.ExpiresAt = now + 1000000 // expires in the future
s2, err = ss.Session().Save(c, s2) s2, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
s3.UserId = model.NewId() s3.UserId = model.NewId()
s3.ExpiresAt = 1 // expired s3.ExpiresAt = 1 // expired
s3, err = ss.Session().Save(c, s3) s3, err = ss.Session().Save(rctx, s3)
require.NoError(t, err) require.NoError(t, err)
s4 := &model.Session{} s4 := &model.Session{}
s4.UserId = model.NewId() s4.UserId = model.NewId()
s4.ExpiresAt = 2 // expired s4.ExpiresAt = 2 // expired
s4, err = ss.Session().Save(c, s4) s4, err = ss.Session().Save(rctx, s4)
require.NoError(t, err) require.NoError(t, err)
err = ss.Session().Cleanup(now, 1) err = ss.Session().Cleanup(now, 1)
require.NoError(t, err) require.NoError(t, err)
_, err = ss.Session().Get(c, s1.Id) _, err = ss.Session().Get(rctx, s1.Id)
assert.NoError(t, err) assert.NoError(t, err)
_, err = ss.Session().Get(c, s2.Id) _, err = ss.Session().Get(rctx, s2.Id)
assert.NoError(t, err) assert.NoError(t, err)
_, err = ss.Session().Get(c, s3.Id) _, err = ss.Session().Get(rctx, s3.Id)
assert.Error(t, err) assert.Error(t, err)
_, err = ss.Session().Get(c, s4.Id) _, err = ss.Session().Get(rctx, s4.Id)
assert.Error(t, err) assert.Error(t, err)
removeErr := ss.Session().Remove(s1.Id) removeErr := ss.Session().Remove(s1.Id)
@@ -351,9 +325,7 @@ func testSessionCleanup(t *testing.T, ss store.Store) {
require.NoError(t, removeErr) require.NoError(t, removeErr)
} }
func testGetSessionsExpired(t *testing.T, ss store.Store) { func testGetSessionsExpired(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
now := model.GetMillis() now := model.GetMillis()
// Clear existing sessions. // Clear existing sessions.
@@ -364,34 +336,34 @@ func testGetSessionsExpired(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1.DeviceId = model.NewId() s1.DeviceId = model.NewId()
s1.ExpiresAt = 0 // never expires s1.ExpiresAt = 0 // never expires
_, err = ss.Session().Save(c, s1) _, err = ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = model.NewId() s2.UserId = model.NewId()
s2.DeviceId = model.NewId() s2.DeviceId = model.NewId()
s2.ExpiresAt = now - TenMinutes // expired within threshold s2.ExpiresAt = now - TenMinutes // expired within threshold
s2, err = ss.Session().Save(c, s2) s2, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
s3.UserId = model.NewId() s3.UserId = model.NewId()
s3.DeviceId = model.NewId() s3.DeviceId = model.NewId()
s3.ExpiresAt = now - (TenMinutes * 100) // expired outside threshold s3.ExpiresAt = now - (TenMinutes * 100) // expired outside threshold
_, err = ss.Session().Save(c, s3) _, err = ss.Session().Save(rctx, s3)
require.NoError(t, err) require.NoError(t, err)
s4 := &model.Session{} s4 := &model.Session{}
s4.UserId = model.NewId() s4.UserId = model.NewId()
s4.ExpiresAt = now - TenMinutes // expired within threshold, but not mobile s4.ExpiresAt = now - TenMinutes // expired within threshold, but not mobile
s4, err = ss.Session().Save(c, s4) s4, err = ss.Session().Save(rctx, s4)
require.NoError(t, err) require.NoError(t, err)
s5 := &model.Session{} s5 := &model.Session{}
s5.UserId = model.NewId() s5.UserId = model.NewId()
s5.DeviceId = model.NewId() s5.DeviceId = model.NewId()
s5.ExpiresAt = now + (TenMinutes * 100000) // not expired s5.ExpiresAt = now + (TenMinutes * 100000) // not expired
_, err = ss.Session().Save(c, s5) _, err = ss.Session().Save(rctx, s5)
require.NoError(t, err) require.NoError(t, err)
sessions, err := ss.Session().GetSessionsExpired(TenMinutes*2, true, true) // mobile only sessions, err := ss.Session().GetSessionsExpired(TenMinutes*2, true, true) // mobile only
@@ -408,29 +380,27 @@ func testGetSessionsExpired(t *testing.T, ss store.Store) {
} }
} }
func testUpdateExpiredNotify(t *testing.T, ss store.Store) { func testUpdateExpiredNotify(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1.DeviceId = model.NewId() s1.DeviceId = model.NewId()
s1.ExpiresAt = model.GetMillis() + TenMinutes s1.ExpiresAt = model.GetMillis() + TenMinutes
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
session, err := ss.Session().Get(c, s1.Id) session, err := ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.False(t, session.ExpiredNotify) require.False(t, session.ExpiredNotify)
err = ss.Session().UpdateExpiredNotify(session.Id, true) err = ss.Session().UpdateExpiredNotify(session.Id, true)
require.NoError(t, err) require.NoError(t, err)
session, err = ss.Session().Get(c, s1.Id) session, err = ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.True(t, session.ExpiredNotify) require.True(t, session.ExpiredNotify)
err = ss.Session().UpdateExpiredNotify(session.Id, false) err = ss.Session().UpdateExpiredNotify(session.Id, false)
require.NoError(t, err) require.NoError(t, err)
session, err = ss.Session().Get(c, s1.Id) session, err = ss.Session().Get(rctx, s1.Id)
require.NoError(t, err) require.NoError(t, err)
require.False(t, session.ExpiredNotify) require.False(t, session.ExpiredNotify)
} }

Просмотреть файл

@@ -12,40 +12,41 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestSharedChannelStore(t *testing.T, ss store.Store, s SqlStore) { func TestSharedChannelStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("SaveSharedChannel", func(t *testing.T) { testSaveSharedChannel(t, ss) }) t.Run("SaveSharedChannel", func(t *testing.T) { testSaveSharedChannel(t, rctx, ss) })
t.Run("GetSharedChannel", func(t *testing.T) { testGetSharedChannel(t, ss) }) t.Run("GetSharedChannel", func(t *testing.T) { testGetSharedChannel(t, rctx, ss) })
t.Run("HasSharedChannel", func(t *testing.T) { testHasSharedChannel(t, ss) }) t.Run("HasSharedChannel", func(t *testing.T) { testHasSharedChannel(t, rctx, ss) })
t.Run("GetSharedChannels", func(t *testing.T) { testGetSharedChannels(t, ss) }) t.Run("GetSharedChannels", func(t *testing.T) { testGetSharedChannels(t, rctx, ss) })
t.Run("UpdateSharedChannel", func(t *testing.T) { testUpdateSharedChannel(t, ss) }) t.Run("UpdateSharedChannel", func(t *testing.T) { testUpdateSharedChannel(t, rctx, ss) })
t.Run("DeleteSharedChannel", func(t *testing.T) { testDeleteSharedChannel(t, ss) }) t.Run("DeleteSharedChannel", func(t *testing.T) { testDeleteSharedChannel(t, rctx, ss) })
t.Run("SaveSharedChannelRemote", func(t *testing.T) { testSaveSharedChannelRemote(t, ss) }) t.Run("SaveSharedChannelRemote", func(t *testing.T) { testSaveSharedChannelRemote(t, rctx, ss) })
t.Run("UpdateSharedChannelRemote", func(t *testing.T) { testUpdateSharedChannelRemote(t, ss) }) t.Run("UpdateSharedChannelRemote", func(t *testing.T) { testUpdateSharedChannelRemote(t, rctx, ss) })
t.Run("GetSharedChannelRemote", func(t *testing.T) { testGetSharedChannelRemote(t, ss) }) t.Run("GetSharedChannelRemote", func(t *testing.T) { testGetSharedChannelRemote(t, rctx, ss) })
t.Run("GetSharedChannelRemoteByIds", func(t *testing.T) { testGetSharedChannelRemoteByIds(t, ss) }) t.Run("GetSharedChannelRemoteByIds", func(t *testing.T) { testGetSharedChannelRemoteByIds(t, rctx, ss) })
t.Run("GetSharedChannelRemotes", func(t *testing.T) { testGetSharedChannelRemotes(t, ss) }) t.Run("GetSharedChannelRemotes", func(t *testing.T) { testGetSharedChannelRemotes(t, rctx, ss) })
t.Run("HasRemote", func(t *testing.T) { testHasRemote(t, ss) }) t.Run("HasRemote", func(t *testing.T) { testHasRemote(t, rctx, ss) })
t.Run("GetRemoteForUser", func(t *testing.T) { testGetRemoteForUser(t, ss) }) t.Run("GetRemoteForUser", func(t *testing.T) { testGetRemoteForUser(t, rctx, ss) })
t.Run("UpdateSharedChannelRemoteNextSyncAt", func(t *testing.T) { testUpdateSharedChannelRemoteCursor(t, ss) }) t.Run("UpdateSharedChannelRemoteNextSyncAt", func(t *testing.T) { testUpdateSharedChannelRemoteCursor(t, rctx, ss) })
t.Run("DeleteSharedChannelRemote", func(t *testing.T) { testDeleteSharedChannelRemote(t, ss) }) t.Run("DeleteSharedChannelRemote", func(t *testing.T) { testDeleteSharedChannelRemote(t, rctx, ss) })
t.Run("SaveSharedChannelUser", func(t *testing.T) { testSaveSharedChannelUser(t, ss) }) t.Run("SaveSharedChannelUser", func(t *testing.T) { testSaveSharedChannelUser(t, rctx, ss) })
t.Run("GetSharedChannelSingleUser", func(t *testing.T) { testGetSingleSharedChannelUser(t, ss) }) t.Run("GetSharedChannelSingleUser", func(t *testing.T) { testGetSingleSharedChannelUser(t, rctx, ss) })
t.Run("GetSharedChannelUser", func(t *testing.T) { testGetSharedChannelUser(t, ss) }) t.Run("GetSharedChannelUser", func(t *testing.T) { testGetSharedChannelUser(t, rctx, ss) })
t.Run("GetSharedChannelUsersForSync", func(t *testing.T) { testGetSharedChannelUsersForSync(t, ss) }) t.Run("GetSharedChannelUsersForSync", func(t *testing.T) { testGetSharedChannelUsersForSync(t, rctx, ss) })
t.Run("UpdateSharedChannelUserLastSyncAt", func(t *testing.T) { testUpdateSharedChannelUserLastSyncAt(t, ss) }) t.Run("UpdateSharedChannelUserLastSyncAt", func(t *testing.T) { testUpdateSharedChannelUserLastSyncAt(t, rctx, ss) })
t.Run("SaveSharedChannelAttachment", func(t *testing.T) { testSaveSharedChannelAttachment(t, ss) }) t.Run("SaveSharedChannelAttachment", func(t *testing.T) { testSaveSharedChannelAttachment(t, rctx, ss) })
t.Run("UpsertSharedChannelAttachment", func(t *testing.T) { testUpsertSharedChannelAttachment(t, ss) }) t.Run("UpsertSharedChannelAttachment", func(t *testing.T) { testUpsertSharedChannelAttachment(t, rctx, ss) })
t.Run("GetSharedChannelAttachment", func(t *testing.T) { testGetSharedChannelAttachment(t, ss) }) t.Run("GetSharedChannelAttachment", func(t *testing.T) { testGetSharedChannelAttachment(t, rctx, ss) })
t.Run("UpdateSharedChannelAttachmentLastSyncAt", func(t *testing.T) { testUpdateSharedChannelAttachmentLastSyncAt(t, ss) }) t.Run("UpdateSharedChannelAttachmentLastSyncAt", func(t *testing.T) { testUpdateSharedChannelAttachmentLastSyncAt(t, rctx, ss) })
} }
func testSaveSharedChannel(t *testing.T, ss store.Store) { func testSaveSharedChannel(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save shared channel (home)", func(t *testing.T) { t.Run("Save shared channel (home)", func(t *testing.T) {
channel, err := createTestChannel(ss, "test_save") channel, err := createTestChannel(ss, "test_save")
require.NoError(t, err) require.NoError(t, err)
@@ -123,7 +124,7 @@ func testSaveSharedChannel(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannel(t *testing.T, ss store.Store) { func testGetSharedChannel(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_get") channel, err := createTestChannel(ss, "test_get")
require.NoError(t, err) require.NoError(t, err)
@@ -154,7 +155,7 @@ func testGetSharedChannel(t *testing.T, ss store.Store) {
}) })
} }
func testHasSharedChannel(t *testing.T, ss store.Store) { func testHasSharedChannel(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_get") channel, err := createTestChannel(ss, "test_get")
require.NoError(t, err) require.NoError(t, err)
@@ -182,7 +183,7 @@ func testHasSharedChannel(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannels(t *testing.T, ss store.Store) { func testGetSharedChannels(t *testing.T, rctx request.CTX, ss store.Store) {
require.NoError(t, clearSharedChannels(ss)) require.NoError(t, clearSharedChannels(ss))
user, err := createTestUser(ss, "gary.goodspeed") user, err := createTestUser(ss, "gary.goodspeed")
require.NoError(t, err) require.NoError(t, err)
@@ -326,7 +327,7 @@ func testGetSharedChannels(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateSharedChannel(t *testing.T, ss store.Store) { func testUpdateSharedChannel(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_update") channel, err := createTestChannel(ss, "test_update")
require.NoError(t, err) require.NoError(t, err)
@@ -370,7 +371,7 @@ func testUpdateSharedChannel(t *testing.T, ss store.Store) {
}) })
} }
func testDeleteSharedChannel(t *testing.T, ss store.Store) { func testDeleteSharedChannel(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_delete") channel, err := createTestChannel(ss, "test_delete")
require.NoError(t, err) require.NoError(t, err)
@@ -423,7 +424,7 @@ func testDeleteSharedChannel(t *testing.T, ss store.Store) {
}) })
} }
func testSaveSharedChannelRemote(t *testing.T, ss store.Store) { func testSaveSharedChannelRemote(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save shared channel remote", func(t *testing.T) { t.Run("Save shared channel remote", func(t *testing.T) {
channel, err := createTestChannel(ss, "test_save_remote") channel, err := createTestChannel(ss, "test_save_remote")
require.NoError(t, err) require.NoError(t, err)
@@ -464,7 +465,7 @@ func testSaveSharedChannelRemote(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateSharedChannelRemote(t *testing.T, ss store.Store) { func testUpdateSharedChannelRemote(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Update shared channel remote", func(t *testing.T) { t.Run("Update shared channel remote", func(t *testing.T) {
channel, err := createTestChannel(ss, "test_update_remote") channel, err := createTestChannel(ss, "test_update_remote")
require.NoError(t, err) require.NoError(t, err)
@@ -511,7 +512,7 @@ func testUpdateSharedChannelRemote(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannelRemote(t *testing.T, ss store.Store) { func testGetSharedChannelRemote(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_remote_get") channel, err := createTestChannel(ss, "test_remote_get")
require.NoError(t, err) require.NoError(t, err)
@@ -541,7 +542,7 @@ func testGetSharedChannelRemote(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannelRemoteByIds(t *testing.T, ss store.Store) { func testGetSharedChannelRemoteByIds(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_remote_get_by_ids") channel, err := createTestChannel(ss, "test_remote_get_by_ids")
require.NoError(t, err) require.NoError(t, err)
@@ -571,7 +572,7 @@ func testGetSharedChannelRemoteByIds(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannelRemotes(t *testing.T, ss store.Store) { func testGetSharedChannelRemotes(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_remotes_get2") channel, err := createTestChannel(ss, "test_remotes_get2")
require.NoError(t, err) require.NoError(t, err)
@@ -654,7 +655,7 @@ func testGetSharedChannelRemotes(t *testing.T, ss store.Store) {
}) })
} }
func testHasRemote(t *testing.T, ss store.Store) { func testHasRemote(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_remotes_get2") channel, err := createTestChannel(ss, "test_remotes_get2")
require.NoError(t, err) require.NoError(t, err)
@@ -695,7 +696,7 @@ func testHasRemote(t *testing.T, ss store.Store) {
}) })
} }
func testGetRemoteForUser(t *testing.T, ss store.Store) { func testGetRemoteForUser(t *testing.T, rctx request.CTX, ss store.Store) {
// add remotes, and users to simulated shared channels. // add remotes, and users to simulated shared channels.
teamId := model.NewId() teamId := model.NewId()
channel, err := createSharedTestChannel(ss, "share_test_channel", true, nil) channel, err := createSharedTestChannel(ss, "share_test_channel", true, nil)
@@ -751,7 +752,7 @@ func testGetRemoteForUser(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateSharedChannelRemoteCursor(t *testing.T, ss store.Store) { func testUpdateSharedChannelRemoteCursor(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_remote_update_next_sync_at") channel, err := createTestChannel(ss, "test_remote_update_next_sync_at")
require.NoError(t, err) require.NoError(t, err)
@@ -788,7 +789,7 @@ func testUpdateSharedChannelRemoteCursor(t *testing.T, ss store.Store) {
}) })
} }
func testDeleteSharedChannelRemote(t *testing.T, ss store.Store) { func testDeleteSharedChannelRemote(t *testing.T, rctx request.CTX, ss store.Store) {
channel, err := createTestChannel(ss, "test_remote_delete") channel, err := createTestChannel(ss, "test_remote_delete")
require.NoError(t, err) require.NoError(t, err)
@@ -898,7 +899,7 @@ func clearSharedChannels(ss store.Store) error {
return nil return nil
} }
func testSaveSharedChannelUser(t *testing.T, ss store.Store) { func testSaveSharedChannelUser(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save shared channel user", func(t *testing.T) { t.Run("Save shared channel user", func(t *testing.T) {
scUser := &model.SharedChannelUser{ scUser := &model.SharedChannelUser{
UserId: model.NewId(), UserId: model.NewId(),
@@ -934,7 +935,7 @@ func testSaveSharedChannelUser(t *testing.T, ss store.Store) {
}) })
} }
func testGetSingleSharedChannelUser(t *testing.T, ss store.Store) { func testGetSingleSharedChannelUser(t *testing.T, rctx request.CTX, ss store.Store) {
scUser := &model.SharedChannelUser{ scUser := &model.SharedChannelUser{
UserId: model.NewId(), UserId: model.NewId(),
RemoteId: model.NewId(), RemoteId: model.NewId(),
@@ -961,7 +962,7 @@ func testGetSingleSharedChannelUser(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannelUser(t *testing.T, ss store.Store) { func testGetSharedChannelUser(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
scUser := &model.SharedChannelUser{ scUser := &model.SharedChannelUser{
@@ -988,7 +989,7 @@ func testGetSharedChannelUser(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannelUsersForSync(t *testing.T, ss store.Store) { func testGetSharedChannelUsersForSync(t *testing.T, rctx request.CTX, ss store.Store) {
channelID := model.NewId() channelID := model.NewId()
remoteID := model.NewId() remoteID := model.NewId()
earlier := model.GetMillis() - 300000 earlier := model.GetMillis() - 300000
@@ -1067,7 +1068,7 @@ func testGetSharedChannelUsersForSync(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateSharedChannelUserLastSyncAt(t *testing.T, ss store.Store) { func testUpdateSharedChannelUserLastSyncAt(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: model.NewId(), Username: model.NewId(),
Email: model.NewId() + "@example.com", Email: model.NewId() + "@example.com",
@@ -1127,7 +1128,7 @@ func testUpdateSharedChannelUserLastSyncAt(t *testing.T, ss store.Store) {
}) })
} }
func testSaveSharedChannelAttachment(t *testing.T, ss store.Store) { func testSaveSharedChannelAttachment(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Save shared channel attachment", func(t *testing.T) { t.Run("Save shared channel attachment", func(t *testing.T) {
attachment := &model.SharedChannelAttachment{ attachment := &model.SharedChannelAttachment{
FileId: model.NewId(), FileId: model.NewId(),
@@ -1162,7 +1163,7 @@ func testSaveSharedChannelAttachment(t *testing.T, ss store.Store) {
}) })
} }
func testUpsertSharedChannelAttachment(t *testing.T, ss store.Store) { func testUpsertSharedChannelAttachment(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Upsert new shared channel attachment", func(t *testing.T) { t.Run("Upsert new shared channel attachment", func(t *testing.T) {
attachment := &model.SharedChannelAttachment{ attachment := &model.SharedChannelAttachment{
FileId: model.NewId(), FileId: model.NewId(),
@@ -1224,7 +1225,7 @@ func testUpsertSharedChannelAttachment(t *testing.T, ss store.Store) {
}) })
} }
func testGetSharedChannelAttachment(t *testing.T, ss store.Store) { func testGetSharedChannelAttachment(t *testing.T, rctx request.CTX, ss store.Store) {
attachment := &model.SharedChannelAttachment{ attachment := &model.SharedChannelAttachment{
FileId: model.NewId(), FileId: model.NewId(),
RemoteId: model.NewId(), RemoteId: model.NewId(),
@@ -1250,7 +1251,7 @@ func testGetSharedChannelAttachment(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateSharedChannelAttachmentLastSyncAt(t *testing.T, ss store.Store) { func testUpdateSharedChannelAttachmentLastSyncAt(t *testing.T, rctx request.CTX, ss store.Store) {
attachment := &model.SharedChannelAttachment{ attachment := &model.SharedChannelAttachment{
FileId: model.NewId(), FileId: model.NewId(),
RemoteId: model.NewId(), RemoteId: model.NewId(),

Просмотреть файл

@@ -10,16 +10,17 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestStatusStore(t *testing.T, ss store.Store) { func TestStatusStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("", func(t *testing.T) { testStatusStore(t, ss) }) t.Run("", func(t *testing.T) { testStatusStore(t, rctx, ss) })
t.Run("ActiveUserCount", func(t *testing.T) { testActiveUserCount(t, ss) }) t.Run("ActiveUserCount", func(t *testing.T) { testActiveUserCount(t, rctx, ss) })
t.Run("UpdateExpiredDNDStatuses", func(t *testing.T) { testUpdateExpiredDNDStatuses(t, ss) }) t.Run("UpdateExpiredDNDStatuses", func(t *testing.T) { testUpdateExpiredDNDStatuses(t, rctx, ss) })
} }
func testStatusStore(t *testing.T, ss store.Store) { func testStatusStore(t *testing.T, rctx request.CTX, ss store.Store) {
status := &model.Status{UserId: model.NewId(), Status: model.StatusOnline, Manual: false, LastActivityAt: 0, ActiveChannel: ""} status := &model.Status{UserId: model.NewId(), Status: model.StatusOnline, Manual: false, LastActivityAt: 0, ActiveChannel: ""}
require.NoError(t, ss.Status().SaveOrUpdate(status)) require.NoError(t, ss.Status().SaveOrUpdate(status))
@@ -49,7 +50,7 @@ func testStatusStore(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testActiveUserCount(t *testing.T, ss store.Store) { func testActiveUserCount(t *testing.T, rctx request.CTX, ss store.Store) {
status := &model.Status{UserId: model.NewId(), Status: model.StatusOnline, Manual: false, LastActivityAt: model.GetMillis(), ActiveChannel: ""} status := &model.Status{UserId: model.NewId(), Status: model.StatusOnline, Manual: false, LastActivityAt: model.GetMillis(), ActiveChannel: ""}
require.NoError(t, ss.Status().SaveOrUpdate(status)) require.NoError(t, ss.Status().SaveOrUpdate(status))
@@ -64,7 +65,7 @@ func (s ByUserId) Len() int { return len(s) }
func (s ByUserId) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func (s ByUserId) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (s ByUserId) Less(i, j int) bool { return s[i].UserId < s[j].UserId } func (s ByUserId) Less(i, j int) bool { return s[i].UserId < s[j].UserId }
func testUpdateExpiredDNDStatuses(t *testing.T, ss store.Store) { func testUpdateExpiredDNDStatuses(t *testing.T, rctx request.CTX, ss store.Store) {
userID := NewTestId() userID := NewTestId()
status := &model.Status{UserId: userID, Status: model.StatusDnd, Manual: true, status := &model.Status{UserId: userID, Status: model.StatusDnd, Manual: true,

Просмотреть файл

@@ -11,21 +11,22 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestSystemStore(t *testing.T, ss store.Store) { func TestSystemStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("", func(t *testing.T) { testSystemStore(t, ss) }) t.Run("", func(t *testing.T) { testSystemStore(t, rctx, ss) })
t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, ss) }) t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, rctx, ss) })
t.Run("PermanentDeleteByName", func(t *testing.T) { testSystemStorePermanentDeleteByName(t, ss) }) t.Run("PermanentDeleteByName", func(t *testing.T) { testSystemStorePermanentDeleteByName(t, rctx, ss) })
t.Run("InsertIfExists", func(t *testing.T) { t.Run("InsertIfExists", func(t *testing.T) {
testInsertIfExists(t, ss) testInsertIfExists(t, rctx, ss)
}) })
t.Run("SaveOrUpdateWithWarnMetricHandling", func(t *testing.T) { testSystemStoreSaveOrUpdateWithWarnMetricHandling(t, ss) }) t.Run("SaveOrUpdateWithWarnMetricHandling", func(t *testing.T) { testSystemStoreSaveOrUpdateWithWarnMetricHandling(t, rctx, ss) })
t.Run("GetByNameNoEntries", func(t *testing.T) { testSystemStoreGetByNameNoEntries(t, ss) }) t.Run("GetByNameNoEntries", func(t *testing.T) { testSystemStoreGetByNameNoEntries(t, rctx, ss) })
} }
func testSystemStore(t *testing.T, ss store.Store) { func testSystemStore(t *testing.T, rctx request.CTX, ss store.Store) {
system := &model.System{Name: model.NewId(), Value: "value"} system := &model.System{Name: model.NewId(), Value: "value"}
err := ss.System().Save(system) err := ss.System().Save(system)
require.NoError(t, err) require.NoError(t, err)
@@ -52,7 +53,7 @@ func testSystemStore(t *testing.T, ss store.Store) {
require.Equal(t, system.Value, rsystem.Value) require.Equal(t, system.Value, rsystem.Value)
} }
func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) { func testSystemStoreSaveOrUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
system := &model.System{Name: model.NewId(), Value: "value"} system := &model.System{Name: model.NewId(), Value: "value"}
err := ss.System().SaveOrUpdate(system) err := ss.System().SaveOrUpdate(system)
@@ -72,7 +73,7 @@ func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) {
assert.Equal(t, system.Value, res.Value) assert.Equal(t, system.Value, res.Value)
} }
func testSystemStoreSaveOrUpdateWithWarnMetricHandling(t *testing.T, ss store.Store) { func testSystemStoreSaveOrUpdateWithWarnMetricHandling(t *testing.T, rctx request.CTX, ss store.Store) {
system := &model.System{Name: model.NewId(), Value: "value"} system := &model.System{Name: model.NewId(), Value: "value"}
err := ss.System().SaveOrUpdateWithWarnMetricHandling(system) err := ss.System().SaveOrUpdateWithWarnMetricHandling(system)
@@ -99,7 +100,7 @@ func testSystemStoreSaveOrUpdateWithWarnMetricHandling(t *testing.T, ss store.St
assert.Equal(t, val1, val2) assert.Equal(t, val1, val2)
} }
func testSystemStoreGetByNameNoEntries(t *testing.T, ss store.Store) { func testSystemStoreGetByNameNoEntries(t *testing.T, rctx request.CTX, ss store.Store) {
res, nErr := ss.System().GetByName(model.SystemFirstAdminVisitMarketplace) res, nErr := ss.System().GetByName(model.SystemFirstAdminVisitMarketplace)
_, ok := nErr.(*store.ErrNotFound) _, ok := nErr.(*store.ErrNotFound)
require.Error(t, nErr) require.Error(t, nErr)
@@ -107,7 +108,7 @@ func testSystemStoreGetByNameNoEntries(t *testing.T, ss store.Store) {
assert.Nil(t, res) assert.Nil(t, res)
} }
func testSystemStorePermanentDeleteByName(t *testing.T, ss store.Store) { func testSystemStorePermanentDeleteByName(t *testing.T, rctx request.CTX, ss store.Store) {
s1 := &model.System{Name: model.NewId(), Value: "value"} s1 := &model.System{Name: model.NewId(), Value: "value"}
s2 := &model.System{Name: model.NewId(), Value: "value"} s2 := &model.System{Name: model.NewId(), Value: "value"}
@@ -141,7 +142,7 @@ func testSystemStorePermanentDeleteByName(t *testing.T, ss store.Store) {
assert.Error(t, err) assert.Error(t, err)
} }
func testInsertIfExists(t *testing.T, ss store.Store) { func testInsertIfExists(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("Serial", func(t *testing.T) { t.Run("Serial", func(t *testing.T) {
s1 := &model.System{Name: model.SystemClusterEncryptionKey, Value: "somekey"} s1 := &model.System{Name: model.SystemClusterEncryptionKey, Value: "somekey"}

Просмотреть файл

@@ -18,7 +18,7 @@ import (
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func cleanupTeamStore(t *testing.T, ss store.Store) { func cleanupTeamStore(t *testing.T, rctx request.CTX, ss store.Store) {
allTeams, err := ss.Team().GetAll() allTeams, err := ss.Team().GetAll()
for _, team := range allTeams { for _, team := range allTeams {
ss.Team().PermanentDelete(team.Id) ss.Team().PermanentDelete(team.Id)
@@ -26,58 +26,58 @@ func cleanupTeamStore(t *testing.T, ss store.Store) {
assert.NoError(t, err) assert.NoError(t, err)
} }
func TestTeamStore(t *testing.T, ss store.Store) { func TestTeamStore(t *testing.T, rctx request.CTX, ss store.Store) {
createDefaultRoles(ss) createDefaultRoles(ss)
t.Run("Save", func(t *testing.T) { testTeamStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testTeamStoreSave(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testTeamStoreUpdate(t, ss) }) t.Run("Update", func(t *testing.T) { testTeamStoreUpdate(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testTeamStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testTeamStoreGet(t, rctx, ss) })
t.Run("GetMany", func(t *testing.T) { testTeamStoreGetMany(t, ss) }) t.Run("GetMany", func(t *testing.T) { testTeamStoreGetMany(t, rctx, ss) })
t.Run("GetByName", func(t *testing.T) { testTeamStoreGetByName(t, ss) }) t.Run("GetByName", func(t *testing.T) { testTeamStoreGetByName(t, rctx, ss) })
t.Run("GetByNames", func(t *testing.T) { testTeamStoreGetByNames(t, ss) }) t.Run("GetByNames", func(t *testing.T) { testTeamStoreGetByNames(t, rctx, ss) })
t.Run("SearchAll", func(t *testing.T) { testTeamStoreSearchAll(t, ss) }) t.Run("SearchAll", func(t *testing.T) { testTeamStoreSearchAll(t, rctx, ss) })
t.Run("SearchOpen", func(t *testing.T) { testTeamStoreSearchOpen(t, ss) }) t.Run("SearchOpen", func(t *testing.T) { testTeamStoreSearchOpen(t, rctx, ss) })
t.Run("SearchPrivate", func(t *testing.T) { testTeamStoreSearchPrivate(t, ss) }) t.Run("SearchPrivate", func(t *testing.T) { testTeamStoreSearchPrivate(t, rctx, ss) })
t.Run("GetByInviteId", func(t *testing.T) { testTeamStoreGetByInviteId(t, ss) }) t.Run("GetByInviteId", func(t *testing.T) { testTeamStoreGetByInviteId(t, rctx, ss) })
t.Run("ByUserId", func(t *testing.T) { testTeamStoreByUserId(t, ss) }) t.Run("ByUserId", func(t *testing.T) { testTeamStoreByUserId(t, rctx, ss) })
t.Run("GetAllTeamListing", func(t *testing.T) { testGetAllTeamListing(t, ss) }) t.Run("GetAllTeamListing", func(t *testing.T) { testGetAllTeamListing(t, rctx, ss) })
t.Run("GetAllTeamPage", func(t *testing.T) { testTeamStoreGetAllPage(t, ss) }) t.Run("GetAllTeamPage", func(t *testing.T) { testTeamStoreGetAllPage(t, rctx, ss) })
t.Run("GetAllTeamPageListing", func(t *testing.T) { testGetAllTeamPageListing(t, ss) }) t.Run("GetAllTeamPageListing", func(t *testing.T) { testGetAllTeamPageListing(t, rctx, ss) })
t.Run("GetAllPrivateTeamListing", func(t *testing.T) { testGetAllPrivateTeamListing(t, ss) }) t.Run("GetAllPrivateTeamListing", func(t *testing.T) { testGetAllPrivateTeamListing(t, rctx, ss) })
t.Run("GetAllPrivateTeamPageListing", func(t *testing.T) { testGetAllPrivateTeamPageListing(t, ss) }) t.Run("GetAllPrivateTeamPageListing", func(t *testing.T) { testGetAllPrivateTeamPageListing(t, rctx, ss) })
t.Run("GetAllPublicTeamPageListing", func(t *testing.T) { testGetAllPublicTeamPageListing(t, ss) }) t.Run("GetAllPublicTeamPageListing", func(t *testing.T) { testGetAllPublicTeamPageListing(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testDelete(t, rctx, ss) })
t.Run("TeamCount", func(t *testing.T) { testTeamCount(t, ss) }) t.Run("TeamCount", func(t *testing.T) { testTeamCount(t, rctx, ss) })
t.Run("TeamPublicCount", func(t *testing.T) { testPublicTeamCount(t, ss) }) t.Run("TeamPublicCount", func(t *testing.T) { testPublicTeamCount(t, rctx, ss) })
t.Run("TeamPrivateCount", func(t *testing.T) { testPrivateTeamCount(t, ss) }) t.Run("TeamPrivateCount", func(t *testing.T) { testPrivateTeamCount(t, rctx, ss) })
t.Run("TeamMembers", func(t *testing.T) { testTeamMembers(t, ss) }) t.Run("TeamMembers", func(t *testing.T) { testTeamMembers(t, rctx, ss) })
t.Run("TestGetMembers", func(t *testing.T) { testGetMembers(t, ss) }) t.Run("TestGetMembers", func(t *testing.T) { testGetMembers(t, rctx, ss) })
t.Run("SaveMember", func(t *testing.T) { testTeamSaveMember(t, ss) }) t.Run("SaveMember", func(t *testing.T) { testTeamSaveMember(t, rctx, ss) })
t.Run("SaveMultipleMembers", func(t *testing.T) { testTeamSaveMultipleMembers(t, ss) }) t.Run("SaveMultipleMembers", func(t *testing.T) { testTeamSaveMultipleMembers(t, rctx, ss) })
t.Run("UpdateMember", func(t *testing.T) { testTeamUpdateMember(t, ss) }) t.Run("UpdateMember", func(t *testing.T) { testTeamUpdateMember(t, rctx, ss) })
t.Run("UpdateMultipleMembers", func(t *testing.T) { testTeamUpdateMultipleMembers(t, ss) }) t.Run("UpdateMultipleMembers", func(t *testing.T) { testTeamUpdateMultipleMembers(t, rctx, ss) })
t.Run("RemoveMember", func(t *testing.T) { testTeamRemoveMember(t, ss) }) t.Run("RemoveMember", func(t *testing.T) { testTeamRemoveMember(t, rctx, ss) })
t.Run("RemoveMembers", func(t *testing.T) { testTeamRemoveMembers(t, ss) }) t.Run("RemoveMembers", func(t *testing.T) { testTeamRemoveMembers(t, rctx, ss) })
t.Run("SaveTeamMemberMaxMembers", func(t *testing.T) { testSaveTeamMemberMaxMembers(t, ss) }) t.Run("SaveTeamMemberMaxMembers", func(t *testing.T) { testSaveTeamMemberMaxMembers(t, rctx, ss) })
t.Run("GetTeamMember", func(t *testing.T) { testGetTeamMember(t, ss) }) t.Run("GetTeamMember", func(t *testing.T) { testGetTeamMember(t, rctx, ss) })
t.Run("GetTeamMembersByIds", func(t *testing.T) { testGetTeamMembersByIds(t, ss) }) t.Run("GetTeamMembersByIds", func(t *testing.T) { testGetTeamMembersByIds(t, rctx, ss) })
t.Run("MemberCount", func(t *testing.T) { testTeamStoreMemberCount(t, ss) }) t.Run("MemberCount", func(t *testing.T) { testTeamStoreMemberCount(t, rctx, ss) })
t.Run("GetChannelUnreadsForAllTeams", func(t *testing.T) { testGetChannelUnreadsForAllTeams(t, ss) }) t.Run("GetChannelUnreadsForAllTeams", func(t *testing.T) { testGetChannelUnreadsForAllTeams(t, rctx, ss) })
t.Run("GetChannelUnreadsForTeam", func(t *testing.T) { testGetChannelUnreadsForTeam(t, ss) }) t.Run("GetChannelUnreadsForTeam", func(t *testing.T) { testGetChannelUnreadsForTeam(t, rctx, ss) })
t.Run("UpdateLastTeamIconUpdate", func(t *testing.T) { testUpdateLastTeamIconUpdate(t, ss) }) t.Run("UpdateLastTeamIconUpdate", func(t *testing.T) { testUpdateLastTeamIconUpdate(t, rctx, ss) })
t.Run("GetTeamsByScheme", func(t *testing.T) { testGetTeamsByScheme(t, ss) }) t.Run("GetTeamsByScheme", func(t *testing.T) { testGetTeamsByScheme(t, rctx, ss) })
t.Run("MigrateTeamMembers", func(t *testing.T) { testTeamStoreMigrateTeamMembers(t, ss) }) t.Run("MigrateTeamMembers", func(t *testing.T) { testTeamStoreMigrateTeamMembers(t, rctx, ss) })
t.Run("ResetAllTeamSchemes", func(t *testing.T) { testResetAllTeamSchemes(t, ss) }) t.Run("ResetAllTeamSchemes", func(t *testing.T) { testResetAllTeamSchemes(t, rctx, ss) })
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testTeamStoreClearAllCustomRoleAssignments(t, ss) }) t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testTeamStoreClearAllCustomRoleAssignments(t, rctx, ss) })
t.Run("AnalyticsGetTeamCountForScheme", func(t *testing.T) { testTeamStoreAnalyticsGetTeamCountForScheme(t, ss) }) t.Run("AnalyticsGetTeamCountForScheme", func(t *testing.T) { testTeamStoreAnalyticsGetTeamCountForScheme(t, rctx, ss) })
t.Run("GetAllForExportAfter", func(t *testing.T) { testTeamStoreGetAllForExportAfter(t, ss) }) t.Run("GetAllForExportAfter", func(t *testing.T) { testTeamStoreGetAllForExportAfter(t, rctx, ss) })
t.Run("GetTeamMembersForExport", func(t *testing.T) { testTeamStoreGetTeamMembersForExport(t, ss) }) t.Run("GetTeamMembersForExport", func(t *testing.T) { testTeamStoreGetTeamMembersForExport(t, rctx, ss) })
t.Run("GetTeamsForUserWithPagination", func(t *testing.T) { testTeamMembersWithPagination(t, ss) }) t.Run("GetTeamsForUserWithPagination", func(t *testing.T) { testTeamMembersWithPagination(t, rctx, ss) })
t.Run("GroupSyncedTeamCount", func(t *testing.T) { testGroupSyncedTeamCount(t, ss) }) t.Run("GroupSyncedTeamCount", func(t *testing.T) { testGroupSyncedTeamCount(t, rctx, ss) })
t.Run("GetCommonTeamIDsForMultipleUsers", func(t *testing.T) { testGetCommonTeamIDsForMultipleUsers(t, ss) }) t.Run("GetCommonTeamIDsForMultipleUsers", func(t *testing.T) { testGetCommonTeamIDsForMultipleUsers(t, rctx, ss) })
} }
func testTeamStoreSave(t *testing.T, ss store.Store) { func testTeamStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -95,7 +95,7 @@ func testTeamStoreSave(t *testing.T, ss store.Store) {
require.Error(t, err, "should be unique domain") require.Error(t, err, "should be unique domain")
} }
func testTeamStoreUpdate(t *testing.T, ss store.Store) { func testTeamStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -118,7 +118,7 @@ func testTeamStoreUpdate(t *testing.T, ss store.Store) {
require.Error(t, err, "Update should have faile because id change") require.Error(t, err, "Update should have faile because id change")
} }
func testTeamStoreGet(t *testing.T, ss store.Store) { func testTeamStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -135,7 +135,7 @@ func testTeamStoreGet(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testTeamStoreGetMany(t *testing.T, ss store.Store) { func testTeamStoreGetMany(t *testing.T, rctx request.CTX, ss store.Store) {
o1, err := ss.Team().Save(&model.Team{ o1, err := ss.Team().Save(&model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",
Name: NewTestId(), Name: NewTestId(),
@@ -166,7 +166,7 @@ func testTeamStoreGetMany(t *testing.T, ss store.Store) {
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
} }
func testTeamStoreGetByNames(t *testing.T, ss store.Store) { func testTeamStoreGetByNames(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -219,7 +219,7 @@ func testTeamStoreGetByNames(t *testing.T, ss store.Store) {
}) })
} }
func testTeamStoreGetByName(t *testing.T, ss store.Store) { func testTeamStoreGetByName(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -247,8 +247,8 @@ func testTeamStoreGetByName(t *testing.T, ss store.Store) {
}) })
} }
func testTeamStoreSearchAll(t *testing.T, ss store.Store) { func testTeamStoreSearchAll(t *testing.T, rctx request.CTX, ss store.Store) {
cleanupTeamStore(t, ss) cleanupTeamStore(t, rctx, ss)
o := model.Team{} o := model.Team{}
o.DisplayName = "ADisplayName" + NewTestId() o.DisplayName = "ADisplayName" + NewTestId()
@@ -436,7 +436,7 @@ func testTeamStoreSearchAll(t *testing.T, ss store.Store) {
} }
} }
func testTeamStoreSearchOpen(t *testing.T, ss store.Store) { func testTeamStoreSearchOpen(t *testing.T, rctx request.CTX, ss store.Store) {
o := model.Team{} o := model.Team{}
o.DisplayName = "ADisplayName" + NewTestId() o.DisplayName = "ADisplayName" + NewTestId()
o.Name = NewTestId() o.Name = NewTestId()
@@ -542,7 +542,7 @@ func testTeamStoreSearchOpen(t *testing.T, ss store.Store) {
} }
} }
func testTeamStoreSearchPrivate(t *testing.T, ss store.Store) { func testTeamStoreSearchPrivate(t *testing.T, rctx request.CTX, ss store.Store) {
o := model.Team{} o := model.Team{}
o.DisplayName = "ADisplayName" + NewTestId() o.DisplayName = "ADisplayName" + NewTestId()
o.Name = NewTestId() o.Name = NewTestId()
@@ -648,7 +648,7 @@ func testTeamStoreSearchPrivate(t *testing.T, ss store.Store) {
} }
} }
func testTeamStoreGetByInviteId(t *testing.T, ss store.Store) { func testTeamStoreGetByInviteId(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -667,7 +667,7 @@ func testTeamStoreGetByInviteId(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testTeamStoreByUserId(t *testing.T, ss store.Store) { func testTeamStoreByUserId(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.Team{} o1 := &model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -687,7 +687,7 @@ func testTeamStoreByUserId(t *testing.T, ss store.Store) {
require.Equal(t, teams[0].Id, o1.Id, "should be a member") require.Equal(t, teams[0].Id, o1.Id, "should be a member")
} }
func testTeamStoreGetAllPage(t *testing.T, ss store.Store) { func testTeamStoreGetAllPage(t *testing.T, rctx request.CTX, ss store.Store) {
o := model.Team{} o := model.Team{}
o.DisplayName = "ADisplayName" + model.NewId() o.DisplayName = "ADisplayName" + model.NewId()
o.Name = "zz" + model.NewId() + "a" o.Name = "zz" + model.NewId() + "a"
@@ -745,7 +745,7 @@ func testTeamStoreGetAllPage(t *testing.T, ss store.Store) {
require.True(t, found) require.True(t, found)
} }
func testGetAllTeamListing(t *testing.T, ss store.Store) { func testGetAllTeamListing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -789,7 +789,7 @@ func testGetAllTeamListing(t *testing.T, ss store.Store) {
require.NotEmpty(t, teams, "failed team listing") require.NotEmpty(t, teams, "failed team listing")
} }
func testGetAllTeamPageListing(t *testing.T, ss store.Store) { func testGetAllTeamPageListing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -865,7 +865,7 @@ func testGetAllTeamPageListing(t *testing.T, ss store.Store) {
require.LessOrEqual(t, len(teams), 1, "should have returned max of 1 team") require.LessOrEqual(t, len(teams), 1, "should have returned max of 1 team")
} }
func testGetAllPrivateTeamListing(t *testing.T, ss store.Store) { func testGetAllPrivateTeamListing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -909,7 +909,7 @@ func testGetAllPrivateTeamListing(t *testing.T, ss store.Store) {
} }
} }
func testGetAllPrivateTeamPageListing(t *testing.T, ss store.Store) { func testGetAllPrivateTeamPageListing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -982,8 +982,8 @@ func testGetAllPrivateTeamPageListing(t *testing.T, ss store.Store) {
require.LessOrEqual(t, len(teams), 1, "should have returned max of 1 team") require.LessOrEqual(t, len(teams), 1, "should have returned max of 1 team")
} }
func testGetAllPublicTeamPageListing(t *testing.T, ss store.Store) { func testGetAllPublicTeamPageListing(t *testing.T, rctx request.CTX, ss store.Store) {
cleanupTeamStore(t, ss) cleanupTeamStore(t, rctx, ss)
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName1" o1.DisplayName = "DisplayName1"
@@ -1044,7 +1044,7 @@ func testGetAllPublicTeamPageListing(t *testing.T, ss store.Store) {
assert.NoError(t, err) assert.NoError(t, err)
} }
func testDelete(t *testing.T, ss store.Store) { func testDelete(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -1066,8 +1066,8 @@ func testDelete(t *testing.T, ss store.Store) {
require.NoError(t, r1) require.NoError(t, r1)
} }
func testPublicTeamCount(t *testing.T, ss store.Store) { func testPublicTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
cleanupTeamStore(t, ss) cleanupTeamStore(t, rctx, ss)
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
@@ -1101,8 +1101,8 @@ func testPublicTeamCount(t *testing.T, ss store.Store) {
require.Equal(t, int64(2), teamCount, "should only be 1 team") require.Equal(t, int64(2), teamCount, "should only be 1 team")
} }
func testPrivateTeamCount(t *testing.T, ss store.Store) { func testPrivateTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
cleanupTeamStore(t, ss) cleanupTeamStore(t, rctx, ss)
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
@@ -1136,7 +1136,7 @@ func testPrivateTeamCount(t *testing.T, ss store.Store) {
require.Equal(t, int64(2), teamCount, "should only be 1 team") require.Equal(t, int64(2), teamCount, "should only be 1 team")
} }
func testTeamCount(t *testing.T, ss store.Store) { func testTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.Team{} o1 := model.Team{}
o1.DisplayName = "DisplayName" o1.DisplayName = "DisplayName"
o1.Name = NewTestId() o1.Name = NewTestId()
@@ -1168,7 +1168,7 @@ func testTeamCount(t *testing.T, ss store.Store) {
require.Equal(t, countNotIncludingDeleted+1, countIncludingDeleted) require.Equal(t, countNotIncludingDeleted+1, countIncludingDeleted)
} }
func testGetMembers(t *testing.T, ss store.Store) { func testGetMembers(t *testing.T, rctx request.CTX, ss store.Store) {
// Each user should have a mention count of exactly 1 in the DB at this point. // Each user should have a mention count of exactly 1 in the DB at this point.
t.Run("Test GetMembers Order By UserID", func(t *testing.T) { t.Run("Test GetMembers Order By UserID", func(t *testing.T) {
teamId1 := model.NewId() teamId1 := model.NewId()
@@ -1299,9 +1299,7 @@ func testGetMembers(t *testing.T, ss store.Store) {
}) })
} }
func testTeamMembers(t *testing.T, ss store.Store) { func testTeamMembers(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
teamId1 := model.NewId() teamId1 := model.NewId()
teamId2 := model.NewId() teamId2 := model.NewId()
@@ -1321,7 +1319,7 @@ func testTeamMembers(t *testing.T, ss store.Store) {
require.Len(t, ms, 1) require.Len(t, ms, 1)
require.Equal(t, m3.UserId, ms[0].UserId) require.Equal(t, m3.UserId, ms[0].UserId)
ms, err = ss.Team().GetTeamsForUser(c, m1.UserId, "", true) ms, err = ss.Team().GetTeamsForUser(rctx, m1.UserId, "", true)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, ms, 1) require.Len(t, ms, 1)
require.Equal(t, m1.TeamId, ms[0].TeamId) require.Equal(t, m1.TeamId, ms[0].TeamId)
@@ -1350,11 +1348,11 @@ func testTeamMembers(t *testing.T, ss store.Store) {
_, nErr = ss.Team().SaveMultipleMembers([]*model.TeamMember{m4, m5}, -1) _, nErr = ss.Team().SaveMultipleMembers([]*model.TeamMember{m4, m5}, -1)
require.NoError(t, nErr) require.NoError(t, nErr)
ms, err = ss.Team().GetTeamsForUser(c, uid, "", true) ms, err = ss.Team().GetTeamsForUser(rctx, uid, "", true)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, ms, 2) require.Len(t, ms, 2)
ms, err = ss.Team().GetTeamsForUser(c, uid, teamId2, true) ms, err = ss.Team().GetTeamsForUser(rctx, uid, teamId2, true)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, ms, 1) require.Len(t, ms, 1)
@@ -1362,23 +1360,23 @@ func testTeamMembers(t *testing.T, ss store.Store) {
_, err = ss.Team().UpdateMember(m4) _, err = ss.Team().UpdateMember(m4)
require.NoError(t, err) require.NoError(t, err)
ms, err = ss.Team().GetTeamsForUser(c, uid, "", true) ms, err = ss.Team().GetTeamsForUser(rctx, uid, "", true)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, ms, 2) require.Len(t, ms, 2)
ms, err = ss.Team().GetTeamsForUser(c, uid, "", false) ms, err = ss.Team().GetTeamsForUser(rctx, uid, "", false)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, ms, 1) require.Len(t, ms, 1)
nErr = ss.Team().RemoveAllMembersByUser(uid) nErr = ss.Team().RemoveAllMembersByUser(uid)
require.NoError(t, nErr) require.NoError(t, nErr)
ms, err = ss.Team().GetTeamsForUser(c, m1.UserId, "", true) ms, err = ss.Team().GetTeamsForUser(rctx, m1.UserId, "", true)
require.NoError(t, err) require.NoError(t, err)
require.Empty(t, ms) require.Empty(t, ms)
} }
func testTeamSaveMember(t *testing.T, ss store.Store) { func testTeamSaveMember(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -1714,7 +1712,7 @@ func testTeamSaveMember(t *testing.T, ss store.Store) {
}) })
} }
func testTeamSaveMultipleMembers(t *testing.T, ss store.Store) { func testTeamSaveMultipleMembers(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -2093,7 +2091,7 @@ func testTeamSaveMultipleMembers(t *testing.T, ss store.Store) {
}) })
} }
func testTeamUpdateMember(t *testing.T, ss store.Store) { func testTeamUpdateMember(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
@@ -2399,7 +2397,7 @@ func testTeamUpdateMember(t *testing.T, ss store.Store) {
}) })
} }
func testTeamUpdateMultipleMembers(t *testing.T, ss store.Store) { func testTeamUpdateMultipleMembers(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -2722,7 +2720,7 @@ func testTeamUpdateMultipleMembers(t *testing.T, ss store.Store) {
}) })
} }
func testTeamRemoveMember(t *testing.T, ss store.Store) { func testTeamRemoveMember(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -2768,7 +2766,7 @@ func testTeamRemoveMember(t *testing.T, ss store.Store) {
}) })
} }
func testTeamRemoveMembers(t *testing.T, ss store.Store) { func testTeamRemoveMembers(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u1, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
require.NoError(t, err) require.NoError(t, err)
u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()}) u2, err := ss.User().Save(&model.User{Username: model.NewId(), Email: MakeEmail()})
@@ -2823,7 +2821,7 @@ func testTeamRemoveMembers(t *testing.T, ss store.Store) {
}) })
} }
func testTeamMembersWithPagination(t *testing.T, ss store.Store) { func testTeamMembersWithPagination(t *testing.T, rctx request.CTX, ss store.Store) {
teamId1 := model.NewId() teamId1 := model.NewId()
teamId2 := model.NewId() teamId2 := model.NewId()
@@ -2873,7 +2871,7 @@ func testTeamMembersWithPagination(t *testing.T, ss store.Store) {
require.Empty(t, result) require.Empty(t, result)
} }
func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) { func testSaveTeamMemberMaxMembers(t *testing.T, rctx request.CTX, ss store.Store) {
maxUsersPerTeam := 5 maxUsersPerTeam := 5
team, errSave := ss.Team().Save(&model.Team{ team, errSave := ss.Team().Save(&model.Team{
@@ -2975,9 +2973,7 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
defer ss.Team().RemoveMember(team.Id, newUserId2) defer ss.Team().RemoveMember(team.Id, newUserId2)
} }
func testGetTeamMember(t *testing.T, ss store.Store) { func testGetTeamMember(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
teamId1 := model.NewId() teamId1 := model.NewId()
m1 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()} m1 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()}
@@ -2985,17 +2981,17 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
require.NoError(t, nErr) require.NoError(t, nErr)
var rm1 *model.TeamMember var rm1 *model.TeamMember
rm1, err := ss.Team().GetMember(c, m1.TeamId, m1.UserId) rm1, err := ss.Team().GetMember(rctx, m1.TeamId, m1.UserId)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, rm1.TeamId, m1.TeamId, "bad team id") require.Equal(t, rm1.TeamId, m1.TeamId, "bad team id")
require.Equal(t, rm1.UserId, m1.UserId, "bad user id") require.Equal(t, rm1.UserId, m1.UserId, "bad user id")
_, err = ss.Team().GetMember(c, m1.TeamId, "") _, err = ss.Team().GetMember(rctx, m1.TeamId, "")
require.Error(t, err, "empty user id - should have failed") require.Error(t, err, "empty user id - should have failed")
_, err = ss.Team().GetMember(c, "", m1.UserId) _, err = ss.Team().GetMember(rctx, "", m1.UserId)
require.Error(t, err, "empty team id - should have failed") require.Error(t, err, "empty team id - should have failed")
// Test with a custom team scheme. // Test with a custom team scheme.
@@ -3025,7 +3021,7 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
_, nErr = ss.Team().SaveMember(m2, -1) _, nErr = ss.Team().SaveMember(m2, -1)
require.NoError(t, nErr) require.NoError(t, nErr)
m3, err := ss.Team().GetMember(c, m2.TeamId, m2.UserId) m3, err := ss.Team().GetMember(rctx, m2.TeamId, m2.UserId)
require.NoError(t, err) require.NoError(t, err)
t.Log(m3) t.Log(m3)
@@ -3035,13 +3031,13 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
_, nErr = ss.Team().SaveMember(m4, -1) _, nErr = ss.Team().SaveMember(m4, -1)
require.NoError(t, nErr) require.NoError(t, nErr)
m5, err := ss.Team().GetMember(c, m4.TeamId, m4.UserId) m5, err := ss.Team().GetMember(rctx, m4.TeamId, m4.UserId)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, s2.DefaultTeamGuestRole, m5.Roles) assert.Equal(t, s2.DefaultTeamGuestRole, m5.Roles)
} }
func testGetTeamMembersByIds(t *testing.T, ss store.Store) { func testGetTeamMembersByIds(t *testing.T, rctx request.CTX, ss store.Store) {
teamId1 := model.NewId() teamId1 := model.NewId()
m1 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()} m1 := &model.TeamMember{TeamId: teamId1, UserId: model.NewId()}
@@ -3069,7 +3065,7 @@ func testGetTeamMembersByIds(t *testing.T, ss store.Store) {
require.Error(t, err, "empty user ids - should have failed") require.Error(t, err, "empty user ids - should have failed")
} }
func testTeamStoreMemberCount(t *testing.T, ss store.Store) { func testTeamStoreMemberCount(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(u1) _, err := ss.User().Save(u1)
@@ -3113,7 +3109,7 @@ func testTeamStoreMemberCount(t *testing.T, ss store.Store) {
require.Equal(t, 1, int(result), "wrong count") require.Equal(t, 1, int(result), "wrong count")
} }
func testGetChannelUnreadsForAllTeams(t *testing.T, ss store.Store) { func testGetChannelUnreadsForAllTeams(t *testing.T, rctx request.CTX, ss store.Store) {
teamId1 := model.NewId() teamId1 := model.NewId()
teamId2 := model.NewId() teamId2 := model.NewId()
@@ -3171,7 +3167,7 @@ func testGetChannelUnreadsForAllTeams(t *testing.T, ss store.Store) {
require.NoError(t, nErr) require.NoError(t, nErr)
} }
func testGetChannelUnreadsForTeam(t *testing.T, ss store.Store) { func testGetChannelUnreadsForTeam(t *testing.T, rctx request.CTX, ss store.Store) {
teamId1 := model.NewId() teamId1 := model.NewId()
uid := model.NewId() uid := model.NewId()
@@ -3201,7 +3197,7 @@ func testGetChannelUnreadsForTeam(t *testing.T, ss store.Store) {
require.Equal(t, 10, int(ms[0].MsgCount), "subtraction failed") require.Equal(t, 10, int(ms[0].MsgCount), "subtraction failed")
} }
func testUpdateLastTeamIconUpdate(t *testing.T, ss store.Store) { func testUpdateLastTeamIconUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
// team icon initially updated a second ago // team icon initially updated a second ago
lastTeamIconUpdateInitial := model.GetMillis() - 1000 lastTeamIconUpdateInitial := model.GetMillis() - 1000
@@ -3225,7 +3221,7 @@ func testUpdateLastTeamIconUpdate(t *testing.T, ss store.Store) {
require.Greater(t, ro1.LastTeamIconUpdate, lastTeamIconUpdateInitial, "LastTeamIconUpdate not updated") require.Greater(t, ro1.LastTeamIconUpdate, lastTeamIconUpdateInitial, "LastTeamIconUpdate not updated")
} }
func testGetTeamsByScheme(t *testing.T, ss store.Store) { func testGetTeamsByScheme(t *testing.T, rctx request.CTX, ss store.Store) {
// Create some schemes. // Create some schemes.
s1 := &model.Scheme{ s1 := &model.Scheme{
DisplayName: NewTestId(), DisplayName: NewTestId(),
@@ -3295,9 +3291,7 @@ func testGetTeamsByScheme(t *testing.T, ss store.Store) {
assert.Empty(t, d) assert.Empty(t, d)
} }
func testTeamStoreMigrateTeamMembers(t *testing.T, ss store.Store) { func testTeamStoreMigrateTeamMembers(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
s1 := model.NewId() s1 := model.NewId()
t1 := &model.Team{ t1 := &model.Team{
DisplayName: "Name", DisplayName: "Name",
@@ -3347,26 +3341,26 @@ func testTeamStoreMigrateTeamMembers(t *testing.T, ss store.Store) {
} }
} }
tm1b, err := ss.Team().GetMember(c, tm1.TeamId, tm1.UserId) tm1b, err := ss.Team().GetMember(rctx, tm1.TeamId, tm1.UserId)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "", tm1b.ExplicitRoles) assert.Equal(t, "", tm1b.ExplicitRoles)
assert.True(t, tm1b.SchemeUser) assert.True(t, tm1b.SchemeUser)
assert.True(t, tm1b.SchemeAdmin) assert.True(t, tm1b.SchemeAdmin)
tm2b, err := ss.Team().GetMember(c, tm2.TeamId, tm2.UserId) tm2b, err := ss.Team().GetMember(rctx, tm2.TeamId, tm2.UserId)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "", tm2b.ExplicitRoles) assert.Equal(t, "", tm2b.ExplicitRoles)
assert.True(t, tm2b.SchemeUser) assert.True(t, tm2b.SchemeUser)
assert.False(t, tm2b.SchemeAdmin) assert.False(t, tm2b.SchemeAdmin)
tm3b, err := ss.Team().GetMember(c, tm3.TeamId, tm3.UserId) tm3b, err := ss.Team().GetMember(rctx, tm3.TeamId, tm3.UserId)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "something_else", tm3b.ExplicitRoles) assert.Equal(t, "something_else", tm3b.ExplicitRoles)
assert.False(t, tm3b.SchemeUser) assert.False(t, tm3b.SchemeUser)
assert.False(t, tm3b.SchemeAdmin) assert.False(t, tm3b.SchemeAdmin)
} }
func testResetAllTeamSchemes(t *testing.T, ss store.Store) { func testResetAllTeamSchemes(t *testing.T, rctx request.CTX, ss store.Store) {
s1 := &model.Scheme{ s1 := &model.Scheme{
Name: NewTestId(), Name: NewTestId(),
DisplayName: NewTestId(), DisplayName: NewTestId(),
@@ -3413,9 +3407,7 @@ func testResetAllTeamSchemes(t *testing.T, ss store.Store) {
assert.Equal(t, "", *t2.SchemeId) assert.Equal(t, "", *t2.SchemeId)
} }
func testTeamStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) { func testTeamStoreClearAllCustomRoleAssignments(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
m1 := &model.TeamMember{ m1 := &model.TeamMember{
TeamId: model.NewId(), TeamId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
@@ -3442,24 +3434,24 @@ func testTeamStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) {
require.NoError(t, (ss.Team().ClearAllCustomRoleAssignments())) require.NoError(t, (ss.Team().ClearAllCustomRoleAssignments()))
r1, err := ss.Team().GetMember(c, m1.TeamId, m1.UserId) r1, err := ss.Team().GetMember(rctx, m1.TeamId, m1.UserId)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, m1.ExplicitRoles, r1.Roles) assert.Equal(t, m1.ExplicitRoles, r1.Roles)
r2, err := ss.Team().GetMember(c, m2.TeamId, m2.UserId) r2, err := ss.Team().GetMember(rctx, m2.TeamId, m2.UserId)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, "team_user team_admin", r2.Roles) assert.Equal(t, "team_user team_admin", r2.Roles)
r3, err := ss.Team().GetMember(c, m3.TeamId, m3.UserId) r3, err := ss.Team().GetMember(rctx, m3.TeamId, m3.UserId)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, m3.ExplicitRoles, r3.Roles) assert.Equal(t, m3.ExplicitRoles, r3.Roles)
r4, err := ss.Team().GetMember(c, m4.TeamId, m4.UserId) r4, err := ss.Team().GetMember(rctx, m4.TeamId, m4.UserId)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, "", r4.Roles) assert.Equal(t, "", r4.Roles)
} }
func testTeamStoreAnalyticsGetTeamCountForScheme(t *testing.T, ss store.Store) { func testTeamStoreAnalyticsGetTeamCountForScheme(t *testing.T, rctx request.CTX, ss store.Store) {
s1 := &model.Scheme{ s1 := &model.Scheme{
DisplayName: NewTestId(), DisplayName: NewTestId(),
Name: NewTestId(), Name: NewTestId(),
@@ -3530,7 +3522,7 @@ func testTeamStoreAnalyticsGetTeamCountForScheme(t *testing.T, ss store.Store) {
assert.Equal(t, int64(2), count5) assert.Equal(t, int64(2), count5)
} }
func testTeamStoreGetAllForExportAfter(t *testing.T, ss store.Store) { func testTeamStoreGetAllForExportAfter(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -3554,7 +3546,7 @@ func testTeamStoreGetAllForExportAfter(t *testing.T, ss store.Store) {
assert.True(t, found) assert.True(t, found)
} }
func testTeamStoreGetTeamMembersForExport(t *testing.T, ss store.Store) { func testTeamStoreGetTeamMembersForExport(t *testing.T, rctx request.CTX, ss store.Store) {
t1 := model.Team{} t1 := model.Team{}
t1.DisplayName = "Name" t1.DisplayName = "Name"
t1.Name = NewTestId() t1.Name = NewTestId()
@@ -3591,7 +3583,7 @@ func testTeamStoreGetTeamMembersForExport(t *testing.T, ss store.Store) {
assert.Equal(t, t1.Name, tmfe1.TeamName) assert.Equal(t, t1.Name, tmfe1.TeamName)
} }
func testGroupSyncedTeamCount(t *testing.T, ss store.Store) { func testGroupSyncedTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
team1, err := ss.Team().Save(&model.Team{ team1, err := ss.Team().Save(&model.Team{
DisplayName: NewTestId(), DisplayName: NewTestId(),
Name: NewTestId(), Name: NewTestId(),
@@ -3627,7 +3619,7 @@ func testGroupSyncedTeamCount(t *testing.T, ss store.Store) {
require.GreaterOrEqual(t, countAfter, count+1) require.GreaterOrEqual(t, countAfter, count+1)
} }
func testGetCommonTeamIDsForMultipleUsers(t *testing.T, ss store.Store) { func testGetCommonTeamIDsForMultipleUsers(t *testing.T, rctx request.CTX, ss store.Store) {
// Creating teams // Creating teams
// Team 1 // Team 1

Просмотреть файл

@@ -10,13 +10,14 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestTermsOfServiceStore(t *testing.T, ss store.Store) { func TestTermsOfServiceStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("TestSaveTermsOfService", func(t *testing.T) { testSaveTermsOfService(t, ss) }) t.Run("TestSaveTermsOfService", func(t *testing.T) { testSaveTermsOfService(t, rctx, ss) })
t.Run("TestGetLatestTermsOfService", func(t *testing.T) { testGetLatestTermsOfService(t, ss) }) t.Run("TestGetLatestTermsOfService", func(t *testing.T) { testGetLatestTermsOfService(t, rctx, ss) })
t.Run("TestGetTermsOfService", func(t *testing.T) { testGetTermsOfService(t, ss) }) t.Run("TestGetTermsOfService", func(t *testing.T) { testGetTermsOfService(t, rctx, ss) })
} }
func cleanUpTOS(ss store.Store) { func cleanUpTOS(ss store.Store) {
@@ -29,7 +30,7 @@ func cleanUpTOS(ss store.Store) {
ss.DropAllTables() ss.DropAllTables()
} }
func testSaveTermsOfService(t *testing.T, ss store.Store) { func testSaveTermsOfService(t *testing.T, rctx request.CTX, ss store.Store) {
t.Cleanup(func() { cleanUpTOS(ss) }) t.Cleanup(func() { cleanUpTOS(ss) })
u1 := model.User{} u1 := model.User{}
@@ -48,7 +49,7 @@ func testSaveTermsOfService(t *testing.T, ss store.Store) {
require.NotEqual(t, savedTermsOfService.CreateAt, 0, "Create at should have been populated") require.NotEqual(t, savedTermsOfService.CreateAt, 0, "Create at should have been populated")
} }
func testGetLatestTermsOfService(t *testing.T, ss store.Store) { func testGetLatestTermsOfService(t *testing.T, rctx request.CTX, ss store.Store) {
t.Cleanup(func() { cleanUpTOS(ss) }) t.Cleanup(func() { cleanUpTOS(ss) })
u1 := model.User{} u1 := model.User{}
@@ -68,7 +69,7 @@ func testGetLatestTermsOfService(t *testing.T, ss store.Store) {
assert.Equal(t, termsOfService.UserId, fetchedTermsOfService.UserId) assert.Equal(t, termsOfService.UserId, fetchedTermsOfService.UserId)
} }
func testGetTermsOfService(t *testing.T, ss store.Store) { func testGetTermsOfService(t *testing.T, rctx request.CTX, ss store.Store) {
t.Cleanup(func() { cleanUpTOS(ss) }) t.Cleanup(func() { cleanUpTOS(ss) })
u1 := model.User{} u1 := model.User{}

Просмотреть файл

@@ -13,25 +13,26 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestThreadStore(t *testing.T, ss store.Store, s SqlStore) { func TestThreadStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("ThreadStorePopulation", func(t *testing.T) { testThreadStorePopulation(t, ss) }) t.Run("ThreadStorePopulation", func(t *testing.T) { testThreadStorePopulation(t, rctx, ss) })
t.Run("ThreadStorePermanentDeleteBatchForRetentionPolicies", func(t *testing.T) { t.Run("ThreadStorePermanentDeleteBatchForRetentionPolicies", func(t *testing.T) {
testThreadStorePermanentDeleteBatchForRetentionPolicies(t, ss) testThreadStorePermanentDeleteBatchForRetentionPolicies(t, rctx, ss)
}) })
t.Run("ThreadStorePermanentDeleteBatchThreadMembershipsForRetentionPolicies", func(t *testing.T) { t.Run("ThreadStorePermanentDeleteBatchThreadMembershipsForRetentionPolicies", func(t *testing.T) {
testThreadStorePermanentDeleteBatchThreadMembershipsForRetentionPolicies(t, ss, s) testThreadStorePermanentDeleteBatchThreadMembershipsForRetentionPolicies(t, rctx, ss, s)
}) })
t.Run("GetTeamsUnreadForUser", func(t *testing.T) { testGetTeamsUnreadForUser(t, ss) }) t.Run("GetTeamsUnreadForUser", func(t *testing.T) { testGetTeamsUnreadForUser(t, rctx, ss) })
t.Run("GetVarious", func(t *testing.T) { testVarious(t, ss) }) t.Run("GetVarious", func(t *testing.T) { testVarious(t, rctx, ss) })
t.Run("MarkAllAsReadByChannels", func(t *testing.T) { testMarkAllAsReadByChannels(t, ss) }) t.Run("MarkAllAsReadByChannels", func(t *testing.T) { testMarkAllAsReadByChannels(t, rctx, ss) })
t.Run("MarkAllAsReadByTeam", func(t *testing.T) { testMarkAllAsReadByTeam(t, ss) }) t.Run("MarkAllAsReadByTeam", func(t *testing.T) { testMarkAllAsReadByTeam(t, rctx, ss) })
t.Run("DeleteMembershipsForChannel", func(t *testing.T) { testDeleteMembershipsForChannel(t, ss) }) t.Run("DeleteMembershipsForChannel", func(t *testing.T) { testDeleteMembershipsForChannel(t, rctx, ss) })
} }
func testThreadStorePopulation(t *testing.T, ss store.Store) { func testThreadStorePopulation(t *testing.T, rctx request.CTX, ss store.Store) {
makeSomePosts := func(urgent bool) []*model.Post { makeSomePosts := func(urgent bool) []*model.Post {
u1 := model.User{ u1 := model.User{
Email: MakeEmail(), Email: MakeEmail(),
@@ -490,7 +491,7 @@ func threadStoreCreateReply(t *testing.T, ss store.Store, channelID, postID, use
return reply return reply
} }
func testThreadStorePermanentDeleteBatchForRetentionPolicies(t *testing.T, ss store.Store) { func testThreadStorePermanentDeleteBatchForRetentionPolicies(t *testing.T, rctx request.CTX, ss store.Store) {
const limit = 1000 const limit = 1000
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "DisplayName", DisplayName: "DisplayName",
@@ -564,7 +565,7 @@ func testThreadStorePermanentDeleteBatchForRetentionPolicies(t *testing.T, ss st
assert.Nil(t, thread, "thread should have been deleted by team policy") assert.Nil(t, thread, "thread should have been deleted by team policy")
} }
func testThreadStorePermanentDeleteBatchThreadMembershipsForRetentionPolicies(t *testing.T, ss store.Store, s SqlStore) { func testThreadStorePermanentDeleteBatchThreadMembershipsForRetentionPolicies(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
const limit = 1000 const limit = 1000
userID := model.NewId() userID := model.NewId()
createThreadMembership := func(userID, postID string) *model.ThreadMembership { createThreadMembership := func(userID, postID string) *model.ThreadMembership {
@@ -662,7 +663,7 @@ func testThreadStorePermanentDeleteBatchThreadMembershipsForRetentionPolicies(t
require.Error(t, err, "thread membership should have been deleted because thread no longer exists") require.Error(t, err, "thread membership should have been deleted because thread no longer exists")
} }
func testGetTeamsUnreadForUser(t *testing.T, ss store.Store) { func testGetTeamsUnreadForUser(t *testing.T, rctx request.CTX, ss store.Store) {
userID := model.NewId() userID := model.NewId()
createThreadMembership := func(userID, postID string) { createThreadMembership := func(userID, postID string) {
t.Helper() t.Helper()
@@ -776,7 +777,7 @@ func (a byPostId) Len() int { return len(a) }
func (a byPostId) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a byPostId) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a byPostId) Less(i, j int) bool { return a[i].Id < a[j].Id } func (a byPostId) Less(i, j int) bool { return a[i].Id < a[j].Id }
func testVarious(t *testing.T, ss store.Store) { func testVarious(t *testing.T, rctx request.CTX, ss store.Store) {
createThreadMembership := func(userID, postID string, isMention bool) { createThreadMembership := func(userID, postID string, isMention bool) {
t.Helper() t.Helper()
@@ -1203,7 +1204,7 @@ func testVarious(t *testing.T, ss store.Store) {
}) })
} }
func testMarkAllAsReadByChannels(t *testing.T, ss store.Store) { func testMarkAllAsReadByChannels(t *testing.T, rctx request.CTX, ss store.Store) {
postingUserId := model.NewId() postingUserId := model.NewId()
userAID := model.NewId() userAID := model.NewId()
userBID := model.NewId() userBID := model.NewId()
@@ -1347,7 +1348,7 @@ func testMarkAllAsReadByChannels(t *testing.T, ss store.Store) {
}) })
} }
func testMarkAllAsReadByTeam(t *testing.T, ss store.Store) { func testMarkAllAsReadByTeam(t *testing.T, rctx request.CTX, ss store.Store) {
createThreadMembership := func(userID, postID string) { createThreadMembership := func(userID, postID string) {
t.Helper() t.Helper()
opts := store.ThreadMembershipOpts{ opts := store.ThreadMembershipOpts{
@@ -1573,7 +1574,7 @@ func testMarkAllAsReadByTeam(t *testing.T, ss store.Store) {
}) })
} }
func testDeleteMembershipsForChannel(t *testing.T, ss store.Store) { func testDeleteMembershipsForChannel(t *testing.T, rctx request.CTX, ss store.Store) {
createThreadMembership := func(userID, postID string) (*model.ThreadMembership, func()) { createThreadMembership := func(userID, postID string) (*model.ThreadMembership, func()) {
t.Helper() t.Helper()
opts := store.ThreadMembershipOpts{ opts := store.ThreadMembershipOpts{

Просмотреть файл

@@ -10,14 +10,15 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestTokensStore(t *testing.T, ss store.Store) { func TestTokensStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("TokensCleanup", func(t *testing.T) { testTokensCleanup(t, ss) }) t.Run("TokensCleanup", func(t *testing.T) { testTokensCleanup(t, rctx, ss) })
} }
func testTokensCleanup(t *testing.T, ss store.Store) { func testTokensCleanup(t *testing.T, rctx request.CTX, ss store.Store) {
now := model.GetMillis() now := model.GetMillis()
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {

Просмотреть файл

@@ -10,17 +10,18 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
"github.com/mattermost/mattermost/server/v8/channels/utils" "github.com/mattermost/mattermost/server/v8/channels/utils"
) )
func TestTrueUpReviewStatusStore(t *testing.T, ss store.Store, s SqlStore) { func TestTrueUpReviewStatusStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
t.Run("CreateTrueUpReviewStatusRecord", func(t *testing.T) { testCreateTrueUpReviewStatus(t, ss) }) t.Run("CreateTrueUpReviewStatusRecord", func(t *testing.T) { testCreateTrueUpReviewStatus(t, rctx, ss) })
t.Run("GetTrueUpReviewStatus", func(t *testing.T) { testGetTrueUpReviewStatus(t, ss) }) t.Run("GetTrueUpReviewStatus", func(t *testing.T) { testGetTrueUpReviewStatus(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testUpdateTrueUpReviewStatus(t, ss) }) t.Run("Update", func(t *testing.T) { testUpdateTrueUpReviewStatus(t, rctx, ss) })
} }
func testCreateTrueUpReviewStatus(t *testing.T, ss store.Store) { func testCreateTrueUpReviewStatus(t *testing.T, rctx request.CTX, ss store.Store) {
now := time.Date(time.Now().Year(), time.January, 1, 0, 0, 0, 0, time.Local) now := time.Date(time.Now().Year(), time.January, 1, 0, 0, 0, 0, time.Local)
reviewStatus := model.TrueUpReviewStatus{ reviewStatus := model.TrueUpReviewStatus{
@@ -37,7 +38,7 @@ func testCreateTrueUpReviewStatus(t *testing.T, ss store.Store) {
}) })
} }
func testGetTrueUpReviewStatus(t *testing.T, ss store.Store) { func testGetTrueUpReviewStatus(t *testing.T, rctx request.CTX, ss store.Store) {
now := time.Date(time.Now().Year(), time.August, 1, 0, 0, 0, 0, time.Local) now := time.Date(time.Now().Year(), time.August, 1, 0, 0, 0, 0, time.Local)
dueDate := utils.GetNextTrueUpReviewDueDate(now).UnixMilli() dueDate := utils.GetNextTrueUpReviewDueDate(now).UnixMilli()
@@ -58,7 +59,7 @@ func testGetTrueUpReviewStatus(t *testing.T, ss store.Store) {
}) })
} }
func testUpdateTrueUpReviewStatus(t *testing.T, ss store.Store) { func testUpdateTrueUpReviewStatus(t *testing.T, rctx request.CTX, ss store.Store) {
now := time.Date(time.Now().Year(), time.April, 1, 0, 0, 0, 0, time.Local) now := time.Date(time.Now().Year(), time.April, 1, 0, 0, 0, 0, time.Local)
reviewStatus := model.TrueUpReviewStatus{ reviewStatus := model.TrueUpReviewStatus{

Просмотреть файл

@@ -14,16 +14,14 @@ import (
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestUploadSessionStore(t *testing.T, ss store.Store) { func TestUploadSessionStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("UploadSessionStoreSaveGet", func(t *testing.T) { testUploadSessionStoreSaveGet(t, ss) }) t.Run("UploadSessionStoreSaveGet", func(t *testing.T) { testUploadSessionStoreSaveGet(t, rctx, ss) })
t.Run("UploadSessionStoreUpdate", func(t *testing.T) { testUploadSessionStoreUpdate(t, ss) }) t.Run("UploadSessionStoreUpdate", func(t *testing.T) { testUploadSessionStoreUpdate(t, rctx, ss) })
t.Run("UploadSessionStoreGetForUser", func(t *testing.T) { testUploadSessionStoreGetForUser(t, ss) }) t.Run("UploadSessionStoreGetForUser", func(t *testing.T) { testUploadSessionStoreGetForUser(t, rctx, ss) })
t.Run("UploadSessionStoreDelete", func(t *testing.T) { testUploadSessionStoreDelete(t, ss) }) t.Run("UploadSessionStoreDelete", func(t *testing.T) { testUploadSessionStoreDelete(t, rctx, ss) })
} }
func testUploadSessionStoreSaveGet(t *testing.T, ss store.Store) { func testUploadSessionStoreSaveGet(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
var session *model.UploadSession var session *model.UploadSession
t.Run("saving nil session should fail", func(t *testing.T) { t.Run("saving nil session should fail", func(t *testing.T) {
@@ -55,22 +53,20 @@ func testUploadSessionStoreSaveGet(t *testing.T, ss store.Store) {
}) })
t.Run("getting non-existing session should fail", func(t *testing.T) { t.Run("getting non-existing session should fail", func(t *testing.T) {
us, err := ss.UploadSession().Get(c, "fake") us, err := ss.UploadSession().Get(rctx, "fake")
require.Error(t, err) require.Error(t, err)
require.Nil(t, us) require.Nil(t, us)
}) })
t.Run("getting existing session should succeed", func(t *testing.T) { t.Run("getting existing session should succeed", func(t *testing.T) {
us, err := ss.UploadSession().Get(c, session.Id) us, err := ss.UploadSession().Get(rctx, session.Id)
require.NoError(t, err) require.NoError(t, err)
require.NotNil(t, us) require.NotNil(t, us)
require.Equal(t, session, us) require.Equal(t, session, us)
}) })
} }
func testUploadSessionStoreUpdate(t *testing.T, ss store.Store) { func testUploadSessionStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
session := &model.UploadSession{ session := &model.UploadSession{
Type: model.UploadTypeAttachment, Type: model.UploadTypeAttachment,
UserId: model.NewId(), UserId: model.NewId(),
@@ -105,14 +101,14 @@ func testUploadSessionStoreUpdate(t *testing.T, ss store.Store) {
err = ss.UploadSession().Update(us) err = ss.UploadSession().Update(us)
require.NoError(t, err) require.NoError(t, err)
updated, err := ss.UploadSession().Get(c, us.Id) updated, err := ss.UploadSession().Get(rctx, us.Id)
require.NoError(t, err) require.NoError(t, err)
require.NotNil(t, us) require.NotNil(t, us)
require.Equal(t, us, updated) require.Equal(t, us, updated)
}) })
} }
func testUploadSessionStoreGetForUser(t *testing.T, ss store.Store) { func testUploadSessionStoreGetForUser(t *testing.T, rctx request.CTX, ss store.Store) {
userId := model.NewId() userId := model.NewId()
sessions := []*model.UploadSession{ sessions := []*model.UploadSession{
@@ -179,9 +175,7 @@ func testUploadSessionStoreGetForUser(t *testing.T, ss store.Store) {
}) })
} }
func testUploadSessionStoreDelete(t *testing.T, ss store.Store) { func testUploadSessionStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
session := &model.UploadSession{ session := &model.UploadSession{
Id: model.NewId(), Id: model.NewId(),
Type: model.UploadTypeAttachment, Type: model.UploadTypeAttachment,
@@ -206,7 +200,7 @@ func testUploadSessionStoreDelete(t *testing.T, ss store.Store) {
err = ss.UploadSession().Delete(session.Id) err = ss.UploadSession().Delete(session.Id)
require.NoError(t, err) require.NoError(t, err)
us, err = ss.UploadSession().Get(c, us.Id) us, err = ss.UploadSession().Get(rctx, us.Id)
require.Error(t, err) require.Error(t, err)
require.Nil(t, us) require.Nil(t, us)
require.IsType(t, &store.ErrNotFound{}, err) require.IsType(t, &store.ErrNotFound{}, err)

Просмотреть файл

@@ -13,15 +13,13 @@ import (
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestUserAccessTokenStore(t *testing.T, ss store.Store) { func TestUserAccessTokenStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("UserAccessTokenSaveGetDelete", func(t *testing.T) { testUserAccessTokenSaveGetDelete(t, ss) }) t.Run("UserAccessTokenSaveGetDelete", func(t *testing.T) { testUserAccessTokenSaveGetDelete(t, rctx, ss) })
t.Run("UserAccessTokenDisableEnable", func(t *testing.T) { testUserAccessTokenDisableEnable(t, ss) }) t.Run("UserAccessTokenDisableEnable", func(t *testing.T) { testUserAccessTokenDisableEnable(t, rctx, ss) })
t.Run("UserAccessTokenSearch", func(t *testing.T) { testUserAccessTokenSearch(t, ss) }) t.Run("UserAccessTokenSearch", func(t *testing.T) { testUserAccessTokenSearch(t, rctx, ss) })
} }
func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) { func testUserAccessTokenSaveGetDelete(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
uat := &model.UserAccessToken{ uat := &model.UserAccessToken{
Token: model.NewId(), Token: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
@@ -32,7 +30,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
s1.UserId = uat.UserId s1.UserId = uat.UserId
s1.Token = uat.Token s1.Token = uat.Token
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
_, nErr := ss.UserAccessToken().Save(uat) _, nErr := ss.UserAccessToken().Save(uat)
@@ -60,7 +58,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
nErr = ss.UserAccessToken().Delete(uat.Id) nErr = ss.UserAccessToken().Delete(uat.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
_, err = ss.Session().Get(c, s1.Token) _, err = ss.Session().Get(rctx, s1.Token)
require.Error(t, err, "should error - session should be deleted") require.Error(t, err, "should error - session should be deleted")
_, nErr = ss.UserAccessToken().GetByToken(s1.Token) _, nErr = ss.UserAccessToken().GetByToken(s1.Token)
@@ -70,7 +68,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
s2.UserId = uat.UserId s2.UserId = uat.UserId
s2.Token = uat.Token s2.Token = uat.Token
s2, err = ss.Session().Save(c, s2) s2, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
_, nErr = ss.UserAccessToken().Save(uat) _, nErr = ss.UserAccessToken().Save(uat)
@@ -79,16 +77,14 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
nErr = ss.UserAccessToken().DeleteAllForUser(uat.UserId) nErr = ss.UserAccessToken().DeleteAllForUser(uat.UserId)
require.NoError(t, nErr) require.NoError(t, nErr)
_, err = ss.Session().Get(c, s2.Token) _, err = ss.Session().Get(rctx, s2.Token)
require.Error(t, err, "should error - session should be deleted") require.Error(t, err, "should error - session should be deleted")
_, nErr = ss.UserAccessToken().GetByToken(s2.Token) _, nErr = ss.UserAccessToken().GetByToken(s2.Token)
require.Error(t, nErr, "should error - access token should be deleted") require.Error(t, nErr, "should error - access token should be deleted")
} }
func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) { func testUserAccessTokenDisableEnable(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
uat := &model.UserAccessToken{ uat := &model.UserAccessToken{
Token: model.NewId(), Token: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
@@ -99,7 +95,7 @@ func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
s1.UserId = uat.UserId s1.UserId = uat.UserId
s1.Token = uat.Token s1.Token = uat.Token
s1, err := ss.Session().Save(c, s1) s1, err := ss.Session().Save(rctx, s1)
require.NoError(t, err) require.NoError(t, err)
_, nErr := ss.UserAccessToken().Save(uat) _, nErr := ss.UserAccessToken().Save(uat)
@@ -108,23 +104,21 @@ func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
nErr = ss.UserAccessToken().UpdateTokenDisable(uat.Id) nErr = ss.UserAccessToken().UpdateTokenDisable(uat.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
_, err = ss.Session().Get(c, s1.Token) _, err = ss.Session().Get(rctx, s1.Token)
require.Error(t, err, "should error - session should be deleted") require.Error(t, err, "should error - session should be deleted")
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = uat.UserId s2.UserId = uat.UserId
s2.Token = uat.Token s2.Token = uat.Token
_, err = ss.Session().Save(c, s2) _, err = ss.Session().Save(rctx, s2)
require.NoError(t, err) require.NoError(t, err)
nErr = ss.UserAccessToken().UpdateTokenEnable(uat.Id) nErr = ss.UserAccessToken().UpdateTokenEnable(uat.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
} }
func testUserAccessTokenSearch(t *testing.T, ss store.Store) { func testUserAccessTokenSearch(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
u1 := model.User{} u1 := model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
u1.Username = model.NewId() u1.Username = model.NewId()
@@ -142,7 +136,7 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
s1.UserId = uat.UserId s1.UserId = uat.UserId
s1.Token = uat.Token s1.Token = uat.Token
_, nErr := ss.Session().Save(c, s1) _, nErr := ss.Session().Save(rctx, s1)
require.NoError(t, nErr) require.NoError(t, nErr)
_, nErr = ss.UserAccessToken().Save(uat) _, nErr = ss.UserAccessToken().Save(uat)

Просмотреть файл

@@ -28,7 +28,7 @@ func cleanupStatusStore(t *testing.T, s SqlStore) {
require.NoError(t, execerr) require.NoError(t, execerr)
} }
func TestUserStore(t *testing.T, ss store.Store, s SqlStore) { func TestUserStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
users, err := ss.User().GetAll() users, err := ss.User().GetAll()
require.NoError(t, err, "failed cleaning up test users") require.NoError(t, err, "failed cleaning up test users")
@@ -37,68 +37,68 @@ func TestUserStore(t *testing.T, ss store.Store, s SqlStore) {
require.NoError(t, err, "failed cleaning up test user %s", u.Username) require.NoError(t, err, "failed cleaning up test user %s", u.Username)
} }
t.Run("IsEmpty", func(t *testing.T) { testIsEmpty(t, ss) }) t.Run("IsEmpty", func(t *testing.T) { testIsEmpty(t, rctx, ss) })
t.Run("Count", func(t *testing.T) { testCount(t, ss) }) t.Run("Count", func(t *testing.T) { testCount(t, rctx, ss) })
t.Run("AnalyticsActiveCount", func(t *testing.T) { testUserStoreAnalyticsActiveCount(t, ss, s) }) t.Run("AnalyticsActiveCount", func(t *testing.T) { testUserStoreAnalyticsActiveCount(t, rctx, ss, s) })
t.Run("AnalyticsActiveCountForPeriod", func(t *testing.T) { testUserStoreAnalyticsActiveCountForPeriod(t, ss, s) }) t.Run("AnalyticsActiveCountForPeriod", func(t *testing.T) { testUserStoreAnalyticsActiveCountForPeriod(t, rctx, ss, s) })
t.Run("AnalyticsGetInactiveUsersCount", func(t *testing.T) { testUserStoreAnalyticsGetInactiveUsersCount(t, ss) }) t.Run("AnalyticsGetInactiveUsersCount", func(t *testing.T) { testUserStoreAnalyticsGetInactiveUsersCount(t, rctx, ss) })
t.Run("AnalyticsGetSystemAdminCount", func(t *testing.T) { testUserStoreAnalyticsGetSystemAdminCount(t, ss) }) t.Run("AnalyticsGetSystemAdminCount", func(t *testing.T) { testUserStoreAnalyticsGetSystemAdminCount(t, rctx, ss) })
t.Run("AnalyticsGetGuestCount", func(t *testing.T) { testUserStoreAnalyticsGetGuestCount(t, ss) }) t.Run("AnalyticsGetGuestCount", func(t *testing.T) { testUserStoreAnalyticsGetGuestCount(t, rctx, ss) })
t.Run("AnalyticsGetExternalUsers", func(t *testing.T) { testUserStoreAnalyticsGetExternalUsers(t, ss) }) t.Run("AnalyticsGetExternalUsers", func(t *testing.T) { testUserStoreAnalyticsGetExternalUsers(t, rctx, ss) })
t.Run("Save", func(t *testing.T) { testUserStoreSave(t, ss) }) t.Run("Save", func(t *testing.T) { testUserStoreSave(t, rctx, ss) })
t.Run("Update", func(t *testing.T) { testUserStoreUpdate(t, ss) }) t.Run("Update", func(t *testing.T) { testUserStoreUpdate(t, rctx, ss) })
t.Run("UpdateUpdateAt", func(t *testing.T) { testUserStoreUpdateUpdateAt(t, ss) }) t.Run("UpdateUpdateAt", func(t *testing.T) { testUserStoreUpdateUpdateAt(t, rctx, ss) })
t.Run("UpdateFailedPasswordAttempts", func(t *testing.T) { testUserStoreUpdateFailedPasswordAttempts(t, ss) }) t.Run("UpdateFailedPasswordAttempts", func(t *testing.T) { testUserStoreUpdateFailedPasswordAttempts(t, rctx, ss) })
t.Run("Get", func(t *testing.T) { testUserStoreGet(t, ss) }) t.Run("Get", func(t *testing.T) { testUserStoreGet(t, rctx, ss) })
t.Run("GetAllUsingAuthService", func(t *testing.T) { testGetAllUsingAuthService(t, ss) }) t.Run("GetAllUsingAuthService", func(t *testing.T) { testGetAllUsingAuthService(t, rctx, ss) })
t.Run("GetAllProfiles", func(t *testing.T) { testUserStoreGetAllProfiles(t, ss) }) t.Run("GetAllProfiles", func(t *testing.T) { testUserStoreGetAllProfiles(t, rctx, ss) })
t.Run("GetProfiles", func(t *testing.T) { testUserStoreGetProfiles(t, ss) }) t.Run("GetProfiles", func(t *testing.T) { testUserStoreGetProfiles(t, rctx, ss) })
t.Run("GetProfilesInChannel", func(t *testing.T) { testUserStoreGetProfilesInChannel(t, ss) }) t.Run("GetProfilesInChannel", func(t *testing.T) { testUserStoreGetProfilesInChannel(t, rctx, ss) })
t.Run("GetProfilesInChannelByStatus", func(t *testing.T) { testUserStoreGetProfilesInChannelByStatus(t, ss, s) }) t.Run("GetProfilesInChannelByStatus", func(t *testing.T) { testUserStoreGetProfilesInChannelByStatus(t, rctx, ss, s) })
t.Run("GetProfilesInChannelByAdmin", func(t *testing.T) { testUserStoreGetProfilesInChannelByAdmin(t, ss, s) }) t.Run("GetProfilesInChannelByAdmin", func(t *testing.T) { testUserStoreGetProfilesInChannelByAdmin(t, rctx, ss, s) })
t.Run("GetProfilesWithoutTeam", func(t *testing.T) { testUserStoreGetProfilesWithoutTeam(t, ss) }) t.Run("GetProfilesWithoutTeam", func(t *testing.T) { testUserStoreGetProfilesWithoutTeam(t, rctx, ss) })
t.Run("GetAllProfilesInChannel", func(t *testing.T) { testUserStoreGetAllProfilesInChannel(t, ss) }) t.Run("GetAllProfilesInChannel", func(t *testing.T) { testUserStoreGetAllProfilesInChannel(t, rctx, ss) })
t.Run("GetProfilesNotInChannel", func(t *testing.T) { testUserStoreGetProfilesNotInChannel(t, ss) }) t.Run("GetProfilesNotInChannel", func(t *testing.T) { testUserStoreGetProfilesNotInChannel(t, rctx, ss) })
t.Run("GetProfilesByIds", func(t *testing.T) { testUserStoreGetProfilesByIds(t, ss) }) t.Run("GetProfilesByIds", func(t *testing.T) { testUserStoreGetProfilesByIds(t, rctx, ss) })
t.Run("GetProfileByGroupChannelIdsForUser", func(t *testing.T) { testUserStoreGetProfileByGroupChannelIdsForUser(t, ss) }) t.Run("GetProfileByGroupChannelIdsForUser", func(t *testing.T) { testUserStoreGetProfileByGroupChannelIdsForUser(t, rctx, ss) })
t.Run("GetProfilesByUsernames", func(t *testing.T) { testUserStoreGetProfilesByUsernames(t, ss) }) t.Run("GetProfilesByUsernames", func(t *testing.T) { testUserStoreGetProfilesByUsernames(t, rctx, ss) })
t.Run("GetSystemAdminProfiles", func(t *testing.T) { testUserStoreGetSystemAdminProfiles(t, ss) }) t.Run("GetSystemAdminProfiles", func(t *testing.T) { testUserStoreGetSystemAdminProfiles(t, rctx, ss) })
t.Run("GetByEmail", func(t *testing.T) { testUserStoreGetByEmail(t, ss) }) t.Run("GetByEmail", func(t *testing.T) { testUserStoreGetByEmail(t, rctx, ss) })
t.Run("GetByAuthData", func(t *testing.T) { testUserStoreGetByAuthData(t, ss) }) t.Run("GetByAuthData", func(t *testing.T) { testUserStoreGetByAuthData(t, rctx, ss) })
t.Run("GetByUsername", func(t *testing.T) { testUserStoreGetByUsername(t, ss) }) t.Run("GetByUsername", func(t *testing.T) { testUserStoreGetByUsername(t, rctx, ss) })
t.Run("GetForLogin", func(t *testing.T) { testUserStoreGetForLogin(t, ss) }) t.Run("GetForLogin", func(t *testing.T) { testUserStoreGetForLogin(t, rctx, ss) })
t.Run("UpdatePassword", func(t *testing.T) { testUserStoreUpdatePassword(t, ss) }) t.Run("UpdatePassword", func(t *testing.T) { testUserStoreUpdatePassword(t, rctx, ss) })
t.Run("Delete", func(t *testing.T) { testUserStoreDelete(t, ss) }) t.Run("Delete", func(t *testing.T) { testUserStoreDelete(t, rctx, ss) })
t.Run("UpdateAuthData", func(t *testing.T) { testUserStoreUpdateAuthData(t, ss) }) t.Run("UpdateAuthData", func(t *testing.T) { testUserStoreUpdateAuthData(t, rctx, ss) })
t.Run("ResetAuthDataToEmailForUsers", func(t *testing.T) { testUserStoreResetAuthDataToEmailForUsers(t, ss) }) t.Run("ResetAuthDataToEmailForUsers", func(t *testing.T) { testUserStoreResetAuthDataToEmailForUsers(t, rctx, ss) })
t.Run("UserUnreadCount", func(t *testing.T) { testUserUnreadCount(t, ss) }) t.Run("UserUnreadCount", func(t *testing.T) { testUserUnreadCount(t, rctx, ss) })
t.Run("UpdateMfaSecret", func(t *testing.T) { testUserStoreUpdateMfaSecret(t, ss) }) t.Run("UpdateMfaSecret", func(t *testing.T) { testUserStoreUpdateMfaSecret(t, rctx, ss) })
t.Run("UpdateMfaActive", func(t *testing.T) { testUserStoreUpdateMfaActive(t, ss) }) t.Run("UpdateMfaActive", func(t *testing.T) { testUserStoreUpdateMfaActive(t, rctx, ss) })
t.Run("GetRecentlyActiveUsersForTeam", func(t *testing.T) { testUserStoreGetRecentlyActiveUsersForTeam(t, ss, s) }) t.Run("GetRecentlyActiveUsersForTeam", func(t *testing.T) { testUserStoreGetRecentlyActiveUsersForTeam(t, rctx, ss, s) })
t.Run("GetNewUsersForTeam", func(t *testing.T) { testUserStoreGetNewUsersForTeam(t, ss) }) t.Run("GetNewUsersForTeam", func(t *testing.T) { testUserStoreGetNewUsersForTeam(t, rctx, ss) })
t.Run("Search", func(t *testing.T) { testUserStoreSearch(t, ss) }) t.Run("Search", func(t *testing.T) { testUserStoreSearch(t, rctx, ss) })
t.Run("SearchNotInChannel", func(t *testing.T) { testUserStoreSearchNotInChannel(t, ss) }) t.Run("SearchNotInChannel", func(t *testing.T) { testUserStoreSearchNotInChannel(t, rctx, ss) })
t.Run("SearchInChannel", func(t *testing.T) { testUserStoreSearchInChannel(t, ss) }) t.Run("SearchInChannel", func(t *testing.T) { testUserStoreSearchInChannel(t, rctx, ss) })
t.Run("SearchNotInTeam", func(t *testing.T) { testUserStoreSearchNotInTeam(t, ss) }) t.Run("SearchNotInTeam", func(t *testing.T) { testUserStoreSearchNotInTeam(t, rctx, ss) })
t.Run("SearchWithoutTeam", func(t *testing.T) { testUserStoreSearchWithoutTeam(t, ss) }) t.Run("SearchWithoutTeam", func(t *testing.T) { testUserStoreSearchWithoutTeam(t, rctx, ss) })
t.Run("SearchInGroup", func(t *testing.T) { testUserStoreSearchInGroup(t, ss) }) t.Run("SearchInGroup", func(t *testing.T) { testUserStoreSearchInGroup(t, rctx, ss) })
t.Run("SearchNotInGroup", func(t *testing.T) { testUserStoreSearchNotInGroup(t, ss) }) t.Run("SearchNotInGroup", func(t *testing.T) { testUserStoreSearchNotInGroup(t, rctx, ss) })
t.Run("GetProfilesNotInTeam", func(t *testing.T) { testUserStoreGetProfilesNotInTeam(t, ss) }) t.Run("GetProfilesNotInTeam", func(t *testing.T) { testUserStoreGetProfilesNotInTeam(t, rctx, ss) })
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testUserStoreClearAllCustomRoleAssignments(t, ss) }) t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testUserStoreClearAllCustomRoleAssignments(t, rctx, ss) })
t.Run("GetAllAfter", func(t *testing.T) { testUserStoreGetAllAfter(t, ss) }) t.Run("GetAllAfter", func(t *testing.T) { testUserStoreGetAllAfter(t, rctx, ss) })
t.Run("GetUsersBatchForIndexing", func(t *testing.T) { testUserStoreGetUsersBatchForIndexing(t, ss) }) t.Run("GetUsersBatchForIndexing", func(t *testing.T) { testUserStoreGetUsersBatchForIndexing(t, rctx, ss) })
t.Run("GetTeamGroupUsers", func(t *testing.T) { testUserStoreGetTeamGroupUsers(t, ss) }) t.Run("GetTeamGroupUsers", func(t *testing.T) { testUserStoreGetTeamGroupUsers(t, rctx, ss) })
t.Run("GetChannelGroupUsers", func(t *testing.T) { testUserStoreGetChannelGroupUsers(t, ss) }) t.Run("GetChannelGroupUsers", func(t *testing.T) { testUserStoreGetChannelGroupUsers(t, rctx, ss) })
t.Run("PromoteGuestToUser", func(t *testing.T) { testUserStorePromoteGuestToUser(t, ss) }) t.Run("PromoteGuestToUser", func(t *testing.T) { testUserStorePromoteGuestToUser(t, rctx, ss) })
t.Run("DemoteUserToGuest", func(t *testing.T) { testUserStoreDemoteUserToGuest(t, ss) }) t.Run("DemoteUserToGuest", func(t *testing.T) { testUserStoreDemoteUserToGuest(t, rctx, ss) })
t.Run("DeactivateGuests", func(t *testing.T) { testDeactivateGuests(t, ss) }) t.Run("DeactivateGuests", func(t *testing.T) { testDeactivateGuests(t, rctx, ss) })
t.Run("ResetLastPictureUpdate", func(t *testing.T) { testUserStoreResetLastPictureUpdate(t, ss) }) t.Run("ResetLastPictureUpdate", func(t *testing.T) { testUserStoreResetLastPictureUpdate(t, rctx, ss) })
t.Run("GetKnownUsers", func(t *testing.T) { testGetKnownUsers(t, ss) }) t.Run("GetKnownUsers", func(t *testing.T) { testGetKnownUsers(t, rctx, ss) })
t.Run("GetUsersWithInvalidEmails", func(t *testing.T) { testGetUsersWithInvalidEmails(t, ss) }) t.Run("GetUsersWithInvalidEmails", func(t *testing.T) { testGetUsersWithInvalidEmails(t, rctx, ss) })
t.Run("UpdateLastLogin", func(t *testing.T) { testUpdateLastLogin(t, ss) }) t.Run("UpdateLastLogin", func(t *testing.T) { testUpdateLastLogin(t, rctx, ss) })
} }
func testUserStoreSave(t *testing.T, ss store.Store) { func testUserStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
maxUsersPerTeam := 50 maxUsersPerTeam := 50
@@ -170,7 +170,7 @@ func testUserStoreSave(t *testing.T, ss store.Store) {
require.Error(t, nErr, "should be the limit") require.Error(t, nErr, "should be the limit")
} }
func testUserStoreUpdate(t *testing.T, ss store.Store) { func testUserStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
} }
@@ -260,7 +260,7 @@ func testUserStoreUpdate(t *testing.T, ss store.Store) {
require.Error(t, err, "auto responder message size should not be greater than maxPostSize") require.Error(t, err, "auto responder message size should not be greater than maxPostSize")
} }
func testUserStoreUpdateUpdateAt(t *testing.T, ss store.Store) { func testUserStoreUpdateUpdateAt(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(u1) _, err := ss.User().Save(u1)
@@ -280,7 +280,7 @@ func testUserStoreUpdateUpdateAt(t *testing.T, ss store.Store) {
require.Less(t, u1.UpdateAt, user.UpdateAt, "UpdateAt not updated correctly") require.Less(t, u1.UpdateAt, user.UpdateAt, "UpdateAt not updated correctly")
} }
func testUserStoreUpdateFailedPasswordAttempts(t *testing.T, ss store.Store) { func testUserStoreUpdateFailedPasswordAttempts(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(u1) _, err := ss.User().Save(u1)
@@ -297,7 +297,7 @@ func testUserStoreUpdateFailedPasswordAttempts(t *testing.T, ss store.Store) {
require.Equal(t, 3, user.FailedAttempts, "FailedAttempts not updated correctly") require.Equal(t, 3, user.FailedAttempts, "FailedAttempts not updated correctly")
} }
func testUserStoreGet(t *testing.T, ss store.Store) { func testUserStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
} }
@@ -345,7 +345,7 @@ func testUserStoreGet(t *testing.T, ss store.Store) {
}) })
} }
func testGetAllUsingAuthService(t *testing.T, ss store.Store) { func testGetAllUsingAuthService(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -413,7 +413,7 @@ func sanitized(user *model.User) *model.User {
return clonedUser return clonedUser
} }
func testUserStoreGetAllProfiles(t *testing.T, ss store.Store) { func testUserStoreGetAllProfiles(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: "u1" + model.NewId(), Username: "u1" + model.NewId(),
@@ -673,7 +673,7 @@ func testUserStoreGetAllProfiles(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetProfiles(t *testing.T, ss store.Store) { func testUserStoreGetProfiles(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -842,7 +842,7 @@ func testUserStoreGetProfiles(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetProfilesInChannel(t *testing.T, ss store.Store) { func testUserStoreGetProfilesInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -1036,7 +1036,7 @@ func testUserStoreGetProfilesInChannel(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetProfilesInChannelByAdmin(t *testing.T, ss store.Store, s SqlStore) { func testUserStoreGetProfilesInChannelByAdmin(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
cleanupStatusStore(t, s) cleanupStatusStore(t, s)
teamId := model.NewId() teamId := model.NewId()
@@ -1114,7 +1114,7 @@ func testUserStoreGetProfilesInChannelByAdmin(t *testing.T, ss store.Store, s Sq
}) })
} }
func testUserStoreGetProfilesInChannelByStatus(t *testing.T, ss store.Store, s SqlStore) { func testUserStoreGetProfilesInChannelByStatus(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
cleanupStatusStore(t, s) cleanupStatusStore(t, s)
teamId := model.NewId() teamId := model.NewId()
@@ -1275,7 +1275,7 @@ func testUserStoreGetProfilesInChannelByStatus(t *testing.T, ss store.Store, s S
}) })
} }
func testUserStoreGetProfilesWithoutTeam(t *testing.T, ss store.Store) { func testUserStoreGetProfilesWithoutTeam(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -1342,7 +1342,7 @@ func testUserStoreGetProfilesWithoutTeam(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetAllProfilesInChannel(t *testing.T, ss store.Store) { func testUserStoreGetAllProfilesInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -1468,7 +1468,7 @@ func testUserStoreGetAllProfilesInChannel(t *testing.T, ss store.Store) {
ss.User().InvalidateProfilesInChannelCache(c2.Id) ss.User().InvalidateProfilesInChannelCache(c2.Id)
} }
func testUserStoreGetProfilesNotInChannel(t *testing.T, ss store.Store) { func testUserStoreGetProfilesNotInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -1630,7 +1630,7 @@ func testUserStoreGetProfilesNotInChannel(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetProfilesByIds(t *testing.T, ss store.Store) { func testUserStoreGetProfilesByIds(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -1717,7 +1717,7 @@ func testUserStoreGetProfilesByIds(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetProfileByGroupChannelIdsForUser(t *testing.T, ss store.Store) { func testUserStoreGetProfileByGroupChannelIdsForUser(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: "u1" + model.NewId(), Username: "u1" + model.NewId(),
@@ -1839,7 +1839,7 @@ func testUserStoreGetProfileByGroupChannelIdsForUser(t *testing.T, ss store.Stor
} }
} }
func testUserStoreGetProfilesByUsernames(t *testing.T, ss store.Store) { func testUserStoreGetProfilesByUsernames(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
team2Id := model.NewId() team2Id := model.NewId()
@@ -1909,7 +1909,7 @@ func testUserStoreGetProfilesByUsernames(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetSystemAdminProfiles(t *testing.T, ss store.Store) { func testUserStoreGetSystemAdminProfiles(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -1959,7 +1959,7 @@ func testUserStoreGetSystemAdminProfiles(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetByEmail(t *testing.T, ss store.Store) { func testUserStoreGetByEmail(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -2026,7 +2026,7 @@ func testUserStoreGetByEmail(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetByAuthData(t *testing.T, ss store.Store) { func testUserStoreGetByAuthData(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
auth1 := model.NewId() auth1 := model.NewId()
auth3 := model.NewId() auth3 := model.NewId()
@@ -2106,7 +2106,7 @@ func testUserStoreGetByAuthData(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetByUsername(t *testing.T, ss store.Store) { func testUserStoreGetByUsername(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -2177,7 +2177,7 @@ func testUserStoreGetByUsername(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetForLogin(t *testing.T, ss store.Store) { func testUserStoreGetForLogin(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
auth := model.NewId() auth := model.NewId()
auth2 := model.NewId() auth2 := model.NewId()
@@ -2280,7 +2280,7 @@ func testUserStoreGetForLogin(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreUpdatePassword(t *testing.T, ss store.Store) { func testUserStoreUpdatePassword(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1 := &model.User{} u1 := &model.User{}
@@ -2301,7 +2301,7 @@ func testUserStoreUpdatePassword(t *testing.T, ss store.Store) {
require.Equal(t, user.Password, hashedPassword, "Password was not updated correctly") require.Equal(t, user.Password, hashedPassword, "Password was not updated correctly")
} }
func testUserStoreDelete(t *testing.T, ss store.Store) { func testUserStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(u1) _, err := ss.User().Save(u1)
@@ -2314,7 +2314,7 @@ func testUserStoreDelete(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testUserStoreUpdateAuthData(t *testing.T, ss store.Store) { func testUserStoreUpdateAuthData(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1 := &model.User{} u1 := &model.User{}
@@ -2338,7 +2338,7 @@ func testUserStoreUpdateAuthData(t *testing.T, ss store.Store) {
require.Equal(t, "", user.Password, "Password was not cleared properly") require.Equal(t, "", user.Password, "Password was not cleared properly")
} }
func testUserStoreResetAuthDataToEmailForUsers(t *testing.T, ss store.Store) { func testUserStoreResetAuthDataToEmailForUsers(t *testing.T, rctx request.CTX, ss store.Store) {
user := &model.User{} user := &model.User{}
user.Username = "user1" + model.NewId() user.Username = "user1" + model.NewId()
user.Email = MakeEmail() user.Email = MakeEmail()
@@ -2387,7 +2387,7 @@ func testUserStoreResetAuthDataToEmailForUsers(t *testing.T, ss store.Store) {
require.Equal(t, 1, numAffected) require.Equal(t, 1, numAffected)
} }
func testUserUnreadCount(t *testing.T, ss store.Store) { func testUserUnreadCount(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
c1 := model.Channel{} c1 := model.Channel{}
@@ -2517,7 +2517,7 @@ func testUserUnreadCount(t *testing.T, ss store.Store) {
require.Equal(t, int64(2), badge, "should have 2 unread messages for that channel") require.Equal(t, int64(2), badge, "should have 2 unread messages for that channel")
} }
func testUserStoreUpdateMfaSecret(t *testing.T, ss store.Store) { func testUserStoreUpdateMfaSecret(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := model.User{} u1 := model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(&u1) _, err := ss.User().Save(&u1)
@@ -2532,7 +2532,7 @@ func testUserStoreUpdateMfaSecret(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testUserStoreUpdateMfaActive(t *testing.T, ss store.Store) { func testUserStoreUpdateMfaActive(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := model.User{} u1 := model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(&u1) _, err := ss.User().Save(&u1)
@@ -2552,7 +2552,7 @@ func testUserStoreUpdateMfaActive(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testUserStoreGetRecentlyActiveUsersForTeam(t *testing.T, ss store.Store, s SqlStore) { func testUserStoreGetRecentlyActiveUsersForTeam(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
cleanupStatusStore(t, s) cleanupStatusStore(t, s)
teamId := model.NewId() teamId := model.NewId()
@@ -2628,7 +2628,7 @@ func testUserStoreGetRecentlyActiveUsersForTeam(t *testing.T, ss store.Store, s
}) })
} }
func testUserStoreGetNewUsersForTeam(t *testing.T, ss store.Store) { func testUserStoreGetNewUsersForTeam(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
teamId2 := model.NewId() teamId2 := model.NewId()
@@ -2727,7 +2727,7 @@ func assertUsers(t *testing.T, expected, actual []*model.User) {
} }
} }
func testUserStoreSearch(t *testing.T, ss store.Store) { func testUserStoreSearch(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: "jimbo1" + model.NewId(), Username: "jimbo1" + model.NewId(),
FirstName: "Tim", FirstName: "Tim",
@@ -2874,7 +2874,7 @@ func testUserStoreSearch(t *testing.T, ss store.Store) {
} }
} }
func testUserStoreSearchNotInChannel(t *testing.T, ss store.Store) { func testUserStoreSearchNotInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: "jimbo1" + model.NewId(), Username: "jimbo1" + model.NewId(),
FirstName: "Tim", FirstName: "Tim",
@@ -3100,7 +3100,7 @@ func testUserStoreSearchNotInChannel(t *testing.T, ss store.Store) {
} }
} }
func testUserStoreSearchInChannel(t *testing.T, ss store.Store) { func testUserStoreSearchInChannel(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: "jimbo1" + model.NewId(), Username: "jimbo1" + model.NewId(),
FirstName: "Tim", FirstName: "Tim",
@@ -3334,7 +3334,7 @@ func testUserStoreSearchInChannel(t *testing.T, ss store.Store) {
} }
} }
func testUserStoreSearchNotInTeam(t *testing.T, ss store.Store) { func testUserStoreSearchNotInTeam(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: "jimbo1" + model.NewId(), Username: "jimbo1" + model.NewId(),
FirstName: "Tim", FirstName: "Tim",
@@ -3526,7 +3526,7 @@ func testUserStoreSearchNotInTeam(t *testing.T, ss store.Store) {
} }
} }
func testUserStoreSearchWithoutTeam(t *testing.T, ss store.Store) { func testUserStoreSearchWithoutTeam(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: "jimbo1" + model.NewId(), Username: "jimbo1" + model.NewId(),
FirstName: "Tim", FirstName: "Tim",
@@ -3631,7 +3631,7 @@ func testUserStoreSearchWithoutTeam(t *testing.T, ss store.Store) {
} }
} }
func testUserStoreSearchInGroup(t *testing.T, ss store.Store) { func testUserStoreSearchInGroup(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: "jimbo1" + model.NewId(), Username: "jimbo1" + model.NewId(),
FirstName: "Tim", FirstName: "Tim",
@@ -3774,7 +3774,7 @@ func testUserStoreSearchInGroup(t *testing.T, ss store.Store) {
} }
} }
func testUserStoreSearchNotInGroup(t *testing.T, ss store.Store) { func testUserStoreSearchNotInGroup(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{ u1 := &model.User{
Username: "jimbo1" + model.NewId(), Username: "jimbo1" + model.NewId(),
FirstName: "Tim", FirstName: "Tim",
@@ -3906,7 +3906,7 @@ func testUserStoreSearchNotInGroup(t *testing.T, ss store.Store) {
} }
} }
func testCount(t *testing.T, ss store.Store) { func testCount(t *testing.T, rctx request.CTX, ss store.Store) {
// Regular // Regular
teamId := model.NewId() teamId := model.NewId()
channelId := model.NewId() channelId := model.NewId()
@@ -4266,7 +4266,7 @@ func testCount(t *testing.T, ss store.Store) {
} }
} }
func testUserStoreAnalyticsActiveCount(t *testing.T, ss store.Store, s SqlStore) { func testUserStoreAnalyticsActiveCount(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
cleanupStatusStore(t, s) cleanupStatusStore(t, s)
// Create 5 users statuses u0, u1, u2, u3, u4. // Create 5 users statuses u0, u1, u2, u3, u4.
@@ -4350,7 +4350,7 @@ func testUserStoreAnalyticsActiveCount(t *testing.T, ss store.Store, s SqlStore)
assert.Equal(t, int64(4), count) assert.Equal(t, int64(4), count)
} }
func testUserStoreAnalyticsActiveCountForPeriod(t *testing.T, ss store.Store, s SqlStore) { func testUserStoreAnalyticsActiveCountForPeriod(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
cleanupStatusStore(t, s) cleanupStatusStore(t, s)
// Create 5 users statuses u0, u1, u2, u3, u4. // Create 5 users statuses u0, u1, u2, u3, u4.
@@ -4432,7 +4432,7 @@ func testUserStoreAnalyticsActiveCountForPeriod(t *testing.T, ss store.Store, s
assert.Equal(t, int64(2), count) assert.Equal(t, int64(2), count)
} }
func testUserStoreAnalyticsGetInactiveUsersCount(t *testing.T, ss store.Store) { func testUserStoreAnalyticsGetInactiveUsersCount(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(u1) _, err := ss.User().Save(u1)
@@ -4454,7 +4454,7 @@ func testUserStoreAnalyticsGetInactiveUsersCount(t *testing.T, ss store.Store) {
require.Equal(t, count, newCount-1, "Expected 1 more inactive users but found otherwise.") require.Equal(t, count, newCount-1, "Expected 1 more inactive users but found otherwise.")
} }
func testUserStoreAnalyticsGetSystemAdminCount(t *testing.T, ss store.Store) { func testUserStoreAnalyticsGetSystemAdminCount(t *testing.T, rctx request.CTX, ss store.Store) {
countBefore, err := ss.User().AnalyticsGetSystemAdminCount() countBefore, err := ss.User().AnalyticsGetSystemAdminCount()
require.NoError(t, err) require.NoError(t, err)
@@ -4481,7 +4481,7 @@ func testUserStoreAnalyticsGetSystemAdminCount(t *testing.T, ss store.Store) {
require.Equal(t, countBefore+1, result, "Did not get the expected number of system admins.") require.Equal(t, countBefore+1, result, "Did not get the expected number of system admins.")
} }
func testUserStoreAnalyticsGetGuestCount(t *testing.T, ss store.Store) { func testUserStoreAnalyticsGetGuestCount(t *testing.T, rctx request.CTX, ss store.Store) {
countBefore, err := ss.User().AnalyticsGetGuestCount() countBefore, err := ss.User().AnalyticsGetGuestCount()
require.NoError(t, err) require.NoError(t, err)
@@ -4517,7 +4517,7 @@ func testUserStoreAnalyticsGetGuestCount(t *testing.T, ss store.Store) {
require.Equal(t, countBefore+1, result, "Did not get the expected number of guests.") require.Equal(t, countBefore+1, result, "Did not get the expected number of guests.")
} }
func testUserStoreAnalyticsGetExternalUsers(t *testing.T, ss store.Store) { func testUserStoreAnalyticsGetExternalUsers(t *testing.T, rctx request.CTX, ss store.Store) {
localHostDomain := "mattermost.com" localHostDomain := "mattermost.com"
result, err := ss.User().AnalyticsGetExternalUsers(localHostDomain) result, err := ss.User().AnalyticsGetExternalUsers(localHostDomain)
require.NoError(t, err) require.NoError(t, err)
@@ -4555,7 +4555,7 @@ func testUserStoreAnalyticsGetExternalUsers(t *testing.T, ss store.Store) {
assert.True(t, result) assert.True(t, result)
} }
func testUserStoreGetProfilesNotInTeam(t *testing.T, ss store.Store) { func testUserStoreGetProfilesNotInTeam(t *testing.T, rctx request.CTX, ss store.Store) {
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
DisplayName: "Team", DisplayName: "Team",
Name: NewTestId(), Name: NewTestId(),
@@ -4761,7 +4761,7 @@ func testUserStoreGetProfilesNotInTeam(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) { func testUserStoreClearAllCustomRoleAssignments(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := model.User{ u1 := model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -4815,7 +4815,7 @@ func testUserStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) {
assert.Equal(t, "", r4.Roles) assert.Equal(t, "", r4.Roles)
} }
func testUserStoreGetAllAfter(t *testing.T, ss store.Store) { func testUserStoreGetAllAfter(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
@@ -4866,7 +4866,7 @@ func testUserStoreGetAllAfter(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreGetUsersBatchForIndexing(t *testing.T, ss store.Store) { func testUserStoreGetUsersBatchForIndexing(t *testing.T, rctx request.CTX, ss store.Store) {
// Set up all the objects needed // Set up all the objects needed
t1, err := ss.Team().Save(&model.Team{ t1, err := ss.Team().Save(&model.Team{
DisplayName: "Team1", DisplayName: "Team1",
@@ -5001,7 +5001,7 @@ func testUserStoreGetUsersBatchForIndexing(t *testing.T, ss store.Store) {
assert.Len(t, res2List, 0) assert.Len(t, res2List, 0)
} }
func testUserStoreGetTeamGroupUsers(t *testing.T, ss store.Store) { func testUserStoreGetTeamGroupUsers(t *testing.T, rctx request.CTX, ss store.Store) {
// create team // create team
id := model.NewId() id := model.NewId()
team, err := ss.Team().Save(&model.Team{ team, err := ss.Team().Save(&model.Team{
@@ -5123,7 +5123,7 @@ func testUserStoreGetTeamGroupUsers(t *testing.T, ss store.Store) {
requireNUsers(2) requireNUsers(2)
} }
func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) { func testUserStoreGetChannelGroupUsers(t *testing.T, rctx request.CTX, ss store.Store) {
// create channel // create channel
id := model.NewId() id := model.NewId()
channel, nErr := ss.Channel().Save(&model.Channel{ channel, nErr := ss.Channel().Save(&model.Channel{
@@ -5245,9 +5245,7 @@ func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) {
requireNUsers(2) requireNUsers(2)
} }
func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) { func testUserStorePromoteGuestToUser(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
// create users // create users
t.Run("Must do nothing with regular user", func(t *testing.T) { t.Run("Must do nothing with regular user", func(t *testing.T) {
id := model.NewId() id := model.NewId()
@@ -5284,7 +5282,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
require.Equal(t, "system_user", updatedUser.Roles) require.Equal(t, "system_user", updatedUser.Roles)
require.True(t, user.UpdateAt < updatedUser.UpdateAt) require.True(t, user.UpdateAt < updatedUser.UpdateAt)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.False(t, updatedTeamMember.SchemeGuest) require.False(t, updatedTeamMember.SchemeGuest)
require.True(t, updatedTeamMember.SchemeUser) require.True(t, updatedTeamMember.SchemeUser)
@@ -5329,7 +5327,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_user system_admin", updatedUser.Roles) require.Equal(t, "system_user system_admin", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.False(t, updatedTeamMember.SchemeGuest) require.False(t, updatedTeamMember.SchemeGuest)
require.True(t, updatedTeamMember.SchemeUser) require.True(t, updatedTeamMember.SchemeUser)
@@ -5385,7 +5383,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_user", updatedUser.Roles) require.Equal(t, "system_user", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.False(t, updatedTeamMember.SchemeGuest) require.False(t, updatedTeamMember.SchemeGuest)
require.True(t, updatedTeamMember.SchemeUser) require.True(t, updatedTeamMember.SchemeUser)
@@ -5425,7 +5423,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_user", updatedUser.Roles) require.Equal(t, "system_user", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.False(t, updatedTeamMember.SchemeGuest) require.False(t, updatedTeamMember.SchemeGuest)
require.True(t, updatedTeamMember.SchemeUser) require.True(t, updatedTeamMember.SchemeUser)
@@ -5470,7 +5468,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_user custom_role", updatedUser.Roles) require.Equal(t, "system_user custom_role", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.False(t, updatedTeamMember.SchemeGuest) require.False(t, updatedTeamMember.SchemeGuest)
require.True(t, updatedTeamMember.SchemeUser) require.True(t, updatedTeamMember.SchemeUser)
@@ -5536,7 +5534,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_user", updatedUser.Roles) require.Equal(t, "system_user", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId1, user1.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId1, user1.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.False(t, updatedTeamMember.SchemeGuest) require.False(t, updatedTeamMember.SchemeGuest)
require.True(t, updatedTeamMember.SchemeUser) require.True(t, updatedTeamMember.SchemeUser)
@@ -5550,7 +5548,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_guest", notUpdatedUser.Roles) require.Equal(t, "system_guest", notUpdatedUser.Roles)
notUpdatedTeamMember, nErr := ss.Team().GetMember(c, teamId2, user2.Id) notUpdatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId2, user2.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.True(t, notUpdatedTeamMember.SchemeGuest) require.True(t, notUpdatedTeamMember.SchemeGuest)
require.False(t, notUpdatedTeamMember.SchemeUser) require.False(t, notUpdatedTeamMember.SchemeUser)
@@ -5562,9 +5560,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) { func testUserStoreDemoteUserToGuest(t *testing.T, rctx request.CTX, ss store.Store) {
c := request.TestContext(t)
// create users // create users
t.Run("Must do nothing with guest", func(t *testing.T) { t.Run("Must do nothing with guest", func(t *testing.T) {
id := model.NewId() id := model.NewId()
@@ -5599,7 +5595,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
require.Equal(t, "system_guest", updatedUser.Roles) require.Equal(t, "system_guest", updatedUser.Roles)
require.True(t, user.UpdateAt < updatedUser.UpdateAt) require.True(t, user.UpdateAt < updatedUser.UpdateAt)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, updatedUser.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, updatedUser.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.True(t, updatedTeamMember.SchemeGuest) require.True(t, updatedTeamMember.SchemeGuest)
require.False(t, updatedTeamMember.SchemeUser) require.False(t, updatedTeamMember.SchemeUser)
@@ -5642,7 +5638,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_guest", updatedUser.Roles) require.Equal(t, "system_guest", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.True(t, updatedTeamMember.SchemeGuest) require.True(t, updatedTeamMember.SchemeGuest)
require.False(t, updatedTeamMember.SchemeUser) require.False(t, updatedTeamMember.SchemeUser)
@@ -5694,7 +5690,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_guest", updatedUser.Roles) require.Equal(t, "system_guest", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.True(t, updatedTeamMember.SchemeGuest) require.True(t, updatedTeamMember.SchemeGuest)
require.False(t, updatedTeamMember.SchemeUser) require.False(t, updatedTeamMember.SchemeUser)
@@ -5732,7 +5728,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_guest", updatedUser.Roles) require.Equal(t, "system_guest", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.True(t, updatedTeamMember.SchemeGuest) require.True(t, updatedTeamMember.SchemeGuest)
require.False(t, updatedTeamMember.SchemeUser) require.False(t, updatedTeamMember.SchemeUser)
@@ -5775,7 +5771,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_guest", updatedUser.Roles) require.Equal(t, "system_guest", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId, user.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId, user.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.True(t, updatedTeamMember.SchemeGuest) require.True(t, updatedTeamMember.SchemeGuest)
require.False(t, updatedTeamMember.SchemeUser) require.False(t, updatedTeamMember.SchemeUser)
@@ -5839,7 +5835,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_guest", updatedUser.Roles) require.Equal(t, "system_guest", updatedUser.Roles)
updatedTeamMember, nErr := ss.Team().GetMember(c, teamId1, user1.Id) updatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId1, user1.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.True(t, updatedTeamMember.SchemeGuest) require.True(t, updatedTeamMember.SchemeGuest)
require.False(t, updatedTeamMember.SchemeUser) require.False(t, updatedTeamMember.SchemeUser)
@@ -5853,7 +5849,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "system_user", notUpdatedUser.Roles) require.Equal(t, "system_user", notUpdatedUser.Roles)
notUpdatedTeamMember, nErr := ss.Team().GetMember(c, teamId2, user2.Id) notUpdatedTeamMember, nErr := ss.Team().GetMember(rctx, teamId2, user2.Id)
require.NoError(t, nErr) require.NoError(t, nErr)
require.False(t, notUpdatedTeamMember.SchemeGuest) require.False(t, notUpdatedTeamMember.SchemeGuest)
require.True(t, notUpdatedTeamMember.SchemeUser) require.True(t, notUpdatedTeamMember.SchemeUser)
@@ -5865,7 +5861,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
}) })
} }
func testDeactivateGuests(t *testing.T, ss store.Store) { func testDeactivateGuests(t *testing.T, rctx request.CTX, ss store.Store) {
// create users // create users
t.Run("Must disable all guests and no regular user or already deactivated users", func(t *testing.T) { t.Run("Must disable all guests and no regular user or already deactivated users", func(t *testing.T) {
guest1Random := model.NewId() guest1Random := model.NewId()
@@ -5943,7 +5939,7 @@ func testDeactivateGuests(t *testing.T, ss store.Store) {
}) })
} }
func testUserStoreResetLastPictureUpdate(t *testing.T, ss store.Store) { func testUserStoreResetLastPictureUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
startTime := model.GetMillis() startTime := model.GetMillis()
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
@@ -5976,7 +5972,7 @@ func testUserStoreResetLastPictureUpdate(t *testing.T, ss store.Store) {
assert.Less(t, user2.LastPictureUpdate, -startTime) assert.Less(t, user2.LastPictureUpdate, -startTime)
} }
func testGetKnownUsers(t *testing.T, ss store.Store) { func testGetKnownUsers(t *testing.T, rctx request.CTX, ss store.Store) {
teamId := model.NewId() teamId := model.NewId()
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
@@ -6107,7 +6103,7 @@ func testGetKnownUsers(t *testing.T, ss store.Store) {
}) })
} }
func testIsEmpty(t *testing.T, ss store.Store) { func testIsEmpty(t *testing.T, rctx request.CTX, ss store.Store) {
ok, err := ss.User().IsEmpty(false) ok, err := ss.User().IsEmpty(false)
require.NoError(t, err) require.NoError(t, err)
require.True(t, ok) require.True(t, ok)
@@ -6157,7 +6153,7 @@ func testIsEmpty(t *testing.T, ss store.Store) {
require.True(t, ok) require.True(t, ok)
} }
func testGetUsersWithInvalidEmails(t *testing.T, ss store.Store) { func testGetUsersWithInvalidEmails(t *testing.T, rctx request.CTX, ss store.Store) {
u1, err := ss.User().Save(&model.User{ u1, err := ss.User().Save(&model.User{
Email: "ben@invalid.mattermost.com", Email: "ben@invalid.mattermost.com",
Username: "u1" + model.NewId(), Username: "u1" + model.NewId(),
@@ -6171,7 +6167,7 @@ func testGetUsersWithInvalidEmails(t *testing.T, ss store.Store) {
assert.Len(t, users, 1) assert.Len(t, users, 1)
} }
func testUpdateLastLogin(t *testing.T, ss store.Store) { func testUpdateLastLogin(t *testing.T, rctx request.CTX, ss store.Store) {
u1 := model.User{} u1 := model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
_, err := ss.User().Save(&u1) _, err := ss.User().Save(&u1)

Просмотреть файл

@@ -11,16 +11,17 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestUserTermsOfServiceStore(t *testing.T, ss store.Store) { func TestUserTermsOfServiceStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("TestSaveUserTermsOfService", func(t *testing.T) { testSaveUserTermsOfService(t, ss) }) t.Run("TestSaveUserTermsOfService", func(t *testing.T) { testSaveUserTermsOfService(t, rctx, ss) })
t.Run("TestGetByUserTermsOfService", func(t *testing.T) { testGetByUserTermsOfService(t, ss) }) t.Run("TestGetByUserTermsOfService", func(t *testing.T) { testGetByUserTermsOfService(t, rctx, ss) })
t.Run("TestDeleteUserTermsOfService", func(t *testing.T) { testDeleteUserTermsOfService(t, ss) }) t.Run("TestDeleteUserTermsOfService", func(t *testing.T) { testDeleteUserTermsOfService(t, rctx, ss) })
} }
func testSaveUserTermsOfService(t *testing.T, ss store.Store) { func testSaveUserTermsOfService(t *testing.T, rctx request.CTX, ss store.Store) {
userTermsOfService := &model.UserTermsOfService{ userTermsOfService := &model.UserTermsOfService{
UserId: model.NewId(), UserId: model.NewId(),
TermsOfServiceId: model.NewId(), TermsOfServiceId: model.NewId(),
@@ -45,7 +46,7 @@ func testSaveUserTermsOfService(t *testing.T, ss store.Store) {
assert.NotEmpty(t, savedUserTermsOfService.CreateAt) assert.NotEmpty(t, savedUserTermsOfService.CreateAt)
} }
func testGetByUserTermsOfService(t *testing.T, ss store.Store) { func testGetByUserTermsOfService(t *testing.T, rctx request.CTX, ss store.Store) {
userTermsOfService := &model.UserTermsOfService{ userTermsOfService := &model.UserTermsOfService{
UserId: model.NewId(), UserId: model.NewId(),
TermsOfServiceId: model.NewId(), TermsOfServiceId: model.NewId(),
@@ -61,7 +62,7 @@ func testGetByUserTermsOfService(t *testing.T, ss store.Store) {
assert.NotEmpty(t, fetchedUserTermsOfService.CreateAt) assert.NotEmpty(t, fetchedUserTermsOfService.CreateAt)
} }
func testDeleteUserTermsOfService(t *testing.T, ss store.Store) { func testDeleteUserTermsOfService(t *testing.T, rctx request.CTX, ss store.Store) {
userTermsOfService := &model.UserTermsOfService{ userTermsOfService := &model.UserTermsOfService{
UserId: model.NewId(), UserId: model.NewId(),
TermsOfServiceId: model.NewId(), TermsOfServiceId: model.NewId(),

Просмотреть файл

@@ -11,38 +11,39 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/request"
"github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/channels/store"
) )
func TestWebhookStore(t *testing.T, ss store.Store) { func TestWebhookStore(t *testing.T, rctx request.CTX, ss store.Store) {
t.Run("SaveIncoming", func(t *testing.T) { testWebhookStoreSaveIncoming(t, ss) }) t.Run("SaveIncoming", func(t *testing.T) { testWebhookStoreSaveIncoming(t, rctx, ss) })
t.Run("UpdateIncoming", func(t *testing.T) { testWebhookStoreUpdateIncoming(t, ss) }) t.Run("UpdateIncoming", func(t *testing.T) { testWebhookStoreUpdateIncoming(t, rctx, ss) })
t.Run("GetIncoming", func(t *testing.T) { testWebhookStoreGetIncoming(t, ss) }) t.Run("GetIncoming", func(t *testing.T) { testWebhookStoreGetIncoming(t, rctx, ss) })
t.Run("GetIncomingList", func(t *testing.T) { testWebhookStoreGetIncomingList(t, ss) }) t.Run("GetIncomingList", func(t *testing.T) { testWebhookStoreGetIncomingList(t, rctx, ss) })
t.Run("GetIncomingListByUser", func(t *testing.T) { testWebhookStoreGetIncomingListByUser(t, ss) }) t.Run("GetIncomingListByUser", func(t *testing.T) { testWebhookStoreGetIncomingListByUser(t, rctx, ss) })
t.Run("GetIncomingByTeam", func(t *testing.T) { testWebhookStoreGetIncomingByTeam(t, ss) }) t.Run("GetIncomingByTeam", func(t *testing.T) { testWebhookStoreGetIncomingByTeam(t, rctx, ss) })
t.Run("GetIncomingByTeamByUser", func(t *testing.T) { TestWebhookStoreGetIncomingByTeamByUser(t, ss) }) t.Run("GetIncomingByTeamByUser", func(t *testing.T) { TestWebhookStoreGetIncomingByTeamByUser(t, rctx, ss) })
t.Run("GetIncomingByTeamByChannel", func(t *testing.T) { testWebhookStoreGetIncomingByChannel(t, ss) }) t.Run("GetIncomingByTeamByChannel", func(t *testing.T) { testWebhookStoreGetIncomingByChannel(t, rctx, ss) })
t.Run("DeleteIncoming", func(t *testing.T) { testWebhookStoreDeleteIncoming(t, ss) }) t.Run("DeleteIncoming", func(t *testing.T) { testWebhookStoreDeleteIncoming(t, rctx, ss) })
t.Run("DeleteIncomingByChannel", func(t *testing.T) { testWebhookStoreDeleteIncomingByChannel(t, ss) }) t.Run("DeleteIncomingByChannel", func(t *testing.T) { testWebhookStoreDeleteIncomingByChannel(t, rctx, ss) })
t.Run("DeleteIncomingByUser", func(t *testing.T) { testWebhookStoreDeleteIncomingByUser(t, ss) }) t.Run("DeleteIncomingByUser", func(t *testing.T) { testWebhookStoreDeleteIncomingByUser(t, rctx, ss) })
t.Run("SaveOutgoing", func(t *testing.T) { testWebhookStoreSaveOutgoing(t, ss) }) t.Run("SaveOutgoing", func(t *testing.T) { testWebhookStoreSaveOutgoing(t, rctx, ss) })
t.Run("GetOutgoing", func(t *testing.T) { testWebhookStoreGetOutgoing(t, ss) }) t.Run("GetOutgoing", func(t *testing.T) { testWebhookStoreGetOutgoing(t, rctx, ss) })
t.Run("GetOutgoingList", func(t *testing.T) { testWebhookStoreGetOutgoingList(t, ss) }) t.Run("GetOutgoingList", func(t *testing.T) { testWebhookStoreGetOutgoingList(t, rctx, ss) })
t.Run("GetOutgoingListByUser", func(t *testing.T) { testWebhookStoreGetOutgoingListByUser(t, ss) }) t.Run("GetOutgoingListByUser", func(t *testing.T) { testWebhookStoreGetOutgoingListByUser(t, rctx, ss) })
t.Run("GetOutgoingByChannel", func(t *testing.T) { testWebhookStoreGetOutgoingByChannel(t, ss) }) t.Run("GetOutgoingByChannel", func(t *testing.T) { testWebhookStoreGetOutgoingByChannel(t, rctx, ss) })
t.Run("GetOutgoingByChannelByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByChannelByUser(t, ss) }) t.Run("GetOutgoingByChannelByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByChannelByUser(t, rctx, ss) })
t.Run("GetOutgoingByTeam", func(t *testing.T) { testWebhookStoreGetOutgoingByTeam(t, ss) }) t.Run("GetOutgoingByTeam", func(t *testing.T) { testWebhookStoreGetOutgoingByTeam(t, rctx, ss) })
t.Run("GetOutgoingByTeamByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByTeamByUser(t, ss) }) t.Run("GetOutgoingByTeamByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByTeamByUser(t, rctx, ss) })
t.Run("DeleteOutgoing", func(t *testing.T) { testWebhookStoreDeleteOutgoing(t, ss) }) t.Run("DeleteOutgoing", func(t *testing.T) { testWebhookStoreDeleteOutgoing(t, rctx, ss) })
t.Run("DeleteOutgoingByChannel", func(t *testing.T) { testWebhookStoreDeleteOutgoingByChannel(t, ss) }) t.Run("DeleteOutgoingByChannel", func(t *testing.T) { testWebhookStoreDeleteOutgoingByChannel(t, rctx, ss) })
t.Run("DeleteOutgoingByUser", func(t *testing.T) { testWebhookStoreDeleteOutgoingByUser(t, ss) }) t.Run("DeleteOutgoingByUser", func(t *testing.T) { testWebhookStoreDeleteOutgoingByUser(t, rctx, ss) })
t.Run("UpdateOutgoing", func(t *testing.T) { testWebhookStoreUpdateOutgoing(t, ss) }) t.Run("UpdateOutgoing", func(t *testing.T) { testWebhookStoreUpdateOutgoing(t, rctx, ss) })
t.Run("CountIncoming", func(t *testing.T) { testWebhookStoreCountIncoming(t, ss) }) t.Run("CountIncoming", func(t *testing.T) { testWebhookStoreCountIncoming(t, rctx, ss) })
t.Run("CountOutgoing", func(t *testing.T) { testWebhookStoreCountOutgoing(t, ss) }) t.Run("CountOutgoing", func(t *testing.T) { testWebhookStoreCountOutgoing(t, rctx, ss) })
} }
func testWebhookStoreSaveIncoming(t *testing.T, ss store.Store) { func testWebhookStoreSaveIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
_, err := ss.Webhook().SaveIncoming(o1) _, err := ss.Webhook().SaveIncoming(o1)
@@ -52,7 +53,7 @@ func testWebhookStoreSaveIncoming(t *testing.T, ss store.Store) {
require.Error(t, err, "shouldn't be able to update from save") require.Error(t, err, "shouldn't be able to update from save")
} }
func testWebhookStoreUpdateIncoming(t *testing.T, ss store.Store) { func testWebhookStoreUpdateIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
@@ -72,7 +73,7 @@ func testWebhookStoreUpdateIncoming(t *testing.T, ss store.Store) {
require.Equal(t, "TestHook", webhook.DisplayName, "display name is not updated") require.Equal(t, "TestHook", webhook.DisplayName, "display name is not updated")
} }
func testWebhookStoreGetIncoming(t *testing.T, ss store.Store) { func testWebhookStoreGetIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
@@ -99,7 +100,7 @@ func testWebhookStoreGetIncoming(t *testing.T, ss store.Store) {
require.True(t, errors.As(err, &nfErr), "Should have set the status as not found for missing id") require.True(t, errors.As(err, &nfErr), "Should have set the status as not found for missing id")
} }
func testWebhookStoreGetIncomingList(t *testing.T, ss store.Store) { func testWebhookStoreGetIncomingList(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.IncomingWebhook{} o1 := &model.IncomingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.UserId = model.NewId() o1.UserId = model.NewId()
@@ -125,7 +126,7 @@ func testWebhookStoreGetIncomingList(t *testing.T, ss store.Store) {
require.Len(t, hooks, 1, "only 1 should be returned") require.Len(t, hooks, 1, "only 1 should be returned")
} }
func testWebhookStoreGetIncomingListByUser(t *testing.T, ss store.Store) { func testWebhookStoreGetIncomingListByUser(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.IncomingWebhook{} o1 := &model.IncomingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.UserId = model.NewId() o1.UserId = model.NewId()
@@ -148,7 +149,7 @@ func testWebhookStoreGetIncomingListByUser(t *testing.T, ss store.Store) {
}) })
} }
func testWebhookStoreGetIncomingByTeam(t *testing.T, ss store.Store) { func testWebhookStoreGetIncomingByTeam(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
@@ -164,7 +165,7 @@ func testWebhookStoreGetIncomingByTeam(t *testing.T, ss store.Store) {
require.Empty(t, hooks, "no webhooks should have returned") require.Empty(t, hooks, "no webhooks should have returned")
} }
func TestWebhookStoreGetIncomingByTeamByUser(t *testing.T, ss store.Store) { func TestWebhookStoreGetIncomingByTeamByUser(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
@@ -196,7 +197,7 @@ func TestWebhookStoreGetIncomingByTeamByUser(t *testing.T, ss store.Store) {
}) })
} }
func testWebhookStoreGetIncomingByChannel(t *testing.T, ss store.Store) { func testWebhookStoreGetIncomingByChannel(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err := ss.Webhook().SaveIncoming(o1) o1, err := ss.Webhook().SaveIncoming(o1)
@@ -211,7 +212,7 @@ func testWebhookStoreGetIncomingByChannel(t *testing.T, ss store.Store) {
require.Empty(t, webhooks, "no webhooks should have returned") require.Empty(t, webhooks, "no webhooks should have returned")
} }
func testWebhookStoreDeleteIncoming(t *testing.T, ss store.Store) { func testWebhookStoreDeleteIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
@@ -229,7 +230,7 @@ func testWebhookStoreDeleteIncoming(t *testing.T, ss store.Store) {
require.Error(t, err) require.Error(t, err)
} }
func testWebhookStoreDeleteIncomingByChannel(t *testing.T, ss store.Store) { func testWebhookStoreDeleteIncomingByChannel(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
@@ -247,7 +248,7 @@ func testWebhookStoreDeleteIncomingByChannel(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreDeleteIncomingByUser(t *testing.T, ss store.Store) { func testWebhookStoreDeleteIncomingByUser(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
@@ -274,7 +275,7 @@ func buildIncomingWebhook() *model.IncomingWebhook {
return o1 return o1
} }
func testWebhookStoreSaveOutgoing(t *testing.T, ss store.Store) { func testWebhookStoreSaveOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := model.OutgoingWebhook{} o1 := model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -290,7 +291,7 @@ func testWebhookStoreSaveOutgoing(t *testing.T, ss store.Store) {
require.Error(t, err, "shouldn't be able to update from save") require.Error(t, err, "shouldn't be able to update from save")
} }
func testWebhookStoreGetOutgoing(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -309,7 +310,7 @@ func testWebhookStoreGetOutgoing(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreGetOutgoingListByUser(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingListByUser(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -333,7 +334,7 @@ func testWebhookStoreGetOutgoingListByUser(t *testing.T, ss store.Store) {
}) })
} }
func testWebhookStoreGetOutgoingList(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingList(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -374,7 +375,7 @@ func testWebhookStoreGetOutgoingList(t *testing.T, ss store.Store) {
require.Len(t, result, 2, "wrong number of hooks returned") require.Len(t, result, 2, "wrong number of hooks returned")
} }
func testWebhookStoreGetOutgoingByChannel(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingByChannel(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -392,7 +393,7 @@ func testWebhookStoreGetOutgoingByChannel(t *testing.T, ss store.Store) {
require.Empty(t, result, "no webhooks should have returned") require.Empty(t, result, "no webhooks should have returned")
} }
func testWebhookStoreGetOutgoingByChannelByUser(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingByChannelByUser(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -431,7 +432,7 @@ func testWebhookStoreGetOutgoingByChannelByUser(t *testing.T, ss store.Store) {
}) })
} }
func testWebhookStoreGetOutgoingByTeam(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingByTeam(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -449,7 +450,7 @@ func testWebhookStoreGetOutgoingByTeam(t *testing.T, ss store.Store) {
require.Empty(t, result, "no webhooks should have returned") require.Empty(t, result, "no webhooks should have returned")
} }
func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, rctx request.CTX, ss store.Store) {
var err error var err error
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
@@ -490,7 +491,7 @@ func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, ss store.Store) {
}) })
} }
func testWebhookStoreDeleteOutgoing(t *testing.T, ss store.Store) { func testWebhookStoreDeleteOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -510,7 +511,7 @@ func testWebhookStoreDeleteOutgoing(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, ss store.Store) { func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -530,7 +531,7 @@ func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreDeleteOutgoingByUser(t *testing.T, ss store.Store) { func testWebhookStoreDeleteOutgoingByUser(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -550,7 +551,7 @@ func testWebhookStoreDeleteOutgoingByUser(t *testing.T, ss store.Store) {
require.Error(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreUpdateOutgoing(t *testing.T, ss store.Store) { func testWebhookStoreUpdateOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()
@@ -568,7 +569,7 @@ func testWebhookStoreUpdateOutgoing(t *testing.T, ss store.Store) {
require.NoError(t, err) require.NoError(t, err)
} }
func testWebhookStoreCountIncoming(t *testing.T, ss store.Store) { func testWebhookStoreCountIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.IncomingWebhook{} o1 := &model.IncomingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.UserId = model.NewId() o1.UserId = model.NewId()
@@ -582,7 +583,7 @@ func testWebhookStoreCountIncoming(t *testing.T, ss store.Store) {
require.NotEqual(t, 0, c, "should have at least 1 incoming hook") require.NotEqual(t, 0, c, "should have at least 1 incoming hook")
} }
func testWebhookStoreCountOutgoing(t *testing.T, ss store.Store) { func testWebhookStoreCountOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
o1.CreatorId = model.NewId() o1.CreatorId = model.NewId()