Simplify request generation in store tests (#25422)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
51715d5ed6
Коммит
afb48219c0
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/plugin"
|
||||
"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/store/sqlstore"
|
||||
"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) {
|
||||
rctx := request.TestContext(p.t)
|
||||
settings := p.API.GetUnsanitizedConfig().SqlSettings
|
||||
settings.Trace = model.NewBool(false)
|
||||
store, err := sqlstore.New(settings, nil)
|
||||
@@ -43,11 +45,11 @@ func (p *MyPlugin) MessageWillBePosted(_ *plugin.Context, _ *model.Post) (*model
|
||||
|
||||
wrapper := sqlstore.NewStoreTestWrapper(store)
|
||||
// Testing with a handful of stores
|
||||
storetest.TestPostStore(p.t, store, wrapper)
|
||||
storetest.TestUserStore(p.t, store, wrapper)
|
||||
storetest.TestTeamStore(p.t, store)
|
||||
storetest.TestChannelStore(p.t, store, wrapper)
|
||||
storetest.TestBotStore(p.t, store, wrapper)
|
||||
storetest.TestPostStore(p.t, rctx, store, wrapper)
|
||||
storetest.TestUserStore(p.t, rctx, store, wrapper)
|
||||
storetest.TestTeamStore(p.t, rctx, store)
|
||||
storetest.TestChannelStore(p.t, rctx, store, wrapper)
|
||||
storetest.TestBotStore(p.t, rctx, store, wrapper)
|
||||
|
||||
store.GetMasterX().Close()
|
||||
}
|
||||
|
||||
@@ -9,8 +9,6 @@ import (
|
||||
"time"
|
||||
|
||||
"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/store"
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -75,8 +73,7 @@ func TestBatchMigrationWorker(t *testing.T) {
|
||||
)
|
||||
th.Server.Jobs.RegisterJobType(migrationKey, worker, nil)
|
||||
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
job, appErr := th.Server.Jobs.CreateJob(ctx, migrationKey, nil)
|
||||
job, appErr := th.Server.Jobs.CreateJob(th.Context, migrationKey, nil)
|
||||
require.Nil(t, appErr)
|
||||
|
||||
done := make(chan bool)
|
||||
@@ -112,8 +109,7 @@ func TestBatchMigrationWorker(t *testing.T) {
|
||||
t.Helper()
|
||||
|
||||
require.Eventuallyf(t, func() bool {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
actualJob, appErr := th.Server.Jobs.GetJob(ctx, job.Id)
|
||||
actualJob, appErr := th.Server.Jobs.GetJob(th.Context, job.Id)
|
||||
require.Nil(t, appErr)
|
||||
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) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
actualJob, appErr := th.Server.Jobs.GetJob(ctx, job.Id)
|
||||
actualJob, appErr := th.Server.Jobs.GetJob(th.Context, job.Id)
|
||||
require.Nil(t, appErr)
|
||||
assert.Empty(t, actualJob.Progress)
|
||||
assert.Empty(t, actualJob.Data)
|
||||
|
||||
@@ -20,57 +20,56 @@ func TestEmojiStore(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestEmojiStoreCache(t *testing.T) {
|
||||
rctx := request.TestContext(t)
|
||||
|
||||
fakeEmoji := model.Emoji{Id: "123", Name: "name123"}
|
||||
fakeEmoji2 := model.Emoji{Id: "321", Name: "name321"}
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
emoji, err := cachedStore.Emoji().Get(c, "123", true)
|
||||
emoji, err := cachedStore.Emoji().Get(rctx, "123", true)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, emoji, &fakeEmoji)
|
||||
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)
|
||||
assert.Equal(t, emoji, &fakeEmoji)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
emoji, err := cachedStore.Emoji().GetByName(c, "name123", true)
|
||||
emoji, err := cachedStore.Emoji().GetByName(rctx, "name123", true)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, emoji, &fakeEmoji)
|
||||
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)
|
||||
assert.Equal(t, emoji, &fakeEmoji)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
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.Len(t, emojis, 1)
|
||||
assert.Equal(t, emojis[0], &fakeEmoji)
|
||||
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.Len(t, emojis, 1)
|
||||
assert.Equal(t, emojis[0], &fakeEmoji)
|
||||
@@ -78,19 +77,18 @@ func TestEmojiStoreCache(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("GetMultipleByName: multiple elements", func(t *testing.T) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
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.Len(t, emojis, 2)
|
||||
assert.Equal(t, emojis[0], &fakeEmoji)
|
||||
assert.Equal(t, emojis[1], &fakeEmoji2)
|
||||
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.Len(t, emojis, 1)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().Get(c, "123", true)
|
||||
cachedStore.Emoji().Get(rctx, "123", true)
|
||||
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)
|
||||
})
|
||||
|
||||
t.Run("first call by name not cached, second force not cached", func(t *testing.T) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().GetByName(c, "name123", true)
|
||||
cachedStore.Emoji().GetByName(rctx, "name123", true)
|
||||
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)
|
||||
})
|
||||
|
||||
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)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().Get(c, "123", false)
|
||||
cachedStore.Emoji().Get(rctx, "123", false)
|
||||
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)
|
||||
cachedStore.Emoji().Get(c, "123", true)
|
||||
cachedStore.Emoji().Get(rctx, "123", true)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().GetByName(c, "name123", false)
|
||||
cachedStore.Emoji().GetByName(rctx, "name123", false)
|
||||
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)
|
||||
cachedStore.Emoji().GetByName(c, "name123", true)
|
||||
cachedStore.Emoji().GetByName(rctx, "name123", true)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().Get(c, "123", true)
|
||||
cachedStore.Emoji().Get(rctx, "123", true)
|
||||
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)
|
||||
cachedStore.Emoji().GetMultipleByName(c, []string{"name123"})
|
||||
cachedStore.Emoji().GetMultipleByName(rctx, []string{"name123"})
|
||||
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetMultipleByName", 0)
|
||||
})
|
||||
|
||||
t.Run("first call by name, second call by id cached", func(t *testing.T) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().GetByName(c, "name123", true)
|
||||
cachedStore.Emoji().GetByName(rctx, "name123", true)
|
||||
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)
|
||||
})
|
||||
|
||||
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)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().Get(c, "123", true)
|
||||
cachedStore.Emoji().Get(rctx, "123", true)
|
||||
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
|
||||
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)
|
||||
})
|
||||
|
||||
t.Run("call by id, use master", func(t *testing.T) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().Get(c, "master", true)
|
||||
cachedStore.Emoji().Get(rctx, "master", true)
|
||||
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
|
||||
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)
|
||||
})
|
||||
|
||||
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)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().GetByName(c, "name123", true)
|
||||
cachedStore.Emoji().GetByName(rctx, "name123", true)
|
||||
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
|
||||
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)
|
||||
})
|
||||
|
||||
t.Run("call by name, use master", func(t *testing.T) {
|
||||
c := request.TestContext(t)
|
||||
mockStore := getMockStore(t)
|
||||
mockCacheProvider := getMockCacheProvider()
|
||||
cachedStore, err := NewLocalCacheLayer(mockStore, nil, nil, mockCacheProvider)
|
||||
require.NoError(t, err)
|
||||
|
||||
cachedStore.Emoji().GetByName(c, "master", true)
|
||||
cachedStore.Emoji().GetByName(rctx, "master", true)
|
||||
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
|
||||
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)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"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/sqlstore"
|
||||
"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() {
|
||||
if err := recover(); err != nil {
|
||||
tearDownStores()
|
||||
@@ -40,16 +41,18 @@ func StoreTest(t *testing.T, f func(*testing.T, store.Store)) {
|
||||
}()
|
||||
for _, st := range storeTypes {
|
||||
st := st
|
||||
rctx := request.TestContext(t)
|
||||
|
||||
t.Run(st.Name, func(t *testing.T) {
|
||||
if testing.Short() {
|
||||
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() {
|
||||
if err := recover(); err != nil {
|
||||
tearDownStores()
|
||||
@@ -58,11 +61,13 @@ func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, store.Store, storete
|
||||
}()
|
||||
for _, st := range storeTypes {
|
||||
st := st
|
||||
rctx := request.TestContext(t)
|
||||
|
||||
t.Run(st.Name, func(t *testing.T) {
|
||||
if testing.Short() {
|
||||
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) {
|
||||
StoreTest(t, func(t *testing.T, ss store.Store) {
|
||||
StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
ss.DropAllTables()
|
||||
t.Run("generate reports with no records", func(t *testing.T) {
|
||||
results := ss.CheckIntegrity()
|
||||
@@ -396,7 +396,7 @@ func TestCheckIntegrity(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)
|
||||
t.Run("should receive an error", func(t *testing.T) {
|
||||
config := relationalCheckConfig{
|
||||
@@ -413,7 +413,7 @@ func TestCheckParentChildIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -440,7 +440,7 @@ func TestCheckChannelsCommandWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -471,7 +471,7 @@ func TestCheckChannelsChannelMemberHistoryIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -499,7 +499,7 @@ func TestCheckChannelsChannelMembersIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -527,7 +527,7 @@ func TestCheckChannelsIncomingWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -557,7 +557,7 @@ func TestCheckChannelsOutgoingWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -584,7 +584,7 @@ func TestCheckChannelsPostsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -612,7 +612,7 @@ func TestCheckCommandsCommandWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -640,7 +640,7 @@ func TestCheckPostsFileInfoIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -673,7 +673,7 @@ func TestCheckPostsPostsRootIdIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -700,7 +700,7 @@ func TestCheckPostsReactionsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -731,7 +731,7 @@ func TestCheckSchemesChannelsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -762,8 +762,7 @@ func TestCheckSchemesTeamsIntegrity(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCheckSessionsAuditsIntegrity(t *testing.T) {
|
||||
StoreTest(t, func(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
store := ss.(*SqlStore)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
session := createSession(c, ss, model.NewId())
|
||||
session := createSession(rctx, ss, model.NewId())
|
||||
sessionId := session.Id
|
||||
audit := createAudit(ss, userId, sessionId)
|
||||
dbmap.Exec(`DELETE FROM Sessions WHERE Id=?`, session.Id)
|
||||
@@ -794,7 +793,7 @@ func TestCheckSessionsAuditsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -870,7 +869,7 @@ func TestCheckTeamsChannelsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -898,7 +897,7 @@ func TestCheckTeamsCommandsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -926,7 +925,7 @@ func TestCheckTeamsIncomingWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -954,7 +953,7 @@ func TestCheckTeamsOutgoingWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -982,7 +981,7 @@ func TestCheckTeamsTeamMembersIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1012,7 +1011,7 @@ func TestCheckUsersAuditsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1040,7 +1039,7 @@ func TestCheckUsersCommandWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1067,7 +1066,7 @@ func TestCheckUsersChannelsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1097,7 +1096,7 @@ func TestCheckUsersChannelMemberHistoryIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1127,7 +1126,7 @@ func TestCheckUsersChannelMembersIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1155,7 +1154,7 @@ func TestCheckUsersCommandsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1185,7 +1184,7 @@ func TestCheckUsersCompliancesIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1215,7 +1214,7 @@ func TestCheckUsersEmojiIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1245,7 +1244,7 @@ func TestCheckUsersFileInfoIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1273,7 +1272,7 @@ func TestCheckUsersIncomingWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1303,7 +1302,7 @@ func TestCheckUsersOAuthAccessDataIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1333,7 +1332,7 @@ func TestCheckUsersOAuthAppsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1363,7 +1362,7 @@ func TestCheckUsersOAuthAuthDataIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1391,7 +1390,7 @@ func TestCheckUsersOutgoingWebhooksIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1418,7 +1417,7 @@ func TestCheckUsersPostsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1464,7 +1463,7 @@ func TestCheckUsersPreferencesIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1493,8 +1492,7 @@ func TestCheckUsersReactionsIntegrity(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCheckUsersSessionsIntegrity(t *testing.T) {
|
||||
StoreTest(t, func(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
store := ss.(*SqlStore)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
session := createSession(c, ss, userId)
|
||||
session := createSession(rctx, ss, userId)
|
||||
result := checkUsersSessionsIntegrity(store)
|
||||
require.NoError(t, result.Err)
|
||||
data := result.Data.(model.RelationalIntegrityCheckData)
|
||||
@@ -1522,7 +1520,7 @@ func TestCheckUsersSessionsIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1551,7 +1549,7 @@ func TestCheckUsersStatusIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1581,7 +1579,7 @@ func TestCheckUsersTeamMembersIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
@@ -1611,7 +1609,7 @@ func TestCheckUsersUserAccessTokensIntegrity(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)
|
||||
dbmap := store.GetMasterX()
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"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/storetest"
|
||||
)
|
||||
@@ -18,7 +19,7 @@ func TestPreferenceStore(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()
|
||||
userId2 := model.NewId()
|
||||
category := model.PreferenceCategoryAdvancedSettings
|
||||
|
||||
@@ -24,6 +24,7 @@ import (
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"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/store"
|
||||
"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() {
|
||||
if err := recover(); err != nil {
|
||||
tearDownStores()
|
||||
@@ -56,11 +57,13 @@ func StoreTest(t *testing.T, f func(*testing.T, store.Store)) {
|
||||
}()
|
||||
for _, st := range storeTypes {
|
||||
st := st
|
||||
rctx := request.TestContext(t)
|
||||
|
||||
t.Run(st.Name, func(t *testing.T) {
|
||||
if testing.Short() {
|
||||
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() {
|
||||
if err := recover(); err != nil {
|
||||
tearDownStores()
|
||||
@@ -92,11 +95,13 @@ func StoreTestWithSqlStore(t *testing.T, f func(*testing.T, store.Store, storete
|
||||
}()
|
||||
for _, st := range storeTypes {
|
||||
st := st
|
||||
rctx := request.TestContext(t)
|
||||
|
||||
t.Run(st.Name, func(t *testing.T) {
|
||||
if testing.Short() {
|
||||
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) {
|
||||
StoreTest(t, func(t *testing.T, ss store.Store) {
|
||||
StoreTest(t, func(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
sqlStore := ss.(*SqlStore)
|
||||
var query string
|
||||
timeout := sqlStore.masterX.queryTimeout
|
||||
|
||||
@@ -11,14 +11,15 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestAuditStore(t *testing.T, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testAuditStore(t, ss) })
|
||||
func TestAuditStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
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"}
|
||||
require.NoError(t, ss.Audit().Save(audit))
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"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
|
||||
}
|
||||
|
||||
func TestBotStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("Get", func(t *testing.T) { testBotStoreGet(t, ss, s) })
|
||||
t.Run("GetAll", func(t *testing.T) { testBotStoreGetAll(t, ss, s) })
|
||||
t.Run("Save", func(t *testing.T) { testBotStoreSave(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testBotStoreUpdate(t, ss) })
|
||||
t.Run("PermanentDelete", func(t *testing.T) { testBotStorePermanentDelete(t, ss) })
|
||||
func TestBotStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("Get", func(t *testing.T) { testBotStoreGet(t, rctx, ss, s) })
|
||||
t.Run("GetAll", func(t *testing.T) { testBotStoreGetAll(t, rctx, ss, s) })
|
||||
t.Run("Save", func(t *testing.T) { testBotStoreSave(t, rctx, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testBotStoreUpdate(t, rctx, 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{
|
||||
Username: "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()
|
||||
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) {
|
||||
bot := &model.Bot{
|
||||
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) {
|
||||
existingBot, _ := makeBotWithUser(t, ss, &model.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{
|
||||
Username: "b1",
|
||||
OwnerId: model.NewId(),
|
||||
|
||||
@@ -12,20 +12,21 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestChannelMemberHistoryStore(t *testing.T, ss store.Store) {
|
||||
t.Run("TestLogJoinEvent", func(t *testing.T) { testLogJoinEvent(t, ss) })
|
||||
t.Run("TestLogLeaveEvent", func(t *testing.T) { testLogLeaveEvent(t, ss) })
|
||||
t.Run("TestGetUsersInChannelAtChannelMemberHistory", func(t *testing.T) { testGetUsersInChannelAtChannelMemberHistory(t, ss) })
|
||||
t.Run("TestGetUsersInChannelAtChannelMembers", func(t *testing.T) { testGetUsersInChannelAtChannelMembers(t, ss) })
|
||||
t.Run("TestPermanentDeleteBatch", func(t *testing.T) { testPermanentDeleteBatch(t, ss) })
|
||||
t.Run("TestPermanentDeleteBatchForRetentionPolicies", func(t *testing.T) { testPermanentDeleteBatchForRetentionPolicies(t, ss) })
|
||||
t.Run("TestGetChannelsLeftSince", func(t *testing.T) { testGetChannelsLeftSince(t, ss) })
|
||||
func TestChannelMemberHistoryStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("TestLogJoinEvent", func(t *testing.T) { testLogJoinEvent(t, rctx, ss) })
|
||||
t.Run("TestLogLeaveEvent", func(t *testing.T) { testLogLeaveEvent(t, rctx, ss) })
|
||||
t.Run("TestGetUsersInChannelAtChannelMemberHistory", func(t *testing.T) { testGetUsersInChannelAtChannelMemberHistory(t, rctx, ss) })
|
||||
t.Run("TestGetUsersInChannelAtChannelMembers", func(t *testing.T) { testGetUsersInChannelAtChannelMembers(t, rctx, ss) })
|
||||
t.Run("TestPermanentDeleteBatch", func(t *testing.T) { testPermanentDeleteBatch(t, rctx, ss) })
|
||||
t.Run("TestPermanentDeleteBatchForRetentionPolicies", func(t *testing.T) { testPermanentDeleteBatchForRetentionPolicies(t, rctx, 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
|
||||
ch := model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
@@ -51,7 +52,7 @@ func testLogJoinEvent(t *testing.T, ss store.Store) {
|
||||
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
|
||||
ch := model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
@@ -80,7 +81,7 @@ func testLogLeaveEvent(t *testing.T, ss store.Store) {
|
||||
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
|
||||
ch := &model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
@@ -176,7 +177,7 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
|
||||
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
|
||||
channel := &model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
@@ -288,7 +289,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
|
||||
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
|
||||
channel := &model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
@@ -348,7 +349,7 @@ func testPermanentDeleteBatch(t *testing.T, ss store.Store) {
|
||||
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
|
||||
team, err := ss.Team().Save(&model.Team{
|
||||
DisplayName: "DisplayName",
|
||||
@@ -394,7 +395,7 @@ func testPermanentDeleteBatchForRetentionPolicies(t *testing.T, ss store.Store)
|
||||
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{
|
||||
DisplayName: "DisplayName",
|
||||
Name: "team" + model.NewId(),
|
||||
|
||||
@@ -20,6 +20,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"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/v8/channels/store"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/utils"
|
||||
@@ -41,7 +42,7 @@ type SqlXExecutor interface {
|
||||
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})
|
||||
require.NoError(t, err, "error cleaning all channels", err)
|
||||
for _, channel := range list {
|
||||
@@ -64,95 +65,95 @@ func channelMemberToJSON(t *testing.T, cm *model.ChannelMember) string {
|
||||
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)
|
||||
|
||||
t.Run("Save", func(t *testing.T) { testChannelStoreSave(t, ss) })
|
||||
t.Run("SaveDirectChannel", func(t *testing.T) { testChannelStoreSaveDirectChannel(t, ss, s) })
|
||||
t.Run("CreateDirectChannel", func(t *testing.T) { testChannelStoreCreateDirectChannel(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testChannelStoreUpdate(t, ss) })
|
||||
t.Run("GetChannelUnread", func(t *testing.T) { testGetChannelUnread(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testChannelStoreGet(t, ss, s) })
|
||||
t.Run("GetMany", func(t *testing.T) { testChannelStoreGetMany(t, ss, s) })
|
||||
t.Run("GetChannelsByIds", func(t *testing.T) { testChannelStoreGetChannelsByIds(t, ss) })
|
||||
t.Run("GetChannelsWithTeamDataByIds", func(t *testing.T) { testGetChannelsWithTeamDataByIds(t, ss) })
|
||||
t.Run("GetForPost", func(t *testing.T) { testChannelStoreGetForPost(t, ss) })
|
||||
t.Run("Restore", func(t *testing.T) { testChannelStoreRestore(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testChannelStoreDelete(t, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testChannelStoreGetByName(t, ss) })
|
||||
t.Run("GetByNames", func(t *testing.T) { testChannelStoreGetByNames(t, ss) })
|
||||
t.Run("GetByNamesIncludeDeleted", func(t *testing.T) { testChannelStoreGetByNamesIncludeDeleted(t, ss) })
|
||||
t.Run("GetDeletedByName", func(t *testing.T) { testChannelStoreGetDeletedByName(t, ss) })
|
||||
t.Run("GetDeleted", func(t *testing.T) { testChannelStoreGetDeleted(t, ss) })
|
||||
t.Run("ChannelMemberStore", func(t *testing.T) { testChannelMemberStore(t, ss) })
|
||||
t.Run("SaveMember", func(t *testing.T) { testChannelSaveMember(t, ss) })
|
||||
t.Run("SaveMultipleMembers", func(t *testing.T) { testChannelSaveMultipleMembers(t, ss) })
|
||||
t.Run("UpdateMember", func(t *testing.T) { testChannelUpdateMember(t, ss) })
|
||||
t.Run("UpdateMemberNotifyProps", func(t *testing.T) { testChannelUpdateMemberNotifyProps(t, ss) })
|
||||
t.Run("UpdateMultipleMembers", func(t *testing.T) { testChannelUpdateMultipleMembers(t, ss) })
|
||||
t.Run("RemoveMember", func(t *testing.T) { testChannelRemoveMember(t, ss) })
|
||||
t.Run("RemoveMembers", func(t *testing.T) { testChannelRemoveMembers(t, ss) })
|
||||
t.Run("ChannelDeleteMemberStore", func(t *testing.T) { testChannelDeleteMemberStore(t, ss) })
|
||||
t.Run("GetChannels", func(t *testing.T) { testChannelStoreGetChannels(t, ss) })
|
||||
t.Run("GetChannelsByUser", func(t *testing.T) { testChannelStoreGetChannelsByUser(t, ss) })
|
||||
t.Run("GetAllChannels", func(t *testing.T) { testChannelStoreGetAllChannels(t, ss, s) })
|
||||
t.Run("GetMoreChannels", func(t *testing.T) { testChannelStoreGetMoreChannels(t, ss) })
|
||||
t.Run("GetPrivateChannelsForTeam", func(t *testing.T) { testChannelStoreGetPrivateChannelsForTeam(t, ss) })
|
||||
t.Run("GetPublicChannelsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsForTeam(t, ss) })
|
||||
t.Run("GetPublicChannelsByIdsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsByIdsForTeam(t, ss) })
|
||||
t.Run("GetChannelCounts", func(t *testing.T) { testChannelStoreGetChannelCounts(t, ss) })
|
||||
t.Run("GetMembersForUser", func(t *testing.T) { testChannelStoreGetMembersForUser(t, ss) })
|
||||
t.Run("GetMembersForUserWithPagination", func(t *testing.T) { testChannelStoreGetMembersForUserWithPagination(t, ss) })
|
||||
t.Run("CountPostsAfter", func(t *testing.T) { testCountPostsAfter(t, ss) })
|
||||
t.Run("CountUrgentPostsAfter", func(t *testing.T) { testCountUrgentPostsAfter(t, ss) })
|
||||
t.Run("UpdateLastViewedAt", func(t *testing.T) { testChannelStoreUpdateLastViewedAt(t, ss) })
|
||||
t.Run("IncrementMentionCount", func(t *testing.T) { testChannelStoreIncrementMentionCount(t, ss) })
|
||||
t.Run("UpdateChannelMember", func(t *testing.T) { testUpdateChannelMember(t, ss) })
|
||||
t.Run("GetMember", func(t *testing.T) { testGetMember(t, ss) })
|
||||
t.Run("GetMemberForPost", func(t *testing.T) { testChannelStoreGetMemberForPost(t, ss) })
|
||||
t.Run("GetMemberCount", func(t *testing.T) { testGetMemberCount(t, ss) })
|
||||
t.Run("GetMemberCountsByGroup", func(t *testing.T) { testGetMemberCountsByGroup(t, ss) })
|
||||
t.Run("GetGuestCount", func(t *testing.T) { testGetGuestCount(t, ss) })
|
||||
t.Run("SearchMore", func(t *testing.T) { testChannelStoreSearchMore(t, ss) })
|
||||
t.Run("SearchInTeam", func(t *testing.T) { testChannelStoreSearchInTeam(t, ss) })
|
||||
t.Run("Autocomplete", func(t *testing.T) { testAutocomplete(t, ss, s) })
|
||||
t.Run("SearchArchivedInTeam", func(t *testing.T) { testChannelStoreSearchArchivedInTeam(t, ss, s) })
|
||||
t.Run("SearchForUserInTeam", func(t *testing.T) { testChannelStoreSearchForUserInTeam(t, ss) })
|
||||
t.Run("SearchAllChannels", func(t *testing.T) { testChannelStoreSearchAllChannels(t, ss) })
|
||||
t.Run("GetMembersByIds", func(t *testing.T) { testChannelStoreGetMembersByIds(t, ss) })
|
||||
t.Run("GetMembersByChannelIds", func(t *testing.T) { testChannelStoreGetMembersByChannelIds(t, ss) })
|
||||
t.Run("GetMembersInfoByChannelIds", func(t *testing.T) { testChannelStoreGetMembersInfoByChannelIds(t, ss) })
|
||||
t.Run("SearchGroupChannels", func(t *testing.T) { testChannelStoreSearchGroupChannels(t, ss) })
|
||||
t.Run("AnalyticsDeletedTypeCount", func(t *testing.T) { testChannelStoreAnalyticsDeletedTypeCount(t, ss) })
|
||||
t.Run("GetPinnedPosts", func(t *testing.T) { testChannelStoreGetPinnedPosts(t, ss) })
|
||||
t.Run("GetPinnedPostCount", func(t *testing.T) { testChannelStoreGetPinnedPostCount(t, ss) })
|
||||
t.Run("MaxChannelsPerTeam", func(t *testing.T) { testChannelStoreMaxChannelsPerTeam(t, ss) })
|
||||
t.Run("GetChannelsByScheme", func(t *testing.T) { testChannelStoreGetChannelsByScheme(t, ss) })
|
||||
t.Run("MigrateChannelMembers", func(t *testing.T) { testChannelStoreMigrateChannelMembers(t, ss) })
|
||||
t.Run("ResetAllChannelSchemes", func(t *testing.T) { testResetAllChannelSchemes(t, ss) })
|
||||
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testChannelStoreClearAllCustomRoleAssignments(t, ss) })
|
||||
t.Run("MaterializedPublicChannels", func(t *testing.T) { testMaterializedPublicChannels(t, ss, s) })
|
||||
t.Run("GetAllChannelsForExportAfter", func(t *testing.T) { testChannelStoreGetAllChannelsForExportAfter(t, ss) })
|
||||
t.Run("GetChannelMembersForExport", func(t *testing.T) { testChannelStoreGetChannelMembersForExport(t, ss) })
|
||||
t.Run("RemoveAllDeactivatedMembers", func(t *testing.T) { testChannelStoreRemoveAllDeactivatedMembers(t, ss, s) })
|
||||
t.Run("ExportAllDirectChannels", func(t *testing.T) { testChannelStoreExportAllDirectChannels(t, ss, s) })
|
||||
t.Run("ExportAllDirectChannelsExcludePrivateAndPublic", func(t *testing.T) { testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t, ss, s) })
|
||||
t.Run("ExportAllDirectChannelsDeletedChannel", func(t *testing.T) { testChannelStoreExportAllDirectChannelsDeletedChannel(t, ss, s) })
|
||||
t.Run("GetChannelsBatchForIndexing", func(t *testing.T) { testChannelStoreGetChannelsBatchForIndexing(t, ss) })
|
||||
t.Run("GroupSyncedChannelCount", func(t *testing.T) { testGroupSyncedChannelCount(t, ss) })
|
||||
t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, ss) })
|
||||
t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, ss) })
|
||||
t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, ss, s) })
|
||||
t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, ss) })
|
||||
t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, ss) })
|
||||
t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, ss, s) })
|
||||
t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, ss) })
|
||||
t.Run("SetShared", func(t *testing.T) { testSetShared(t, ss) })
|
||||
t.Run("GetTeamForChannel", func(t *testing.T) { testGetTeamForChannel(t, ss) })
|
||||
t.Run("GetChannelsWithUnreadsAndWithMentions", func(t *testing.T) { testGetChannelsWithUnreadsAndWithMentions(t, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testChannelStoreSave(t, rctx, ss) })
|
||||
t.Run("SaveDirectChannel", func(t *testing.T) { testChannelStoreSaveDirectChannel(t, rctx, ss, s) })
|
||||
t.Run("CreateDirectChannel", func(t *testing.T) { testChannelStoreCreateDirectChannel(t, rctx, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testChannelStoreUpdate(t, rctx, ss) })
|
||||
t.Run("GetChannelUnread", func(t *testing.T) { testGetChannelUnread(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testChannelStoreGet(t, rctx, ss, s) })
|
||||
t.Run("GetMany", func(t *testing.T) { testChannelStoreGetMany(t, rctx, ss, s) })
|
||||
t.Run("GetChannelsByIds", func(t *testing.T) { testChannelStoreGetChannelsByIds(t, rctx, ss) })
|
||||
t.Run("GetChannelsWithTeamDataByIds", func(t *testing.T) { testGetChannelsWithTeamDataByIds(t, rctx, ss) })
|
||||
t.Run("GetForPost", func(t *testing.T) { testChannelStoreGetForPost(t, rctx, ss) })
|
||||
t.Run("Restore", func(t *testing.T) { testChannelStoreRestore(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testChannelStoreDelete(t, rctx, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testChannelStoreGetByName(t, rctx, ss) })
|
||||
t.Run("GetByNames", func(t *testing.T) { testChannelStoreGetByNames(t, rctx, ss) })
|
||||
t.Run("GetByNamesIncludeDeleted", func(t *testing.T) { testChannelStoreGetByNamesIncludeDeleted(t, rctx, ss) })
|
||||
t.Run("GetDeletedByName", func(t *testing.T) { testChannelStoreGetDeletedByName(t, rctx, ss) })
|
||||
t.Run("GetDeleted", func(t *testing.T) { testChannelStoreGetDeleted(t, rctx, ss) })
|
||||
t.Run("ChannelMemberStore", func(t *testing.T) { testChannelMemberStore(t, rctx, ss) })
|
||||
t.Run("SaveMember", func(t *testing.T) { testChannelSaveMember(t, rctx, ss) })
|
||||
t.Run("SaveMultipleMembers", func(t *testing.T) { testChannelSaveMultipleMembers(t, rctx, ss) })
|
||||
t.Run("UpdateMember", func(t *testing.T) { testChannelUpdateMember(t, rctx, ss) })
|
||||
t.Run("UpdateMemberNotifyProps", func(t *testing.T) { testChannelUpdateMemberNotifyProps(t, rctx, ss) })
|
||||
t.Run("UpdateMultipleMembers", func(t *testing.T) { testChannelUpdateMultipleMembers(t, rctx, ss) })
|
||||
t.Run("RemoveMember", func(t *testing.T) { testChannelRemoveMember(t, rctx, ss) })
|
||||
t.Run("RemoveMembers", func(t *testing.T) { testChannelRemoveMembers(t, rctx, ss) })
|
||||
t.Run("ChannelDeleteMemberStore", func(t *testing.T) { testChannelDeleteMemberStore(t, rctx, ss) })
|
||||
t.Run("GetChannels", func(t *testing.T) { testChannelStoreGetChannels(t, rctx, ss) })
|
||||
t.Run("GetChannelsByUser", func(t *testing.T) { testChannelStoreGetChannelsByUser(t, rctx, ss) })
|
||||
t.Run("GetAllChannels", func(t *testing.T) { testChannelStoreGetAllChannels(t, rctx, ss, s) })
|
||||
t.Run("GetMoreChannels", func(t *testing.T) { testChannelStoreGetMoreChannels(t, rctx, ss) })
|
||||
t.Run("GetPrivateChannelsForTeam", func(t *testing.T) { testChannelStoreGetPrivateChannelsForTeam(t, rctx, ss) })
|
||||
t.Run("GetPublicChannelsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsForTeam(t, rctx, ss) })
|
||||
t.Run("GetPublicChannelsByIdsForTeam", func(t *testing.T) { testChannelStoreGetPublicChannelsByIdsForTeam(t, rctx, ss) })
|
||||
t.Run("GetChannelCounts", func(t *testing.T) { testChannelStoreGetChannelCounts(t, rctx, ss) })
|
||||
t.Run("GetMembersForUser", func(t *testing.T) { testChannelStoreGetMembersForUser(t, rctx, ss) })
|
||||
t.Run("GetMembersForUserWithPagination", func(t *testing.T) { testChannelStoreGetMembersForUserWithPagination(t, rctx, ss) })
|
||||
t.Run("CountPostsAfter", func(t *testing.T) { testCountPostsAfter(t, rctx, ss) })
|
||||
t.Run("CountUrgentPostsAfter", func(t *testing.T) { testCountUrgentPostsAfter(t, rctx, ss) })
|
||||
t.Run("UpdateLastViewedAt", func(t *testing.T) { testChannelStoreUpdateLastViewedAt(t, rctx, ss) })
|
||||
t.Run("IncrementMentionCount", func(t *testing.T) { testChannelStoreIncrementMentionCount(t, rctx, ss) })
|
||||
t.Run("UpdateChannelMember", func(t *testing.T) { testUpdateChannelMember(t, rctx, ss) })
|
||||
t.Run("GetMember", func(t *testing.T) { testGetMember(t, rctx, ss) })
|
||||
t.Run("GetMemberForPost", func(t *testing.T) { testChannelStoreGetMemberForPost(t, rctx, ss) })
|
||||
t.Run("GetMemberCount", func(t *testing.T) { testGetMemberCount(t, rctx, ss) })
|
||||
t.Run("GetMemberCountsByGroup", func(t *testing.T) { testGetMemberCountsByGroup(t, rctx, ss) })
|
||||
t.Run("GetGuestCount", func(t *testing.T) { testGetGuestCount(t, rctx, ss) })
|
||||
t.Run("SearchMore", func(t *testing.T) { testChannelStoreSearchMore(t, rctx, ss) })
|
||||
t.Run("SearchInTeam", func(t *testing.T) { testChannelStoreSearchInTeam(t, rctx, ss) })
|
||||
t.Run("Autocomplete", func(t *testing.T) { testAutocomplete(t, rctx, ss, s) })
|
||||
t.Run("SearchArchivedInTeam", func(t *testing.T) { testChannelStoreSearchArchivedInTeam(t, rctx, ss, s) })
|
||||
t.Run("SearchForUserInTeam", func(t *testing.T) { testChannelStoreSearchForUserInTeam(t, rctx, ss) })
|
||||
t.Run("SearchAllChannels", func(t *testing.T) { testChannelStoreSearchAllChannels(t, rctx, ss) })
|
||||
t.Run("GetMembersByIds", func(t *testing.T) { testChannelStoreGetMembersByIds(t, rctx, ss) })
|
||||
t.Run("GetMembersByChannelIds", func(t *testing.T) { testChannelStoreGetMembersByChannelIds(t, rctx, ss) })
|
||||
t.Run("GetMembersInfoByChannelIds", func(t *testing.T) { testChannelStoreGetMembersInfoByChannelIds(t, rctx, ss) })
|
||||
t.Run("SearchGroupChannels", func(t *testing.T) { testChannelStoreSearchGroupChannels(t, rctx, ss) })
|
||||
t.Run("AnalyticsDeletedTypeCount", func(t *testing.T) { testChannelStoreAnalyticsDeletedTypeCount(t, rctx, ss) })
|
||||
t.Run("GetPinnedPosts", func(t *testing.T) { testChannelStoreGetPinnedPosts(t, rctx, ss) })
|
||||
t.Run("GetPinnedPostCount", func(t *testing.T) { testChannelStoreGetPinnedPostCount(t, rctx, ss) })
|
||||
t.Run("MaxChannelsPerTeam", func(t *testing.T) { testChannelStoreMaxChannelsPerTeam(t, rctx, ss) })
|
||||
t.Run("GetChannelsByScheme", func(t *testing.T) { testChannelStoreGetChannelsByScheme(t, rctx, ss) })
|
||||
t.Run("MigrateChannelMembers", func(t *testing.T) { testChannelStoreMigrateChannelMembers(t, rctx, ss) })
|
||||
t.Run("ResetAllChannelSchemes", func(t *testing.T) { testResetAllChannelSchemes(t, rctx, ss) })
|
||||
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testChannelStoreClearAllCustomRoleAssignments(t, rctx, ss) })
|
||||
t.Run("MaterializedPublicChannels", func(t *testing.T) { testMaterializedPublicChannels(t, rctx, ss, s) })
|
||||
t.Run("GetAllChannelsForExportAfter", func(t *testing.T) { testChannelStoreGetAllChannelsForExportAfter(t, rctx, ss) })
|
||||
t.Run("GetChannelMembersForExport", func(t *testing.T) { testChannelStoreGetChannelMembersForExport(t, rctx, ss) })
|
||||
t.Run("RemoveAllDeactivatedMembers", func(t *testing.T) { testChannelStoreRemoveAllDeactivatedMembers(t, rctx, ss, s) })
|
||||
t.Run("ExportAllDirectChannels", func(t *testing.T) { testChannelStoreExportAllDirectChannels(t, rctx, ss, s) })
|
||||
t.Run("ExportAllDirectChannelsExcludePrivateAndPublic", func(t *testing.T) { testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t, rctx, ss, s) })
|
||||
t.Run("ExportAllDirectChannelsDeletedChannel", func(t *testing.T) { testChannelStoreExportAllDirectChannelsDeletedChannel(t, rctx, ss, s) })
|
||||
t.Run("GetChannelsBatchForIndexing", func(t *testing.T) { testChannelStoreGetChannelsBatchForIndexing(t, rctx, ss) })
|
||||
t.Run("GroupSyncedChannelCount", func(t *testing.T) { testGroupSyncedChannelCount(t, rctx, ss) })
|
||||
t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, rctx, ss) })
|
||||
t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, rctx, ss) })
|
||||
t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, rctx, ss, s) })
|
||||
t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, rctx, ss) })
|
||||
t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, rctx, ss) })
|
||||
t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, rctx, ss, s) })
|
||||
t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, rctx, ss) })
|
||||
t.Run("SetShared", func(t *testing.T) { testSetShared(t, rctx, ss) })
|
||||
t.Run("GetTeamForChannel", func(t *testing.T) { testGetTeamForChannel(t, rctx, 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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -203,7 +204,7 @@ func testChannelStoreSave(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -293,7 +294,7 @@ func testChannelStoreSaveDirectChannel(t *testing.T, ss store.Store, s SqlStore)
|
||||
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.Email = MakeEmail()
|
||||
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")
|
||||
}
|
||||
|
||||
func testChannelStoreUpdate(t *testing.T, ss store.Store) {
|
||||
func testChannelStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := model.Channel{}
|
||||
o1.TeamId = model.NewId()
|
||||
o1.DisplayName = "Name"
|
||||
@@ -367,7 +368,7 @@ func testChannelStoreUpdate(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
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")
|
||||
}
|
||||
|
||||
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.TeamId = model.NewId()
|
||||
o1.DisplayName = "Name"
|
||||
@@ -494,7 +495,7 @@ func testChannelStoreGet(t *testing.T, ss store.Store, s SqlStore) {
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: "Name",
|
||||
@@ -528,7 +529,7 @@ func testChannelStoreGetMany(t *testing.T, ss store.Store, s SqlStore) {
|
||||
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.TeamId = model.NewId()
|
||||
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{
|
||||
DisplayName: "DisplayName",
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: "Name",
|
||||
@@ -714,7 +715,7 @@ func testChannelStoreGetForPost(t *testing.T, ss store.Store) {
|
||||
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.TeamId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testChannelStoreDelete(t *testing.T, ss store.Store) {
|
||||
func testChannelStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := model.Channel{}
|
||||
o1.TeamId = model.NewId()
|
||||
o1.DisplayName = "Channel1"
|
||||
@@ -821,7 +822,7 @@ func testChannelStoreDelete(t *testing.T, ss store.Store) {
|
||||
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.TeamId = model.NewId()
|
||||
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()")
|
||||
}
|
||||
|
||||
func testChannelStoreGetByNames(t *testing.T, ss store.Store) {
|
||||
func testChannelStoreGetByNames(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: "Name",
|
||||
@@ -919,7 +920,7 @@ func testChannelStoreGetByNames(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
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.TeamId = model.NewId()
|
||||
o1.DisplayName = "Name"
|
||||
@@ -989,7 +990,7 @@ func testChannelStoreGetDeletedByName(t *testing.T, ss store.Store) {
|
||||
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.TeamId = model.NewId()
|
||||
o1.DisplayName = "Channel1"
|
||||
@@ -1046,7 +1047,7 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) {
|
||||
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.TeamId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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.TeamId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testChannelStoreGetChannels(t *testing.T, ss store.Store) {
|
||||
func testChannelStoreGetChannels(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
team := model.NewId()
|
||||
o1 := &model.Channel{}
|
||||
o1.TeamId = team
|
||||
@@ -3620,7 +3621,7 @@ func testChannelStoreGetChannels(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
team2 := model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlStore) {
|
||||
cleanupChannels(t, ss)
|
||||
func testChannelStoreGetAllChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
cleanupChannels(t, rctx, ss)
|
||||
|
||||
t1 := model.Team{}
|
||||
t1.DisplayName = "Name"
|
||||
@@ -3857,7 +3858,7 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlStore) {
|
||||
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()
|
||||
otherTeamId := 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()
|
||||
|
||||
// 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()
|
||||
|
||||
// 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()
|
||||
|
||||
// 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.TeamId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testChannelStoreGetMembersForUser(t *testing.T, ss store.Store) {
|
||||
func testChannelStoreGetMembersForUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t1 := model.Team{}
|
||||
t1.DisplayName = "Name"
|
||||
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{
|
||||
DisplayName: "team1",
|
||||
Name: NewTestId(),
|
||||
@@ -4483,7 +4484,7 @@ func testChannelStoreGetMembersForUserWithPagination(t *testing.T, ss store.Stor
|
||||
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) {
|
||||
userId1 := 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) {
|
||||
userId1 := 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.TeamId = model.NewId()
|
||||
o1.DisplayName = "Channel1"
|
||||
@@ -4772,7 +4773,7 @@ func testChannelStoreUpdateLastViewedAt(t *testing.T, ss store.Store) {
|
||||
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.TeamId = model.NewId()
|
||||
o1.DisplayName = "Channel1"
|
||||
@@ -4802,7 +4803,7 @@ func testChannelStoreIncrementMentionCount(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
c1 := &model.Channel{
|
||||
@@ -4831,7 +4832,7 @@ func testUpdateChannelMember(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
c1 := &model.Channel{
|
||||
@@ -4895,7 +4896,7 @@ func testGetMember(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: "Name",
|
||||
@@ -4928,7 +4929,7 @@ func testChannelStoreGetMemberForPost(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
func testGetMemberCountsByGroup(t *testing.T, ss store.Store) {
|
||||
func testGetMemberCountsByGroup(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
var memberCounts []*model.ChannelMemberCountByGroup
|
||||
teamId := model.NewId()
|
||||
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()
|
||||
|
||||
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()
|
||||
otherTeamId := model.NewId()
|
||||
|
||||
@@ -5542,7 +5543,7 @@ func (s ByChannelDisplayName) Less(i, j int) bool {
|
||||
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()
|
||||
userId := model.NewId()
|
||||
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()
|
||||
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{
|
||||
DisplayName: "t1",
|
||||
Name: NewTestId(),
|
||||
@@ -6014,7 +6015,7 @@ func testAutocomplete(t *testing.T, ss store.Store, s SqlStore) {
|
||||
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()
|
||||
teamId := 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) {
|
||||
cleanupChannels(t, ss)
|
||||
func testChannelStoreSearchAllChannels(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
cleanupChannels(t, rctx, ss)
|
||||
|
||||
t1 := model.Team{}
|
||||
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.TeamId = model.NewId()
|
||||
o1.DisplayName = "ChannelA"
|
||||
@@ -6412,7 +6413,7 @@ func testChannelStoreGetMembersByIds(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
// 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{
|
||||
Username: "user.test",
|
||||
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
|
||||
u1 := &model.User{}
|
||||
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.TeamId = model.NewId()
|
||||
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.")
|
||||
}
|
||||
|
||||
func testChannelStoreGetPinnedPosts(t *testing.T, ss store.Store) {
|
||||
func testChannelStoreGetPinnedPosts(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
ch1 := &model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: "Name",
|
||||
@@ -6913,7 +6914,7 @@ func testChannelStoreGetPinnedPostCount(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: "Channel",
|
||||
@@ -6930,7 +6931,7 @@ func testChannelStoreMaxChannelsPerTeam(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
s1 := &model.Scheme{
|
||||
DisplayName: model.NewId(),
|
||||
@@ -6995,7 +6996,7 @@ func testChannelStoreGetChannelsByScheme(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
c1 := &model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
@@ -7067,7 +7068,7 @@ func testChannelStoreMigrateChannelMembers(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewId(),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -7109,7 +7110,7 @@ func testResetAllChannelSchemes(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: "Name",
|
||||
@@ -7174,7 +7175,7 @@ func testChannelStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store)
|
||||
|
||||
// testMaterializedPublicChannels tests edge cases involving the triggers and stored procedures
|
||||
// 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()
|
||||
|
||||
// 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.DisplayName = "Name"
|
||||
t1.Name = NewTestId()
|
||||
@@ -7362,7 +7363,7 @@ func testChannelStoreGetAllChannelsForExportAfter(t *testing.T, ss store.Store)
|
||||
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.DisplayName = "Name"
|
||||
t1.Name = NewTestId()
|
||||
@@ -7418,7 +7419,7 @@ func testChannelStoreGetChannelMembersForExport(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
t1 := model.Team{}
|
||||
t1.DisplayName = "Name"
|
||||
@@ -7509,7 +7510,7 @@ func testChannelStoreRemoveAllDeactivatedMembers(t *testing.T, ss store.Store, s
|
||||
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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -7566,7 +7567,7 @@ func testChannelStoreExportAllDirectChannels(t *testing.T, ss store.Store, s Sql
|
||||
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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -7628,7 +7629,7 @@ func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T
|
||||
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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -7678,7 +7679,7 @@ func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, ss stor
|
||||
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
|
||||
c1 := &model.Channel{}
|
||||
c1.DisplayName = "Channel1"
|
||||
@@ -7744,7 +7745,7 @@ func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
DisplayName: model.NewId(),
|
||||
Name: model.NewId(),
|
||||
@@ -7778,7 +7779,7 @@ func testGroupSyncedChannelCount(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
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{
|
||||
Name: "myteam",
|
||||
DisplayName: "DisplayName",
|
||||
@@ -7835,7 +7836,7 @@ func testGetTeamForChannel(t *testing.T, ss store.Store) {
|
||||
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(
|
||||
pushProp string,
|
||||
withUnreads bool,
|
||||
|
||||
@@ -17,19 +17,19 @@ import (
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestChannelStoreCategories(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, ss) })
|
||||
t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, ss) })
|
||||
t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, ss, s) })
|
||||
t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, ss) })
|
||||
t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, ss) })
|
||||
t.Run("ClearSidebarOnTeamLeave", func(t *testing.T) { testClearSidebarOnTeamLeave(t, ss, s) })
|
||||
t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, ss, s) })
|
||||
t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, ss) })
|
||||
t.Run("SidebarCategoryDeadlock", func(t *testing.T) { testSidebarCategoryDeadlock(t, ss) })
|
||||
func TestChannelStoreCategories(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("CreateInitialSidebarCategories", func(t *testing.T) { testCreateInitialSidebarCategories(t, rctx, ss) })
|
||||
t.Run("CreateSidebarCategory", func(t *testing.T) { testCreateSidebarCategory(t, rctx, ss) })
|
||||
t.Run("GetSidebarCategory", func(t *testing.T) { testGetSidebarCategory(t, rctx, ss, s) })
|
||||
t.Run("GetSidebarCategories", func(t *testing.T) { testGetSidebarCategories(t, rctx, ss) })
|
||||
t.Run("UpdateSidebarCategories", func(t *testing.T) { testUpdateSidebarCategories(t, rctx, ss) })
|
||||
t.Run("ClearSidebarOnTeamLeave", func(t *testing.T) { testClearSidebarOnTeamLeave(t, rctx, ss, s) })
|
||||
t.Run("DeleteSidebarCategory", func(t *testing.T) { testDeleteSidebarCategory(t, rctx, ss, s) })
|
||||
t.Run("UpdateSidebarChannelsByPreferences", func(t *testing.T) { testUpdateSidebarChannelsByPreferences(t, rctx, 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{
|
||||
DisplayName: "Name",
|
||||
Name: NewTestId(),
|
||||
@@ -53,20 +53,18 @@ func setupTeam(t *testing.T, ss store.Store, userIds ...string) *model.Team {
|
||||
return team
|
||||
}
|
||||
|
||||
func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testCreateInitialSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("should create initial favorites/channels/DMs categories", func(t *testing.T) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
assert.NoError(t, nErr)
|
||||
require.Len(t, res.Categories, 3)
|
||||
assert.Equal(t, model.SidebarCategoryFavorites, res.Categories[0].Type)
|
||||
@@ -82,17 +80,17 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
userId := model.NewId()
|
||||
userId2 := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId, userId2)
|
||||
team := setupTeam(t, rctx, ss, userId, userId2)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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.Len(t, res.Categories, 3)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team2 := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
team2 := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
@@ -122,7 +120,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team2.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
assert.NoError(t, nErr)
|
||||
assert.Len(t, res.Categories, 3)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
@@ -152,7 +150,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, res, initialCategories)
|
||||
|
||||
// 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.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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
var wg sync.WaitGroup
|
||||
|
||||
@@ -178,7 +176,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Set up two channels, one favorited and one not
|
||||
channel1, nErr := ss.Channel().Save(&model.Channel{
|
||||
@@ -236,7 +234,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.Len(t, categories.Categories, 3)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Set up two channels
|
||||
channel1, nErr := ss.Channel().Save(&model.Channel{
|
||||
@@ -305,7 +303,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.Len(t, categories.Categories, 3)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
otherUserId1 := model.NewId()
|
||||
otherUserId2 := model.NewId()
|
||||
@@ -373,7 +371,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.Len(t, categories.Categories, 3)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team2 := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
team2 := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Set up a channel on another team and favorite it
|
||||
channel1, nErr := ss.Channel().Save(&model.Channel{
|
||||
@@ -422,7 +420,7 @@ func testCreateInitialSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
categories, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.Len(t, categories.Categories, 3)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testCreateSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("Creating category without initial categories should fail", func(t *testing.T) {
|
||||
userId := 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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
// 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) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testGetSidebarCategory(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("should return a custom category with its Channels field set", func(t *testing.T) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
channelId1 := model.NewId()
|
||||
channelId2 := model.NewId()
|
||||
@@ -682,7 +676,7 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the channels category
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the channels category
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
// 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.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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the DMs category
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the DMs category
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the DMs category
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
@@ -1010,12 +1004,12 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
|
||||
require.NoError(t, nErr)
|
||||
|
||||
// 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{
|
||||
TeamID: otherTeam.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testGetSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("should return channels in the same order between different ways of getting categories", func(t *testing.T) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
|
||||
teamMember1 := setupTeam(t, ss, userId)
|
||||
teamMember2 := setupTeam(t, ss, userId)
|
||||
teamDeleted := setupTeam(t, ss, userId)
|
||||
teamMember1 := setupTeam(t, rctx, ss, userId)
|
||||
teamMember2 := setupTeam(t, rctx, ss, userId)
|
||||
teamDeleted := setupTeam(t, rctx, ss, userId)
|
||||
teamDeleted.DeleteAt = model.GetMillis()
|
||||
ss.Team().Update(teamDeleted)
|
||||
teamNotMember := setupTeam(t, ss)
|
||||
teamDeletedMember := setupTeam(t, ss, userId)
|
||||
teamNotMember := setupTeam(t, rctx, ss)
|
||||
teamDeletedMember := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
members, err := ss.Team().GetMembersByIds(teamDeletedMember.Id, []string{userId}, nil)
|
||||
require.NoError(t, err)
|
||||
@@ -1105,7 +1097,7 @@ func testGetSidebarCategories(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
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.NotEmpty(t, res)
|
||||
}
|
||||
@@ -1140,19 +1132,17 @@ func testGetSidebarCategories(t *testing.T, ss store.Store) {
|
||||
})
|
||||
}
|
||||
|
||||
func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUpdateSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("ensure the query to update SidebarCategories hasn't been polluted by UpdateSidebarCategoryOrder", func(t *testing.T) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, err)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, err)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the favorites category
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the favorites category
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team2 := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
team2 := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create the initial categories and find the favorites categories in each team
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
@@ -1442,7 +1432,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team2.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr = ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr = ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := 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
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
@@ -1550,7 +1540,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, model.SidebarCategoryChannels, channelsCategory.Type)
|
||||
|
||||
// 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.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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Create some channels
|
||||
channel, nErr := ss.Channel().Save(&model.Channel{
|
||||
@@ -1710,7 +1700,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
otherUserId := model.NewId()
|
||||
dmChannel, nErr := ss.Channel().SaveDirectChannel(
|
||||
@@ -1769,7 +1759,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Join a channel
|
||||
channel, nErr := ss.Channel().Save(&model.Channel{
|
||||
@@ -1861,7 +1851,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
// Join a channel
|
||||
channel, nErr := ss.Channel().Save(&model.Channel{
|
||||
@@ -1929,7 +1919,7 @@ func testUpdateSidebarCategories(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func setupInitialSidebarCategories(t *testing.T, rctx request.CTX, ss store.Store) (string, string) {
|
||||
userId := model.NewId()
|
||||
team := setupTeam(t, ss, userId)
|
||||
team := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
@@ -2004,11 +1992,9 @@ func setupInitialSidebarCategories(t *testing.T, ss store.Store) (string, string
|
||||
return userId, team.Id
|
||||
}
|
||||
|
||||
func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testClearSidebarOnTeamLeave(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
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{
|
||||
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) {
|
||||
userId, teamId := setupInitialSidebarCategories(t, ss)
|
||||
userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
|
||||
|
||||
user := &model.User{
|
||||
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) {
|
||||
userId, teamId := setupInitialSidebarCategories(t, ss)
|
||||
userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
|
||||
|
||||
user := &model.User{
|
||||
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
|
||||
team2 := setupTeam(t, ss, userId)
|
||||
team2 := setupTeam(t, rctx, ss, userId)
|
||||
|
||||
opts := &store.SidebarCategorySearchOpts{
|
||||
TeamID: team2.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, err)
|
||||
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) {
|
||||
userId, teamId := setupInitialSidebarCategories(t, ss)
|
||||
userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
|
||||
defer ss.User().PermanentDelete(userId)
|
||||
|
||||
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) {
|
||||
userId, teamId := setupInitialSidebarCategories(t, ss)
|
||||
userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
|
||||
defer ss.User().PermanentDelete(userId)
|
||||
|
||||
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) {
|
||||
userId, teamId := setupInitialSidebarCategories(t, ss)
|
||||
userId, teamId := setupInitialSidebarCategories(t, rctx, ss)
|
||||
defer ss.User().PermanentDelete(userId)
|
||||
res, err := ss.Channel().GetSidebarCategoriesForTeamForUser(userId, teamId)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUpdateSidebarChannelsByPreferences(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("Should be able to update sidebar channels", func(t *testing.T) {
|
||||
userId := model.NewId()
|
||||
teamId := model.NewId()
|
||||
@@ -2315,7 +2299,7 @@ func testUpdateSidebarChannelsByPreferences(t *testing.T, ss store.Store) {
|
||||
TeamID: teamId,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
require.NoError(t, nErr)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
@@ -2344,7 +2328,7 @@ func testUpdateSidebarChannelsByPreferences(t *testing.T, ss store.Store) {
|
||||
TeamID: teamId,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(c, userId, opts)
|
||||
res, nErr := ss.Channel().CreateInitialSidebarCategories(rctx, userId, opts)
|
||||
assert.NoError(t, nErr)
|
||||
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
|
||||
// in the hope of triggering a deadlock. This is a best-effort test case, and is not guaranteed
|
||||
// to catch a bug.
|
||||
func testSidebarCategoryDeadlock(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSidebarCategoryDeadlock(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
userID := model.NewId()
|
||||
team := setupTeam(t, ss, userID)
|
||||
team := setupTeam(t, rctx, ss, userID)
|
||||
|
||||
// Join a channel
|
||||
channel, err := ss.Channel().Save(&model.Channel{
|
||||
@@ -2388,7 +2370,7 @@ func testSidebarCategoryDeadlock(t *testing.T, ss store.Store) {
|
||||
TeamID: team.Id,
|
||||
ExcludeTeam: false,
|
||||
}
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(c, userID, opts)
|
||||
res, err := ss.Channel().CreateInitialSidebarCategories(rctx, userID, opts)
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, res)
|
||||
|
||||
|
||||
@@ -11,18 +11,19 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestClusterDiscoveryStore(t *testing.T, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testClusterDiscoveryStore(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testClusterDiscoveryStoreDelete(t, ss) })
|
||||
t.Run("LastPing", func(t *testing.T) { testClusterDiscoveryStoreLastPing(t, ss) })
|
||||
t.Run("Exists", func(t *testing.T) { testClusterDiscoveryStoreExists(t, ss) })
|
||||
t.Run("ClusterDiscoveryGetStore", func(t *testing.T) { testClusterDiscoveryGetStore(t, ss) })
|
||||
func TestClusterDiscoveryStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testClusterDiscoveryStore(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testClusterDiscoveryStoreDelete(t, rctx, ss) })
|
||||
t.Run("LastPing", func(t *testing.T) { testClusterDiscoveryStoreLastPing(t, rctx, ss) })
|
||||
t.Run("Exists", func(t *testing.T) { testClusterDiscoveryStoreExists(t, rctx, 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{
|
||||
ClusterName: "cluster_name",
|
||||
Hostname: "hostname" + model.NewId(),
|
||||
@@ -36,7 +37,7 @@ func testClusterDiscoveryStore(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
ClusterName: "cluster_name",
|
||||
Hostname: "hostname" + model.NewId(),
|
||||
@@ -50,7 +51,7 @@ func testClusterDiscoveryStoreDelete(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
ClusterName: "cluster_name_lastPing",
|
||||
Hostname: "hostname" + model.NewId(),
|
||||
@@ -86,7 +87,7 @@ func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
ClusterName: "cluster_name_Exists",
|
||||
Hostname: "hostname" + model.NewId(),
|
||||
@@ -107,7 +108,7 @@ func testClusterDiscoveryStoreExists(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
discovery1 := &model.ClusterDiscovery{
|
||||
|
||||
@@ -10,22 +10,23 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestCommandStore(t *testing.T, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testCommandStoreSave(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testCommandStoreGet(t, ss) })
|
||||
t.Run("GetByTeam", func(t *testing.T) { testCommandStoreGetByTeam(t, ss) })
|
||||
t.Run("GetByTrigger", func(t *testing.T) { testCommandStoreGetByTrigger(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testCommandStoreDelete(t, ss) })
|
||||
t.Run("DeleteByTeam", func(t *testing.T) { testCommandStoreDeleteByTeam(t, ss) })
|
||||
t.Run("DeleteByUser", func(t *testing.T) { testCommandStoreDeleteByUser(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testCommandStoreUpdate(t, ss) })
|
||||
t.Run("CommandCount", func(t *testing.T) { testCommandCount(t, ss) })
|
||||
func TestCommandStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testCommandStoreSave(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testCommandStoreGet(t, rctx, ss) })
|
||||
t.Run("GetByTeam", func(t *testing.T) { testCommandStoreGetByTeam(t, rctx, ss) })
|
||||
t.Run("GetByTrigger", func(t *testing.T) { testCommandStoreGetByTrigger(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testCommandStoreDelete(t, rctx, ss) })
|
||||
t.Run("DeleteByTeam", func(t *testing.T) { testCommandStoreDeleteByTeam(t, rctx, ss) })
|
||||
t.Run("DeleteByUser", func(t *testing.T) { testCommandStoreDeleteByUser(t, rctx, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testCommandStoreUpdate(t, rctx, 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.CreatorId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testCommandStoreGet(t *testing.T, ss store.Store) {
|
||||
func testCommandStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.Command{}
|
||||
o1.CreatorId = model.NewId()
|
||||
o1.Method = model.CommandMethodPost
|
||||
@@ -61,7 +62,7 @@ func testCommandStoreGet(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testCommandStoreGetByTrigger(t *testing.T, ss store.Store) {
|
||||
func testCommandStoreGetByTrigger(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.Command{}
|
||||
o1.CreatorId = model.NewId()
|
||||
o1.Method = model.CommandMethodPost
|
||||
@@ -117,7 +118,7 @@ func testCommandStoreGetByTrigger(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = model.NewId()
|
||||
o1.Method = model.CommandMethodPost
|
||||
@@ -141,7 +142,7 @@ func testCommandStoreDelete(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = model.NewId()
|
||||
o1.Method = model.CommandMethodPost
|
||||
@@ -165,7 +166,7 @@ func testCommandStoreDeleteByTeam(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = model.NewId()
|
||||
o1.Method = model.CommandMethodPost
|
||||
@@ -189,7 +190,7 @@ func testCommandStoreDeleteByUser(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = model.NewId()
|
||||
o1.Method = model.CommandMethodPost
|
||||
@@ -211,7 +212,7 @@ func testCommandStoreUpdate(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = model.NewId()
|
||||
o1.Method = model.CommandMethodPost
|
||||
|
||||
@@ -11,14 +11,15 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestCommandWebhookStore(t *testing.T, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testCommandWebhookStore(t, ss) })
|
||||
func TestCommandWebhookStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
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()
|
||||
|
||||
h1 := &model.CommandWebhook{}
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
"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
|
||||
allUsers, err := ss.User().GetAll()
|
||||
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) {
|
||||
t.Run("", func(t *testing.T) { testComplianceStore(t, ss) })
|
||||
t.Run("ComplianceExport", func(t *testing.T) { testComplianceExport(t, ss) })
|
||||
t.Run("ComplianceExportDirectMessages", func(t *testing.T) { testComplianceExportDirectMessages(t, ss) })
|
||||
t.Run("MessageExportPublicChannel", func(t *testing.T) { testMessageExportPublicChannel(t, ss) })
|
||||
t.Run("MessageExportPrivateChannel", func(t *testing.T) { testMessageExportPrivateChannel(t, ss) })
|
||||
t.Run("MessageExportDirectMessageChannel", func(t *testing.T) { testMessageExportDirectMessageChannel(t, ss) })
|
||||
t.Run("MessageExportGroupMessageChannel", func(t *testing.T) { testMessageExportGroupMessageChannel(t, ss) })
|
||||
t.Run("MessageEditExportMessage", func(t *testing.T) { testEditExportMessage(t, ss) })
|
||||
t.Run("MessageEditAfterExportMessage", func(t *testing.T) { testEditAfterExportMessage(t, ss) })
|
||||
t.Run("MessageDeleteExportMessage", func(t *testing.T) { testDeleteExportMessage(t, ss) })
|
||||
t.Run("MessageDeleteAfterExportMessage", func(t *testing.T) { testDeleteAfterExportMessage(t, ss) })
|
||||
func TestComplianceStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testComplianceStore(t, rctx, ss) })
|
||||
t.Run("ComplianceExport", func(t *testing.T) { testComplianceExport(t, rctx, ss) })
|
||||
t.Run("ComplianceExportDirectMessages", func(t *testing.T) { testComplianceExportDirectMessages(t, rctx, ss) })
|
||||
t.Run("MessageExportPublicChannel", func(t *testing.T) { testMessageExportPublicChannel(t, rctx, ss) })
|
||||
t.Run("MessageExportPrivateChannel", func(t *testing.T) { testMessageExportPrivateChannel(t, rctx, ss) })
|
||||
t.Run("MessageExportDirectMessageChannel", func(t *testing.T) { testMessageExportDirectMessageChannel(t, rctx, ss) })
|
||||
t.Run("MessageExportGroupMessageChannel", func(t *testing.T) { testMessageExportGroupMessageChannel(t, rctx, ss) })
|
||||
t.Run("MessageEditExportMessage", func(t *testing.T) { testEditExportMessage(t, rctx, ss) })
|
||||
t.Run("MessageEditAfterExportMessage", func(t *testing.T) { testEditAfterExportMessage(t, rctx, ss) })
|
||||
t.Run("MessageDeleteExportMessage", func(t *testing.T) { testDeleteExportMessage(t, rctx, 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}
|
||||
_, err := ss.Compliance().Save(compliance1)
|
||||
require.NoError(t, err)
|
||||
@@ -97,7 +97,7 @@ func testComplianceStore(t *testing.T, ss store.Store) {
|
||||
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)
|
||||
const (
|
||||
limit = 30000
|
||||
@@ -229,8 +229,8 @@ func testComplianceExport(t *testing.T, ss store.Store) {
|
||||
})
|
||||
}
|
||||
|
||||
func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testComplianceExportDirectMessages(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
const (
|
||||
@@ -395,14 +395,12 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
|
||||
})
|
||||
}
|
||||
|
||||
func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testMessageExportPublicChannel(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
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
|
||||
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)
|
||||
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)
|
||||
}
|
||||
|
||||
func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testMessageExportPrivateChannel(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
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
|
||||
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)
|
||||
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)
|
||||
}
|
||||
|
||||
func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testMessageExportDirectMessageChannel(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
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
|
||||
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)
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testMessageExportGroupMessageChannel(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
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
|
||||
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)
|
||||
assert.Equal(t, 1, len(messages))
|
||||
|
||||
@@ -792,14 +784,12 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
// post,edit,export
|
||||
func testEditExportMessage(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testEditExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
assert.Equal(t, 0, len(messages))
|
||||
|
||||
@@ -854,7 +844,7 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
assert.Equal(t, 2, len(messages))
|
||||
|
||||
@@ -887,13 +877,11 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
// post, export, edit, export
|
||||
func testEditAfterExportMessage(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testEditAfterExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
assert.Equal(t, 0, len(messages))
|
||||
|
||||
@@ -941,7 +929,7 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
assert.Equal(t, 1, len(messages))
|
||||
|
||||
@@ -967,7 +955,7 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
assert.Equal(t, 2, len(messages))
|
||||
|
||||
@@ -1000,13 +988,11 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
// post, delete, export
|
||||
func testDeleteExportMessage(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testDeleteExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
assert.Equal(t, 0, len(messages))
|
||||
|
||||
@@ -1059,7 +1045,7 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
assert.Equal(t, 1, len(messages))
|
||||
|
||||
@@ -1087,13 +1073,11 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
// post,export,delete,export
|
||||
func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
defer cleanupStoreState(t, ss)
|
||||
func testDeleteAfterExportMessage(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
defer cleanupStoreState(t, rctx, ss)
|
||||
// get the starting number of message export entries
|
||||
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)
|
||||
assert.Equal(t, 0, len(messages))
|
||||
|
||||
@@ -1141,7 +1125,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
assert.Equal(t, 1, len(messages))
|
||||
|
||||
@@ -1164,7 +1148,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
assert.Equal(t, 1, len(messages))
|
||||
|
||||
|
||||
@@ -6,20 +6,21 @@ package storetest
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDesktopTokensStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("GetUserId", func(t *testing.T) { testGetUserId(t, ss) })
|
||||
t.Run("Insert", func(t *testing.T) { testInsert(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testDeleteToken(t, ss) })
|
||||
t.Run("DeleteByUserId", func(t *testing.T) { testDeleteByUserId(t, ss) })
|
||||
t.Run("DeleteOlderThan", func(t *testing.T) { testDeleteOlderThan(t, ss) })
|
||||
func TestDesktopTokensStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("GetUserId", func(t *testing.T) { testGetUserId(t, rctx, ss) })
|
||||
t.Run("Insert", func(t *testing.T) { testInsert(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testDeleteToken(t, rctx, ss) })
|
||||
t.Run("DeleteByUserId", func(t *testing.T) { testDeleteByUserId(t, rctx, 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")
|
||||
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) {
|
||||
err := ss.DesktopTokens().Insert("token", 1000, "user_id")
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
require.NoError(t, err)
|
||||
err = ss.DesktopTokens().Insert("deleteable_token_new", 5000, "deleteable_user_id")
|
||||
|
||||
@@ -11,20 +11,21 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestDraftStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveDraft", func(t *testing.T) { testSaveDraft(t, ss) })
|
||||
t.Run("UpdateDraft", func(t *testing.T) { testUpdateDraft(t, ss) })
|
||||
t.Run("DeleteDraft", func(t *testing.T) { testDeleteDraft(t, ss) })
|
||||
t.Run("GetDraft", func(t *testing.T) { testGetDraft(t, ss) })
|
||||
t.Run("GetDraftsForUser", func(t *testing.T) { testGetDraftsForUser(t, ss) })
|
||||
t.Run("GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration", func(t *testing.T) { testGetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(t, ss) })
|
||||
t.Run("DeleteEmptyDraftsByCreateAtAndUserId", func(t *testing.T) { testDeleteEmptyDraftsByCreateAtAndUserId(t, ss) })
|
||||
func TestDraftStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveDraft", func(t *testing.T) { testSaveDraft(t, rctx, ss) })
|
||||
t.Run("UpdateDraft", func(t *testing.T) { testUpdateDraft(t, rctx, ss) })
|
||||
t.Run("DeleteDraft", func(t *testing.T) { testDeleteDraft(t, rctx, ss) })
|
||||
t.Run("GetDraft", func(t *testing.T) { testGetDraft(t, rctx, ss) })
|
||||
t.Run("GetDraftsForUser", func(t *testing.T) { testGetDraftsForUser(t, rctx, ss) })
|
||||
t.Run("GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration", func(t *testing.T) { testGetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(t, rctx, 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{
|
||||
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{
|
||||
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{
|
||||
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{
|
||||
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{
|
||||
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()
|
||||
|
||||
_, 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()
|
||||
|
||||
pages := 0
|
||||
@@ -400,43 +401,43 @@ func countDraftPages(t *testing.T, ss store.Store) int {
|
||||
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) {
|
||||
clearDrafts(t, ss)
|
||||
clearDrafts(t, rctx, ss)
|
||||
|
||||
createAt, userId, err := ss.Draft().GetLastCreateAtAndUserIdValuesForEmptyDraftsMigration(0, "")
|
||||
require.NoError(t, err)
|
||||
assert.EqualValues(t, 0, createAt)
|
||||
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) {
|
||||
clearDrafts(t, ss)
|
||||
clearDrafts(t, rctx, ss)
|
||||
|
||||
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) {
|
||||
clearDrafts(t, ss)
|
||||
clearDrafts(t, rctx, ss)
|
||||
|
||||
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) {
|
||||
clearDrafts(t, ss)
|
||||
clearDrafts(t, rctx, ss)
|
||||
|
||||
err := ss.Draft().DeleteEmptyDraftsByCreateAtAndUserId(0, "")
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("delete single page, all empty", func(t *testing.T) {
|
||||
clearDrafts(t, ss)
|
||||
clearDrafts(t, rctx, ss)
|
||||
makeDrafts(t, ss, 100, "")
|
||||
|
||||
createAt, userId := int64(0), ""
|
||||
@@ -446,7 +447,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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)
|
||||
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) {
|
||||
clearDrafts(t, ss)
|
||||
clearDrafts(t, rctx, ss)
|
||||
makeDrafts(t, ss, 300, "")
|
||||
|
||||
createAt, userId := int64(0), ""
|
||||
@@ -465,7 +466,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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)
|
||||
require.NoError(t, err)
|
||||
@@ -473,7 +474,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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)
|
||||
require.NoError(t, err)
|
||||
@@ -481,7 +482,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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)
|
||||
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) {
|
||||
clearDrafts(t, ss)
|
||||
clearDrafts(t, rctx, ss)
|
||||
makeDrafts(t, ss, 50, "")
|
||||
makeDrafts(t, ss, 50, "message")
|
||||
makeDrafts(t, ss, 50, "")
|
||||
@@ -503,7 +504,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
makeDrafts(t, ss, 50, "message")
|
||||
|
||||
// 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), ""
|
||||
|
||||
@@ -514,7 +515,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
createAt, userId = nextCreateAt, nextUserId
|
||||
|
||||
// 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)
|
||||
require.NoError(t, err)
|
||||
@@ -523,7 +524,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
createAt, userId = nextCreateAt, nextUserId
|
||||
|
||||
// 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)
|
||||
require.NoError(t, err)
|
||||
@@ -532,7 +533,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
createAt, userId = nextCreateAt, nextUserId
|
||||
|
||||
// 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)
|
||||
require.NoError(t, err)
|
||||
@@ -541,7 +542,7 @@ func testDeleteEmptyDraftsByCreateAtAndUserId(t *testing.T, ss store.Store) {
|
||||
createAt, userId = nextCreateAt, nextUserId
|
||||
|
||||
// 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.
|
||||
|
||||
|
||||
@@ -15,16 +15,16 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestEmojiStore(t *testing.T, ss store.Store) {
|
||||
t.Run("EmojiSaveDelete", func(t *testing.T) { testEmojiSaveDelete(t, ss) })
|
||||
t.Run("EmojiGet", func(t *testing.T) { testEmojiGet(t, ss) })
|
||||
t.Run("EmojiGetByName", func(t *testing.T) { testEmojiGetByName(t, ss) })
|
||||
t.Run("EmojiGetMultipleByName", func(t *testing.T) { testEmojiGetMultipleByName(t, ss) })
|
||||
t.Run("EmojiGetList", func(t *testing.T) { testEmojiGetList(t, ss) })
|
||||
t.Run("EmojiSearch", func(t *testing.T) { testEmojiSearch(t, ss) })
|
||||
func TestEmojiStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("EmojiSaveDelete", func(t *testing.T) { testEmojiSaveDelete(t, rctx, ss) })
|
||||
t.Run("EmojiGet", func(t *testing.T) { testEmojiGet(t, rctx, ss) })
|
||||
t.Run("EmojiGetByName", func(t *testing.T) { testEmojiGetByName(t, rctx, ss) })
|
||||
t.Run("EmojiGetMultipleByName", func(t *testing.T) { testEmojiGetMultipleByName(t, rctx, ss) })
|
||||
t.Run("EmojiGetList", func(t *testing.T) { testEmojiGetList(t, rctx, 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{
|
||||
CreatorId: model.NewId(),
|
||||
Name: model.NewId(),
|
||||
@@ -52,9 +52,7 @@ func testEmojiSaveDelete(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func testEmojiGet(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testEmojiGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
emojis := []model.Emoji{
|
||||
{
|
||||
CreatorId: model.NewId(),
|
||||
@@ -83,19 +81,17 @@ func testEmojiGet(t *testing.T, ss store.Store) {
|
||||
}()
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
func testEmojiGetByName(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testEmojiGetByName(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
emojis := []model.Emoji{
|
||||
{
|
||||
CreatorId: model.NewId(),
|
||||
@@ -124,14 +120,12 @@ func testEmojiGetByName(t *testing.T, ss store.Store) {
|
||||
}()
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
func testEmojiGetMultipleByName(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testEmojiGetMultipleByName(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
emojis := []model.Emoji{
|
||||
{
|
||||
CreatorId: model.NewId(),
|
||||
@@ -160,32 +154,32 @@ func testEmojiGetMultipleByName(t *testing.T, ss store.Store) {
|
||||
}()
|
||||
|
||||
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.Len(t, received, 1, "got incorrect emoji")
|
||||
require.Equal(t, *received[0], emojis[0], "got incorrect emoji")
|
||||
})
|
||||
|
||||
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.Len(t, received, 3, "got incorrect emojis")
|
||||
})
|
||||
|
||||
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.Empty(t, received, "got incorrect emoji")
|
||||
})
|
||||
|
||||
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.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{
|
||||
{
|
||||
CreatorId: model.NewId(),
|
||||
@@ -243,7 +237,7 @@ func testEmojiGetList(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
{
|
||||
CreatorId: model.NewId(),
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"time"
|
||||
|
||||
"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/utils"
|
||||
|
||||
@@ -17,28 +18,28 @@ import (
|
||||
"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() {
|
||||
s.GetMasterX().Exec("TRUNCATE FileInfo")
|
||||
})
|
||||
t.Run("FileInfoSaveGet", func(t *testing.T) { testFileInfoSaveGet(t, ss) })
|
||||
t.Run("FileInfoSaveGetByPath", func(t *testing.T) { testFileInfoSaveGetByPath(t, ss) })
|
||||
t.Run("FileInfoGetForPost", func(t *testing.T) { testFileInfoGetForPost(t, ss) })
|
||||
t.Run("FileInfoGetForUser", func(t *testing.T) { testFileInfoGetForUser(t, ss) })
|
||||
t.Run("FileInfoGetWithOptions", func(t *testing.T) { testFileInfoGetWithOptions(t, ss) })
|
||||
t.Run("FileInfoAttachToPost", func(t *testing.T) { testFileInfoAttachToPost(t, ss) })
|
||||
t.Run("FileInfoDeleteForPost", func(t *testing.T) { testFileInfoDeleteForPost(t, ss) })
|
||||
t.Run("FileInfoPermanentDelete", func(t *testing.T) { testFileInfoPermanentDelete(t, ss) })
|
||||
t.Run("FileInfoPermanentDeleteBatch", func(t *testing.T) { testFileInfoPermanentDeleteBatch(t, ss) })
|
||||
t.Run("FileInfoPermanentDeleteByUser", func(t *testing.T) { testFileInfoPermanentDeleteByUser(t, ss) })
|
||||
t.Run("FileInfoUpdateMinipreview", func(t *testing.T) { testFileInfoUpdateMinipreview(t, ss) })
|
||||
t.Run("GetFilesBatchForIndexing", func(t *testing.T) { testFileInfoStoreGetFilesBatchForIndexing(t, ss) })
|
||||
t.Run("CountAll", func(t *testing.T) { testFileInfoStoreCountAll(t, ss) })
|
||||
t.Run("GetStorageUsage", func(t *testing.T) { testFileInfoGetStorageUsage(t, ss) })
|
||||
t.Run("GetUptoNSizeFileTime", func(t *testing.T) { testGetUptoNSizeFileTime(t, ss, s) })
|
||||
t.Run("FileInfoSaveGet", func(t *testing.T) { testFileInfoSaveGet(t, rctx, ss) })
|
||||
t.Run("FileInfoSaveGetByPath", func(t *testing.T) { testFileInfoSaveGetByPath(t, rctx, ss) })
|
||||
t.Run("FileInfoGetForPost", func(t *testing.T) { testFileInfoGetForPost(t, rctx, ss) })
|
||||
t.Run("FileInfoGetForUser", func(t *testing.T) { testFileInfoGetForUser(t, rctx, ss) })
|
||||
t.Run("FileInfoGetWithOptions", func(t *testing.T) { testFileInfoGetWithOptions(t, rctx, ss) })
|
||||
t.Run("FileInfoAttachToPost", func(t *testing.T) { testFileInfoAttachToPost(t, rctx, ss) })
|
||||
t.Run("FileInfoDeleteForPost", func(t *testing.T) { testFileInfoDeleteForPost(t, rctx, ss) })
|
||||
t.Run("FileInfoPermanentDelete", func(t *testing.T) { testFileInfoPermanentDelete(t, rctx, ss) })
|
||||
t.Run("FileInfoPermanentDeleteBatch", func(t *testing.T) { testFileInfoPermanentDeleteBatch(t, rctx, ss) })
|
||||
t.Run("FileInfoPermanentDeleteByUser", func(t *testing.T) { testFileInfoPermanentDeleteByUser(t, rctx, ss) })
|
||||
t.Run("FileInfoUpdateMinipreview", func(t *testing.T) { testFileInfoUpdateMinipreview(t, rctx, ss) })
|
||||
t.Run("GetFilesBatchForIndexing", func(t *testing.T) { testFileInfoStoreGetFilesBatchForIndexing(t, rctx, ss) })
|
||||
t.Run("CountAll", func(t *testing.T) { testFileInfoStoreCountAll(t, rctx, ss) })
|
||||
t.Run("GetStorageUsage", func(t *testing.T) { testFileInfoGetStorageUsage(t, rctx, ss) })
|
||||
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{
|
||||
CreatorId: model.NewId(),
|
||||
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{
|
||||
CreatorId: 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()
|
||||
postId := 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()
|
||||
userId2 := model.NewId()
|
||||
postId := model.NewId()
|
||||
@@ -276,7 +277,7 @@ func testFileInfoGetForUser(t *testing.T, ss store.Store) {
|
||||
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 {
|
||||
post := model.Post{}
|
||||
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) 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) {
|
||||
userId := 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()
|
||||
postId := model.NewId()
|
||||
channelId := model.NewId()
|
||||
@@ -570,7 +571,7 @@ func testFileInfoDeleteForPost(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
PostId: model.NewId(),
|
||||
ChannelId: model.NewId(),
|
||||
@@ -583,7 +584,7 @@ func testFileInfoPermanentDelete(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
channelId := model.NewId()
|
||||
|
||||
@@ -626,7 +627,7 @@ func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
postId := model.NewId()
|
||||
channelId := model.NewId()
|
||||
@@ -643,7 +644,7 @@ func testFileInfoPermanentDeleteByUser(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
CreatorId: model.NewId(),
|
||||
Path: "image.png",
|
||||
@@ -676,7 +677,7 @@ func testFileInfoUpdateMinipreview(t *testing.T, ss store.Store) {
|
||||
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.TeamId = model.NewId()
|
||||
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))
|
||||
}
|
||||
|
||||
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)
|
||||
require.NoError(t, err)
|
||||
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)
|
||||
}
|
||||
|
||||
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)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -857,7 +858,7 @@ func testFileInfoGetStorageUsage(t *testing.T, ss store.Store) {
|
||||
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")
|
||||
|
||||
_, err := ss.FileInfo().GetUptoNSizeFileTime(0)
|
||||
|
||||
@@ -16,87 +16,88 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
pUtils "github.com/mattermost/mattermost/server/public/utils"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestGroupStore(t *testing.T, ss store.Store) {
|
||||
t.Run("Create", func(t *testing.T) { testGroupStoreCreate(t, ss) })
|
||||
t.Run("CreateWithUserIds", func(t *testing.T) { testGroupCreateWithUserIds(t, ss) })
|
||||
func TestGroupStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("Create", func(t *testing.T) { testGroupStoreCreate(t, rctx, ss) })
|
||||
t.Run("CreateWithUserIds", func(t *testing.T) { testGroupCreateWithUserIds(t, rctx, ss) })
|
||||
|
||||
t.Run("Get", func(t *testing.T) { testGroupStoreGet(t, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testGroupStoreGetByName(t, ss) })
|
||||
t.Run("GetByIDs", func(t *testing.T) { testGroupStoreGetByIDs(t, ss) })
|
||||
t.Run("GetByRemoteID", func(t *testing.T) { testGroupStoreGetByRemoteID(t, ss) })
|
||||
t.Run("GetAllBySource", func(t *testing.T) { testGroupStoreGetAllByType(t, ss) })
|
||||
t.Run("GetByUser", func(t *testing.T) { testGroupStoreGetByUser(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testGroupStoreUpdate(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testGroupStoreDelete(t, ss) })
|
||||
t.Run("Restore", func(t *testing.T) { testGroupStoreRestore(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testGroupStoreGet(t, rctx, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testGroupStoreGetByName(t, rctx, ss) })
|
||||
t.Run("GetByIDs", func(t *testing.T) { testGroupStoreGetByIDs(t, rctx, ss) })
|
||||
t.Run("GetByRemoteID", func(t *testing.T) { testGroupStoreGetByRemoteID(t, rctx, ss) })
|
||||
t.Run("GetAllBySource", func(t *testing.T) { testGroupStoreGetAllByType(t, rctx, ss) })
|
||||
t.Run("GetByUser", func(t *testing.T) { testGroupStoreGetByUser(t, rctx, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testGroupStoreUpdate(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testGroupStoreDelete(t, rctx, ss) })
|
||||
t.Run("Restore", func(t *testing.T) { testGroupStoreRestore(t, rctx, ss) })
|
||||
|
||||
t.Run("GetMemberUsers", func(t *testing.T) { testGroupGetMemberUsers(t, ss) })
|
||||
t.Run("GetMemberUsersPage", func(t *testing.T) { testGroupGetMemberUsersPage(t, ss) })
|
||||
t.Run("GetMemberUsersSortedPage", func(t *testing.T) { testGroupGetMemberUsersSortedPage(t, ss) })
|
||||
t.Run("GetMemberUsers", func(t *testing.T) { testGroupGetMemberUsers(t, rctx, ss) })
|
||||
t.Run("GetMemberUsersPage", func(t *testing.T) { testGroupGetMemberUsersPage(t, rctx, ss) })
|
||||
t.Run("GetMemberUsersSortedPage", func(t *testing.T) { testGroupGetMemberUsersSortedPage(t, rctx, ss) })
|
||||
|
||||
t.Run("GetMemberUsersInTeam", func(t *testing.T) { testGroupGetMemberUsersInTeam(t, ss) })
|
||||
t.Run("GetMemberUsersNotInChannel", func(t *testing.T) { testGroupGetMemberUsersNotInChannel(t, ss) })
|
||||
t.Run("GetMemberUsersInTeam", func(t *testing.T) { testGroupGetMemberUsersInTeam(t, rctx, ss) })
|
||||
t.Run("GetMemberUsersNotInChannel", func(t *testing.T) { testGroupGetMemberUsersNotInChannel(t, rctx, ss) })
|
||||
|
||||
t.Run("UpsertMember", func(t *testing.T) { testUpsertMember(t, ss) })
|
||||
t.Run("UpsertMembers", func(t *testing.T) { testUpsertMembers(t, ss) })
|
||||
t.Run("DeleteMember", func(t *testing.T) { testGroupDeleteMember(t, ss) })
|
||||
t.Run("DeleteMembers", func(t *testing.T) { testGroupDeleteMembers(t, ss) })
|
||||
t.Run("PermanentDeleteMembersByUser", func(t *testing.T) { testGroupPermanentDeleteMembersByUser(t, ss) })
|
||||
t.Run("UpsertMember", func(t *testing.T) { testUpsertMember(t, rctx, ss) })
|
||||
t.Run("UpsertMembers", func(t *testing.T) { testUpsertMembers(t, rctx, ss) })
|
||||
t.Run("DeleteMember", func(t *testing.T) { testGroupDeleteMember(t, rctx, ss) })
|
||||
t.Run("DeleteMembers", func(t *testing.T) { testGroupDeleteMembers(t, rctx, ss) })
|
||||
t.Run("PermanentDeleteMembersByUser", func(t *testing.T) { testGroupPermanentDeleteMembersByUser(t, rctx, ss) })
|
||||
|
||||
t.Run("CreateGroupSyncable", func(t *testing.T) { testCreateGroupSyncable(t, ss) })
|
||||
t.Run("GetGroupSyncable", func(t *testing.T) { testGetGroupSyncable(t, ss) })
|
||||
t.Run("GetAllGroupSyncablesByGroupId", func(t *testing.T) { testGetAllGroupSyncablesByGroup(t, ss) })
|
||||
t.Run("UpdateGroupSyncable", func(t *testing.T) { testUpdateGroupSyncable(t, ss) })
|
||||
t.Run("DeleteGroupSyncable", func(t *testing.T) { testDeleteGroupSyncable(t, ss) })
|
||||
t.Run("CreateGroupSyncable", func(t *testing.T) { testCreateGroupSyncable(t, rctx, ss) })
|
||||
t.Run("GetGroupSyncable", func(t *testing.T) { testGetGroupSyncable(t, rctx, ss) })
|
||||
t.Run("GetAllGroupSyncablesByGroupId", func(t *testing.T) { testGetAllGroupSyncablesByGroup(t, rctx, ss) })
|
||||
t.Run("UpdateGroupSyncable", func(t *testing.T) { testUpdateGroupSyncable(t, rctx, 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_SingleTeam", func(t *testing.T) { testTeamMembersToAddSingleTeam(t, ss) })
|
||||
t.Run("TeamMembersToAdd", func(t *testing.T) { testTeamMembersToAdd(t, rctx, 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_SingleChannel", func(t *testing.T) { testChannelMembersToAddSingleChannel(t, ss) })
|
||||
t.Run("ChannelMembersToAdd", func(t *testing.T) { testChannelMembersToAdd(t, rctx, 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_SingleTeam", func(t *testing.T) { testTeamMembersToRemoveSingleTeam(t, ss) })
|
||||
t.Run("TeamMembersToRemove", func(t *testing.T) { testTeamMembersToRemove(t, rctx, 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_SingleChannel", func(t *testing.T) { testChannelMembersToRemoveSingleChannel(t, ss) })
|
||||
t.Run("ChannelMembersToRemove", func(t *testing.T) { testChannelMembersToRemove(t, rctx, 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("GetGroupsAssociatedToChannelsByTeam", func(t *testing.T) { testGetGroupsAssociatedToChannelsByTeam(t, ss) })
|
||||
t.Run("GetGroupsByTeam", func(t *testing.T) { testGetGroupsByTeam(t, ss) })
|
||||
t.Run("GetGroupsByChannel", func(t *testing.T) { testGetGroupsByChannel(t, rctx, ss) })
|
||||
t.Run("GetGroupsAssociatedToChannelsByTeam", func(t *testing.T) { testGetGroupsAssociatedToChannelsByTeam(t, rctx, 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("ChannelMembersMinusGroupMembers", func(t *testing.T) { testChannelMembersMinusGroupMembers(t, ss) })
|
||||
t.Run("TeamMembersMinusGroupMembers", func(t *testing.T) { testTeamMembersMinusGroupMembers(t, rctx, 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_Team", func(t *testing.T) { groupTestAdminRoleGroupsForSyncableMemberTeam(t, ss) })
|
||||
t.Run("PermittedSyncableAdmins_Team", func(t *testing.T) { groupTestPermittedSyncableAdminsTeam(t, ss) })
|
||||
t.Run("PermittedSyncableAdmins_Channel", func(t *testing.T) { groupTestPermittedSyncableAdminsChannel(t, ss) })
|
||||
t.Run("UpdateMembersRole_Team", func(t *testing.T) { groupTestpUpdateMembersRoleTeam(t, ss) })
|
||||
t.Run("UpdateMembersRole_Channel", func(t *testing.T) { groupTestpUpdateMembersRoleChannel(t, ss) })
|
||||
t.Run("AdminRoleGroupsForSyncableMember_Channel", func(t *testing.T) { groupTestAdminRoleGroupsForSyncableMemberChannel(t, rctx, ss) })
|
||||
t.Run("AdminRoleGroupsForSyncableMember_Team", func(t *testing.T) { groupTestAdminRoleGroupsForSyncableMemberTeam(t, rctx, ss) })
|
||||
t.Run("PermittedSyncableAdmins_Team", func(t *testing.T) { groupTestPermittedSyncableAdminsTeam(t, rctx, ss) })
|
||||
t.Run("PermittedSyncableAdmins_Channel", func(t *testing.T) { groupTestPermittedSyncableAdminsChannel(t, rctx, ss) })
|
||||
t.Run("UpdateMembersRole_Team", func(t *testing.T) { groupTestpUpdateMembersRoleTeam(t, rctx, 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("GroupTeamCount", func(t *testing.T) { groupTestGroupTeamCount(t, ss) })
|
||||
t.Run("GroupChannelCount", func(t *testing.T) { groupTestGroupChannelCount(t, ss) })
|
||||
t.Run("GroupMemberCount", func(t *testing.T) { groupTestGroupMemberCount(t, ss) })
|
||||
t.Run("DistinctGroupMemberCount", func(t *testing.T) { groupTestDistinctGroupMemberCount(t, ss) })
|
||||
t.Run("GroupCountWithAllowReference", func(t *testing.T) { groupTestGroupCountWithAllowReference(t, ss) })
|
||||
t.Run("GroupCount", func(t *testing.T) { groupTestGroupCount(t, rctx, ss) })
|
||||
t.Run("GroupTeamCount", func(t *testing.T) { groupTestGroupTeamCount(t, rctx, ss) })
|
||||
t.Run("GroupChannelCount", func(t *testing.T) { groupTestGroupChannelCount(t, rctx, ss) })
|
||||
t.Run("GroupMemberCount", func(t *testing.T) { groupTestGroupMemberCount(t, rctx, ss) })
|
||||
t.Run("DistinctGroupMemberCount", func(t *testing.T) { groupTestDistinctGroupMemberCount(t, rctx, ss) })
|
||||
t.Run("GroupCountWithAllowReference", func(t *testing.T) { groupTestGroupCountWithAllowReference(t, rctx, ss) })
|
||||
|
||||
t.Run("GetMember", func(t *testing.T) { groupTestGetMember(t, ss) })
|
||||
t.Run("GetNonMemberUsersPage", func(t *testing.T) { groupTestGetNonMemberUsersPage(t, ss) })
|
||||
t.Run("GetMember", func(t *testing.T) { groupTestGetMember(t, rctx, 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
|
||||
g1 := &model.Group{
|
||||
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")
|
||||
}
|
||||
|
||||
func testGroupCreateWithUserIds(t *testing.T, ss store.Store) {
|
||||
func testGroupCreateWithUserIds(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
// Create user 1
|
||||
u1 := &model.User{
|
||||
Email: MakeEmail(),
|
||||
@@ -363,7 +364,7 @@ func testGroupCreateWithUserIds(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -395,7 +396,7 @@ func testGroupStoreGet(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -431,7 +432,7 @@ func testGroupStoreGetByName(t *testing.T, ss store.Store) {
|
||||
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 group2 *model.Group
|
||||
|
||||
@@ -464,7 +465,7 @@ func testGroupStoreGetByIDs(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -496,7 +497,7 @@ func testGroupStoreGetByRemoteID(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -601,7 +602,7 @@ func testGroupStoreGetByUser(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString("g1-test"),
|
||||
@@ -694,7 +695,7 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -743,7 +744,7 @@ func testGroupStoreDelete(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -796,7 +797,7 @@ func testGroupStoreRestore(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -848,7 +849,7 @@ func testGroupGetMemberUsers(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -922,7 +923,7 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1003,7 +1004,7 @@ func testGroupGetMemberUsersSortedPage(t *testing.T, ss store.Store) {
|
||||
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
|
||||
team := &model.Team{
|
||||
DisplayName: "Name",
|
||||
@@ -1089,7 +1090,7 @@ func testGroupGetMemberUsersInTeam(t *testing.T, ss store.Store) {
|
||||
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
|
||||
team := &model.Team{
|
||||
DisplayName: "Name",
|
||||
@@ -1228,7 +1229,7 @@ func testGroupGetMemberUsersNotInChannel(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1289,7 +1290,7 @@ func testUpsertMember(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1355,7 +1356,7 @@ func testUpsertMembers(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1400,7 +1401,7 @@ func testGroupDeleteMember(t *testing.T, ss store.Store) {
|
||||
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
|
||||
u1 := &model.User{
|
||||
Email: MakeEmail(),
|
||||
@@ -1443,7 +1444,7 @@ func testGroupDeleteMembers(t *testing.T, ss store.Store) {
|
||||
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 groups []*model.Group
|
||||
numberOfGroups := 5
|
||||
@@ -1479,7 +1480,7 @@ func testGroupPermanentDeleteMembersByUser(t *testing.T, ss store.Store) {
|
||||
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
|
||||
_, err := ss.Group().CreateGroupSyncable(model.NewGroupTeam("x", model.NewId(), false))
|
||||
var appErr *model.AppError
|
||||
@@ -1521,7 +1522,7 @@ func testCreateGroupSyncable(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1563,7 +1564,7 @@ func testGetGroupSyncable(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
// 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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1690,7 +1691,7 @@ func testUpdateGroupSyncable(t *testing.T, ss store.Store) {
|
||||
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
|
||||
g1 := &model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1746,7 +1747,7 @@ func testDeleteGroupSyncable(t *testing.T, ss store.Store) {
|
||||
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
|
||||
group, err := ss.Group().Create(&model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -1925,7 +1926,7 @@ func testTeamMembersToAdd(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewString(model.NewId()),
|
||||
DisplayName: "TeamMembersToAdd Test Group",
|
||||
@@ -2015,7 +2016,7 @@ func testTeamMembersToAddSingleTeam(t *testing.T, ss store.Store) {
|
||||
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
|
||||
group, err := ss.Group().Create(&model.Group{
|
||||
Name: model.NewString(model.NewId()),
|
||||
@@ -2192,7 +2193,7 @@ func testChannelMembersToAdd(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewString(model.NewId()),
|
||||
DisplayName: "TeamMembersToAdd Test Group",
|
||||
@@ -2272,8 +2273,8 @@ func testChannelMembersToAddSingleChannel(t *testing.T, ss store.Store) {
|
||||
require.Len(t, channelMembers, 1)
|
||||
}
|
||||
|
||||
func testTeamMembersToRemove(t *testing.T, ss store.Store) {
|
||||
data := pendingMemberRemovalsDataSetup(t, ss)
|
||||
func testTeamMembersToRemove(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
data := pendingMemberRemovalsDataSetup(t, rctx, ss)
|
||||
|
||||
// one result when both users are in the group (for user C)
|
||||
teamMembers, err := ss.Group().TeamMembersToRemove(nil)
|
||||
@@ -2347,7 +2348,7 @@ func testTeamMembersToRemove(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
Username: model.NewId(),
|
||||
@@ -2424,8 +2425,8 @@ func testTeamMembersToRemoveSingleTeam(t *testing.T, ss store.Store) {
|
||||
require.Len(t, teamMembers, 1)
|
||||
}
|
||||
|
||||
func testChannelMembersToRemove(t *testing.T, ss store.Store) {
|
||||
data := pendingMemberRemovalsDataSetup(t, ss)
|
||||
func testChannelMembersToRemove(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
data := pendingMemberRemovalsDataSetup(t, rctx, ss)
|
||||
|
||||
// one result when both users are in the group (for user C)
|
||||
channelMembers, err := ss.Group().ChannelMembersToRemove(nil)
|
||||
@@ -2499,7 +2500,7 @@ func testChannelMembersToRemove(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
Username: model.NewId(),
|
||||
@@ -2579,7 +2580,7 @@ type removalsData struct {
|
||||
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
|
||||
group, err := ss.Group().Create(&model.Group{
|
||||
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
|
||||
channel1 := &model.Channel{
|
||||
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
|
||||
team1 := &model.Team{
|
||||
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
|
||||
team1 := &model.Team{
|
||||
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
|
||||
team1 := &model.Team{
|
||||
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 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 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{
|
||||
Name: model.NewString(model.NewId()),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -4350,7 +4351,7 @@ func groupTestGetMemberCount(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
Username: model.NewId(),
|
||||
@@ -4438,7 +4439,7 @@ func groupTestAdminRoleGroupsForSyncableMemberChannel(t *testing.T, ss store.Sto
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
Username: model.NewId(),
|
||||
@@ -4525,7 +4526,7 @@ func groupTestAdminRoleGroupsForSyncableMemberTeam(t *testing.T, ss store.Store)
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
Username: model.NewId(),
|
||||
@@ -4631,7 +4632,7 @@ func groupTestPermittedSyncableAdminsTeam(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
Username: model.NewId(),
|
||||
@@ -4738,7 +4739,7 @@ func groupTestPermittedSyncableAdminsChannel(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
DisplayName: "Name",
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
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{
|
||||
Name: model.NewString(model.NewId()),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -4980,7 +4981,7 @@ func groupTestGroupCount(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
DisplayName: model.NewId(),
|
||||
Description: model.NewId(),
|
||||
@@ -5028,7 +5029,7 @@ func groupTestGroupTeamCount(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
TeamId: model.NewId(),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -5073,7 +5074,7 @@ func groupTestGroupChannelCount(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Email: fmt.Sprintf("test.%s@localhost", model.NewId()),
|
||||
Username: model.NewId(),
|
||||
@@ -5114,7 +5115,7 @@ func groupTestGroupMemberCount(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewString(model.NewId()),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -5172,7 +5173,7 @@ func groupTestDistinctGroupMemberCount(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -5204,7 +5205,7 @@ func groupTestGroupCountWithAllowReference(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewString(model.NewId()),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -5241,7 +5242,7 @@ func groupTestGetMember(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewString(model.NewId()),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -5283,7 +5284,7 @@ func groupTestGetNonMemberUsersPage(t *testing.T, ss store.Store) {
|
||||
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
|
||||
customGroupCountBefore, err := ss.Group().DistinctGroupMemberCountForSource(model.GroupSourceCustom)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -11,33 +11,30 @@ import (
|
||||
|
||||
"github.com/lib/pq"
|
||||
"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/store"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestJobStore(t *testing.T, ss store.Store) {
|
||||
t.Run("JobSaveGet", func(t *testing.T) { testJobSaveGet(t, ss) })
|
||||
t.Run("JobSaveOnce", func(t *testing.T) { testJobSaveOnce(t, ss) })
|
||||
t.Run("JobGetAllByType", func(t *testing.T) { testJobGetAllByType(t, ss) })
|
||||
t.Run("JobGetAllByTypeAndStatus", func(t *testing.T) { testJobGetAllByTypeAndStatus(t, ss) })
|
||||
t.Run("JobGetAllByTypePage", func(t *testing.T) { testJobGetAllByTypePage(t, ss) })
|
||||
t.Run("JobGetAllByTypesPage", func(t *testing.T) { testJobGetAllByTypesPage(t, ss) })
|
||||
t.Run("JobGetAllByStatus", func(t *testing.T) { testJobGetAllByStatus(t, ss) })
|
||||
t.Run("GetNewestJobByStatusAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusAndType(t, ss) })
|
||||
t.Run("GetNewestJobByStatusesAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusesAndType(t, ss) })
|
||||
t.Run("GetCountByStatusAndType", func(t *testing.T) { testJobStoreGetCountByStatusAndType(t, ss) })
|
||||
t.Run("JobUpdateOptimistically", func(t *testing.T) { testJobUpdateOptimistically(t, ss) })
|
||||
t.Run("JobUpdateStatusUpdateStatusOptimistically", func(t *testing.T) { testJobUpdateStatusUpdateStatusOptimistically(t, ss) })
|
||||
t.Run("JobDelete", func(t *testing.T) { testJobDelete(t, ss) })
|
||||
t.Run("JobCleanup", func(t *testing.T) { testJobCleanup(t, ss) })
|
||||
func TestJobStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("JobSaveGet", func(t *testing.T) { testJobSaveGet(t, rctx, ss) })
|
||||
t.Run("JobSaveOnce", func(t *testing.T) { testJobSaveOnce(t, rctx, ss) })
|
||||
t.Run("JobGetAllByType", func(t *testing.T) { testJobGetAllByType(t, rctx, ss) })
|
||||
t.Run("JobGetAllByTypeAndStatus", func(t *testing.T) { testJobGetAllByTypeAndStatus(t, rctx, ss) })
|
||||
t.Run("JobGetAllByTypePage", func(t *testing.T) { testJobGetAllByTypePage(t, rctx, ss) })
|
||||
t.Run("JobGetAllByTypesPage", func(t *testing.T) { testJobGetAllByTypesPage(t, rctx, ss) })
|
||||
t.Run("JobGetAllByStatus", func(t *testing.T) { testJobGetAllByStatus(t, rctx, ss) })
|
||||
t.Run("GetNewestJobByStatusAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusAndType(t, rctx, ss) })
|
||||
t.Run("GetNewestJobByStatusesAndType", func(t *testing.T) { testJobStoreGetNewestJobByStatusesAndType(t, rctx, ss) })
|
||||
t.Run("GetCountByStatusAndType", func(t *testing.T) { testJobStoreGetCountByStatusAndType(t, rctx, ss) })
|
||||
t.Run("JobUpdateOptimistically", func(t *testing.T) { testJobUpdateOptimistically(t, rctx, ss) })
|
||||
t.Run("JobUpdateStatusUpdateStatusOptimistically", func(t *testing.T) { testJobUpdateStatusUpdateStatusOptimistically(t, rctx, ss) })
|
||||
t.Run("JobDelete", func(t *testing.T) { testJobDelete(t, rctx, ss) })
|
||||
t.Run("JobCleanup", func(t *testing.T) { testJobCleanup(t, rctx, ss) })
|
||||
}
|
||||
|
||||
func testJobSaveGet(t *testing.T, ss store.Store) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobSaveGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
job := &model.Job{
|
||||
Id: model.NewId(),
|
||||
Type: model.NewId(),
|
||||
@@ -54,13 +51,13 @@ func testJobSaveGet(t *testing.T, ss store.Store) {
|
||||
|
||||
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.Equal(t, job.Id, received.Id, "received incorrect job after save")
|
||||
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
|
||||
|
||||
ids := make([]string, 2)
|
||||
@@ -105,9 +102,7 @@ func testJobSaveOnce(t *testing.T, ss store.Store) {
|
||||
}
|
||||
}
|
||||
|
||||
func testJobGetAllByType(t *testing.T, ss store.Store) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobGetAllByType(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
jobType := model.NewId()
|
||||
|
||||
jobs := []*model.Job{
|
||||
@@ -131,15 +126,13 @@ func testJobGetAllByType(t *testing.T, ss store.Store) {
|
||||
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.Len(t, received, 2)
|
||||
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) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobGetAllByTypeAndStatus(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
jobType := model.NewId()
|
||||
|
||||
jobs := []*model.Job{
|
||||
@@ -161,15 +154,13 @@ func testJobGetAllByTypeAndStatus(t *testing.T, ss store.Store) {
|
||||
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.Len(t, received, 2)
|
||||
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) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobGetAllByTypePage(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
jobType := model.NewId()
|
||||
|
||||
jobs := []*model.Job{
|
||||
@@ -201,21 +192,19 @@ func testJobGetAllByTypePage(t *testing.T, ss store.Store) {
|
||||
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.Len(t, received, 2)
|
||||
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")
|
||||
|
||||
received, err = ss.Job().GetAllByTypePage(ctx, jobType, 2, 2)
|
||||
received, err = ss.Job().GetAllByTypePage(rctx, jobType, 2, 2)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, received, 1)
|
||||
require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last")
|
||||
}
|
||||
|
||||
func testJobGetAllByTypesPage(t *testing.T, ss store.Store) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobGetAllByTypesPage(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
jobType := model.NewId()
|
||||
jobType2 := model.NewId()
|
||||
|
||||
@@ -250,7 +239,7 @@ func testJobGetAllByTypesPage(t *testing.T, ss store.Store) {
|
||||
|
||||
// test return all
|
||||
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.Len(t, received, 3)
|
||||
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
|
||||
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.Len(t, received, 2)
|
||||
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")
|
||||
|
||||
received, err = ss.Job().GetAllByTypesPage(ctx, jobTypes, 2, 2)
|
||||
received, err = ss.Job().GetAllByTypesPage(rctx, jobTypes, 2, 2)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, received, 1)
|
||||
require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last")
|
||||
}
|
||||
|
||||
func testJobGetAllByStatus(t *testing.T, ss store.Store) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobGetAllByStatus(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
jobType := model.NewId()
|
||||
status := model.NewId()
|
||||
|
||||
@@ -312,7 +299,7 @@ func testJobGetAllByStatus(t *testing.T, ss store.Store) {
|
||||
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.Len(t, received, 3)
|
||||
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")
|
||||
}
|
||||
|
||||
func testJobStoreGetNewestJobByStatusAndType(t *testing.T, ss store.Store) {
|
||||
func testJobStoreGetNewestJobByStatusAndType(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
jobType1 := model.NewId()
|
||||
jobType2 := model.NewId()
|
||||
status1 := model.NewId()
|
||||
@@ -371,7 +358,7 @@ func testJobStoreGetNewestJobByStatusAndType(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
jobType2 := model.NewId()
|
||||
status1 := model.NewId()
|
||||
@@ -435,7 +422,7 @@ func testJobStoreGetNewestJobByStatusesAndType(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
jobType2 := model.NewId()
|
||||
status1 := model.NewId()
|
||||
@@ -491,9 +478,7 @@ func testJobStoreGetCountByStatusAndType(t *testing.T, ss store.Store) {
|
||||
assert.EqualValues(t, 1, count)
|
||||
}
|
||||
|
||||
func testJobUpdateOptimistically(t *testing.T, ss store.Store) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobUpdateOptimistically(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
job := &model.Job{
|
||||
Id: model.NewId(),
|
||||
Type: model.JobTypeDataRetention,
|
||||
@@ -521,7 +506,7 @@ func testJobUpdateOptimistically(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.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"])
|
||||
}
|
||||
|
||||
func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
job := &model.Job{
|
||||
Id: model.NewId(),
|
||||
Type: model.JobTypeDataRetention,
|
||||
@@ -563,7 +547,7 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
|
||||
require.NoError(t, err)
|
||||
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.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")
|
||||
|
||||
var startAtSet int64
|
||||
received, err = ss.Job().Get(ctx, job.Id)
|
||||
received, err = ss.Job().Get(rctx, job.Id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, model.JobStatusInProgress, received.Status)
|
||||
require.NotEqual(t, 0, received.StartAt)
|
||||
@@ -590,14 +574,14 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
|
||||
require.NoError(t, err)
|
||||
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.Equal(t, model.JobStatusSuccess, received.Status)
|
||||
require.Equal(t, startAtSet, received.StartAt)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -605,9 +589,7 @@ func testJobDelete(t *testing.T, ss store.Store) {
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func testJobCleanup(t *testing.T, ss store.Store) {
|
||||
ctx := request.EmptyContext(mlog.CreateConsoleTestLogger(t))
|
||||
|
||||
func testJobCleanup(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
now := model.GetMillis()
|
||||
ids := make([]string, 0, 10)
|
||||
for i := 0; i < 10; i++ {
|
||||
@@ -621,7 +603,7 @@ func testJobCleanup(t *testing.T, ss store.Store) {
|
||||
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)
|
||||
assert.Len(t, jobs, 10)
|
||||
|
||||
@@ -629,7 +611,7 @@ func testJobCleanup(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
assert.Len(t, jobs, 10)
|
||||
|
||||
@@ -642,7 +624,7 @@ func testJobCleanup(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// Should clean up now
|
||||
jobs, err = ss.Job().GetAllByStatus(ctx, model.JobStatusSuccess)
|
||||
jobs, err = ss.Job().GetAllByStatus(rctx, model.JobStatusSuccess)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, jobs, 0)
|
||||
}
|
||||
|
||||
@@ -13,12 +13,12 @@ import (
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestLicenseStore(t *testing.T, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testLicenseStoreSave(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testLicenseStoreGet(t, ss) })
|
||||
func TestLicenseStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testLicenseStoreSave(t, rctx, 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.Id = model.NewId()
|
||||
l1.Bytes = "junk"
|
||||
@@ -35,9 +35,7 @@ func testLicenseStoreSave(t *testing.T, ss store.Store) {
|
||||
require.Error(t, err, "should fail on invalid license")
|
||||
}
|
||||
|
||||
func testLicenseStoreGet(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testLicenseStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
l1 := model.LicenseRecord{}
|
||||
l1.Id = model.NewId()
|
||||
l1.Bytes = "junk"
|
||||
@@ -45,11 +43,11 @@ func testLicenseStoreGet(t *testing.T, ss store.Store) {
|
||||
err := ss.License().Save(&l1)
|
||||
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.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")
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
@@ -25,13 +26,13 @@ func getNextLinkMetadataTimestamp() int64 {
|
||||
return linkMetadataTimestamp
|
||||
}
|
||||
|
||||
func TestLinkMetadataStore(t *testing.T, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testLinkMetadataStoreSave(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testLinkMetadataStoreGet(t, ss) })
|
||||
t.Run("Types", func(t *testing.T) { testLinkMetadataStoreTypes(t, ss) })
|
||||
func TestLinkMetadataStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testLinkMetadataStoreSave(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testLinkMetadataStoreGet(t, rctx, 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) {
|
||||
metadata := &model.LinkMetadata{
|
||||
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) {
|
||||
metadata := &model.LinkMetadata{
|
||||
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) {
|
||||
metadata := &model.LinkMetadata{
|
||||
URL: "http://example.com",
|
||||
|
||||
@@ -10,20 +10,21 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
const PluginIdJenkins = "jenkins"
|
||||
|
||||
func TestNotifyAdminStore(t *testing.T, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testNotifyAdminStoreSave(t, ss) })
|
||||
t.Run("testGetDataByUserIdAndFeature", func(t *testing.T) { testGetDataByUserIdAndFeature(t, ss) })
|
||||
t.Run("testGet", func(t *testing.T) { testGet(t, ss) })
|
||||
t.Run("testDeleteBefore", func(t *testing.T) { testDeleteBefore(t, ss) })
|
||||
t.Run("testUpdate", func(t *testing.T) { testUpdate(t, ss) })
|
||||
func TestNotifyAdminStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("Save", func(t *testing.T) { testNotifyAdminStoreSave(t, rctx, ss) })
|
||||
t.Run("testGetDataByUserIdAndFeature", func(t *testing.T) { testGetDataByUserIdAndFeature(t, rctx, ss) })
|
||||
t.Run("testGet", func(t *testing.T) { testGet(t, rctx, ss) })
|
||||
t.Run("testDeleteBefore", func(t *testing.T) { testDeleteBefore(t, rctx, 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())
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -31,7 +32,7 @@ func tearDown(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
UserId: model.NewId(),
|
||||
RequiredPlan: model.LicenseShortSkuProfessional,
|
||||
@@ -78,10 +79,10 @@ func testNotifyAdminStoreSave(t *testing.T, ss store.Store) {
|
||||
_, err = ss.NotifyAdmin().Save(d6)
|
||||
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()
|
||||
d1 := &model.NotifyAdminData{
|
||||
UserId: userId1,
|
||||
@@ -118,10 +119,10 @@ func testGet(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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()
|
||||
d1 := &model.NotifyAdminData{
|
||||
UserId: userId1,
|
||||
@@ -147,10 +148,10 @@ func testGetDataByUserIdAndFeature(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, len(user1Request), 1)
|
||||
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()
|
||||
d1 := &model.NotifyAdminData{
|
||||
UserId: userId1,
|
||||
@@ -169,10 +170,10 @@ func testUpdate(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, len(userRequest), 1)
|
||||
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()
|
||||
d1 := &model.NotifyAdminData{
|
||||
UserId: userId1,
|
||||
|
||||
@@ -14,25 +14,25 @@ import (
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestOAuthStore(t *testing.T, ss store.Store) {
|
||||
t.Run("SaveApp", func(t *testing.T) { testOAuthStoreSaveApp(t, ss) })
|
||||
t.Run("GetApp", func(t *testing.T) { testOAuthStoreGetApp(t, ss) })
|
||||
t.Run("UpdateApp", func(t *testing.T) { testOAuthStoreUpdateApp(t, ss) })
|
||||
t.Run("SaveAccessData", func(t *testing.T) { testOAuthStoreSaveAccessData(t, ss) })
|
||||
t.Run("OAuthUpdateAccessData", func(t *testing.T) { testOAuthUpdateAccessData(t, ss) })
|
||||
t.Run("GetAccessData", func(t *testing.T) { testOAuthStoreGetAccessData(t, ss) })
|
||||
t.Run("RemoveAccessData", func(t *testing.T) { testOAuthStoreRemoveAccessData(t, ss) })
|
||||
t.Run("RemoveAllAccessData", func(t *testing.T) { testOAuthStoreRemoveAllAccessData(t, ss) })
|
||||
t.Run("SaveAuthData", func(t *testing.T) { testOAuthStoreSaveAuthData(t, ss) })
|
||||
t.Run("GetAuthData", func(t *testing.T) { testOAuthStoreGetAuthData(t, ss) })
|
||||
t.Run("RemoveAuthData", func(t *testing.T) { testOAuthStoreRemoveAuthData(t, ss) })
|
||||
t.Run("RemoveAuthDataByUser", func(t *testing.T) { testOAuthStoreRemoveAuthDataByUser(t, ss) })
|
||||
t.Run("OAuthGetAuthorizedApps", func(t *testing.T) { testOAuthGetAuthorizedApps(t, ss) })
|
||||
t.Run("OAuthGetAccessDataByUserForApp", func(t *testing.T) { testOAuthGetAccessDataByUserForApp(t, ss) })
|
||||
t.Run("DeleteApp", func(t *testing.T) { testOAuthStoreDeleteApp(t, ss) })
|
||||
func TestOAuthStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("SaveApp", func(t *testing.T) { testOAuthStoreSaveApp(t, rctx, ss) })
|
||||
t.Run("GetApp", func(t *testing.T) { testOAuthStoreGetApp(t, rctx, ss) })
|
||||
t.Run("UpdateApp", func(t *testing.T) { testOAuthStoreUpdateApp(t, rctx, ss) })
|
||||
t.Run("SaveAccessData", func(t *testing.T) { testOAuthStoreSaveAccessData(t, rctx, ss) })
|
||||
t.Run("OAuthUpdateAccessData", func(t *testing.T) { testOAuthUpdateAccessData(t, rctx, ss) })
|
||||
t.Run("GetAccessData", func(t *testing.T) { testOAuthStoreGetAccessData(t, rctx, ss) })
|
||||
t.Run("RemoveAccessData", func(t *testing.T) { testOAuthStoreRemoveAccessData(t, rctx, ss) })
|
||||
t.Run("RemoveAllAccessData", func(t *testing.T) { testOAuthStoreRemoveAllAccessData(t, rctx, ss) })
|
||||
t.Run("SaveAuthData", func(t *testing.T) { testOAuthStoreSaveAuthData(t, rctx, ss) })
|
||||
t.Run("GetAuthData", func(t *testing.T) { testOAuthStoreGetAuthData(t, rctx, ss) })
|
||||
t.Run("RemoveAuthData", func(t *testing.T) { testOAuthStoreRemoveAuthData(t, rctx, ss) })
|
||||
t.Run("RemoveAuthDataByUser", func(t *testing.T) { testOAuthStoreRemoveAuthDataByUser(t, rctx, ss) })
|
||||
t.Run("OAuthGetAuthorizedApps", func(t *testing.T) { testOAuthGetAuthorizedApps(t, rctx, ss) })
|
||||
t.Run("OAuthGetAccessDataByUserForApp", func(t *testing.T) { testOAuthGetAccessDataByUserForApp(t, rctx, 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.CreatorId = model.NewId()
|
||||
a1.CallbackUrls = []string{"https://nowhere.com"}
|
||||
@@ -60,7 +60,7 @@ func testOAuthStoreSaveApp(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = model.NewId()
|
||||
a1.Name = "TestApp" + model.NewId()
|
||||
@@ -88,7 +88,7 @@ func testOAuthStoreGetApp(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = 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")
|
||||
}
|
||||
|
||||
func testOAuthStoreSaveAccessData(t *testing.T, ss store.Store) {
|
||||
func testOAuthStoreSaveAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.AccessData{}
|
||||
a1.ClientId = model.NewId()
|
||||
a1.UserId = model.NewId()
|
||||
@@ -140,7 +140,7 @@ func testOAuthStoreSaveAccessData(t *testing.T, ss store.Store) {
|
||||
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.ClientId = 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")
|
||||
}
|
||||
|
||||
func testOAuthStoreGetAccessData(t *testing.T, ss store.Store) {
|
||||
func testOAuthStoreGetAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.AccessData{}
|
||||
a1.ClientId = 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")
|
||||
}
|
||||
|
||||
func testOAuthStoreRemoveAccessData(t *testing.T, ss store.Store) {
|
||||
func testOAuthStoreRemoveAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.AccessData{}
|
||||
a1.ClientId = 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")
|
||||
}
|
||||
|
||||
func testOAuthStoreRemoveAllAccessData(t *testing.T, ss store.Store) {
|
||||
func testOAuthStoreRemoveAllAccessData(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.AccessData{}
|
||||
a1.ClientId = 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")
|
||||
}
|
||||
|
||||
func testOAuthStoreSaveAuthData(t *testing.T, ss store.Store) {
|
||||
func testOAuthStoreSaveAuthData(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.AuthData{}
|
||||
a1.ClientId = model.NewId()
|
||||
a1.UserId = model.NewId()
|
||||
@@ -248,7 +248,7 @@ func testOAuthStoreSaveAuthData(t *testing.T, ss store.Store) {
|
||||
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.ClientId = model.NewId()
|
||||
a1.UserId = model.NewId()
|
||||
@@ -261,7 +261,7 @@ func testOAuthStoreGetAuthData(t *testing.T, ss store.Store) {
|
||||
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.ClientId = 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")
|
||||
}
|
||||
|
||||
func testOAuthStoreRemoveAuthDataByUser(t *testing.T, ss store.Store) {
|
||||
func testOAuthStoreRemoveAuthDataByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.AuthData{}
|
||||
a1.ClientId = model.NewId()
|
||||
a1.UserId = model.NewId()
|
||||
@@ -290,7 +290,7 @@ func testOAuthStoreRemoveAuthDataByUser(t *testing.T, ss store.Store) {
|
||||
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.CreatorId = 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")
|
||||
}
|
||||
|
||||
func testOAuthGetAccessDataByUserForApp(t *testing.T, ss store.Store) {
|
||||
func testOAuthGetAccessDataByUserForApp(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.OAuthApp{}
|
||||
a1.CreatorId = 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")
|
||||
}
|
||||
|
||||
func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testOAuthStoreDeleteApp(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
a1 := model.OAuthApp{}
|
||||
a1.CreatorId = model.NewId()
|
||||
a1.Name = "TestApp" + model.NewId()
|
||||
@@ -376,7 +374,7 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
|
||||
s1.Token = model.NewId()
|
||||
s1.IsOAuth = true
|
||||
|
||||
s1, nErr := ss.Session().Save(c, s1)
|
||||
s1, nErr := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
ad1 := model.AccessData{}
|
||||
@@ -392,7 +390,7 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
|
||||
err = ss.OAuth().DeleteApp(a1.Id)
|
||||
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")
|
||||
|
||||
_, err = ss.OAuth().GetAccessData(s1.Token)
|
||||
|
||||
@@ -11,22 +11,23 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestPluginStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveOrUpdate", func(t *testing.T) { testPluginSaveOrUpdate(t, ss) })
|
||||
t.Run("CompareAndSet", func(t *testing.T) { testPluginCompareAndSet(t, ss) })
|
||||
t.Run("CompareAndDelete", func(t *testing.T) { testPluginCompareAndDelete(t, ss) })
|
||||
t.Run("SetWithOptions", func(t *testing.T) { testPluginSetWithOptions(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testPluginGet(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testPluginDelete(t, ss) })
|
||||
t.Run("DeleteAllForPlugin", func(t *testing.T) { testPluginDeleteAllForPlugin(t, ss) })
|
||||
t.Run("DeleteAllExpired", func(t *testing.T) { testPluginDeleteAllExpired(t, ss) })
|
||||
t.Run("List", func(t *testing.T) { testPluginList(t, ss) })
|
||||
func TestPluginStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveOrUpdate", func(t *testing.T) { testPluginSaveOrUpdate(t, rctx, ss) })
|
||||
t.Run("CompareAndSet", func(t *testing.T) { testPluginCompareAndSet(t, rctx, ss) })
|
||||
t.Run("CompareAndDelete", func(t *testing.T) { testPluginCompareAndDelete(t, rctx, ss) })
|
||||
t.Run("SetWithOptions", func(t *testing.T) { testPluginSetWithOptions(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testPluginGet(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testPluginDelete(t, rctx, ss) })
|
||||
t.Run("DeleteAllForPlugin", func(t *testing.T) { testPluginDeleteAllForPlugin(t, rctx, ss) })
|
||||
t.Run("DeleteAllExpired", func(t *testing.T) { testPluginDeleteAllExpired(t, rctx, 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()
|
||||
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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
doTestPluginSaveOrUpdate(t, ss, func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error) {
|
||||
func testPluginSaveOrUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
doTestPluginSaveOrUpdate(t, rctx, ss, func(kv *model.PluginKeyValue) (*model.PluginKeyValue, error) {
|
||||
return ss.Plugin().SaveOrUpdate(kv)
|
||||
})
|
||||
}
|
||||
|
||||
// doTestPluginCompareAndSet exercises the CompareAndSet functionality, but abstracts the actual
|
||||
// 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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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.
|
||||
for description, setup := range map[string]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{
|
||||
PluginId: pluginId,
|
||||
@@ -322,7 +323,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
|
||||
return kv, tearDown
|
||||
},
|
||||
"expired key": func(t *testing.T) (*model.PluginKeyValue, func()) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
|
||||
expiredKV := &model.PluginKeyValue{
|
||||
PluginId: pluginId,
|
||||
@@ -398,7 +399,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
|
||||
|
||||
t.Run("existing key", func(t *testing.T) {
|
||||
setup := func(t *testing.T) (*model.PluginKeyValue, func()) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
|
||||
existingKV := &model.PluginKeyValue{
|
||||
PluginId: pluginId,
|
||||
@@ -524,15 +525,15 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
|
||||
})
|
||||
}
|
||||
|
||||
func testPluginCompareAndSet(t *testing.T, ss store.Store) {
|
||||
doTestPluginCompareAndSet(t, ss, func(kv *model.PluginKeyValue, oldValue []byte) (bool, error) {
|
||||
func testPluginCompareAndSet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
doTestPluginCompareAndSet(t, rctx, ss, func(kv *model.PluginKeyValue, oldValue []byte) (bool, error) {
|
||||
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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
pluginId := ""
|
||||
@@ -682,7 +683,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
|
||||
})
|
||||
|
||||
t.Run("invalid kv", func(t *testing.T) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
pluginId := ""
|
||||
@@ -699,7 +700,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
|
||||
})
|
||||
|
||||
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()
|
||||
options := model.PluginKVSetOptions{
|
||||
Atomic: true,
|
||||
@@ -715,7 +716,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
|
||||
})
|
||||
|
||||
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()
|
||||
options := model.PluginKVSetOptions{
|
||||
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) {
|
||||
pluginId := 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) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
key := model.NewId()
|
||||
@@ -918,7 +919,7 @@ func testPluginDelete(t *testing.T, ss store.Store) {
|
||||
|
||||
for _, testCase := range testCases {
|
||||
t.Run(testCase.description, func(t *testing.T) {
|
||||
pluginId, tearDown := setupKVs(t, ss)
|
||||
pluginId, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
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()) {
|
||||
pluginId := 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) {
|
||||
err := ss.Plugin().DeleteAllExpired()
|
||||
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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
// 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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
// 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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
// 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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
// 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) {
|
||||
_, tearDown := setupKVs(t, ss)
|
||||
_, tearDown := setupKVs(t, rctx, ss)
|
||||
defer tearDown()
|
||||
|
||||
// Ignore the pluginId setup by setupKVs
|
||||
|
||||
@@ -9,16 +9,17 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestPostAcknowledgementsStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("Save", func(t *testing.T) { testPostAcknowledgementsStoreSave(t, ss) })
|
||||
t.Run("GetForPost", func(t *testing.T) { testPostAcknowledgementsStoreGetForPost(t, ss) })
|
||||
t.Run("GetForPosts", func(t *testing.T) { testPostAcknowledgementsStoreGetForPosts(t, ss) })
|
||||
func TestPostAcknowledgementsStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("Save", func(t *testing.T) { testPostAcknowledgementsStoreSave(t, rctx, ss) })
|
||||
t.Run("GetForPost", func(t *testing.T) { testPostAcknowledgementsStoreGetForPost(t, rctx, 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()
|
||||
|
||||
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()
|
||||
userId2 := 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()
|
||||
userId2 := model.NewId()
|
||||
userId3 := model.NewId()
|
||||
|
||||
@@ -8,18 +8,19 @@ import (
|
||||
"time"
|
||||
|
||||
"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/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestPostPersistentNotificationStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("Get", func(t *testing.T) { testPostPersistentNotificationStoreGet(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testPostPersistentNotificationStoreDelete(t, ss) })
|
||||
t.Run("UpdateLastSentAt", func(t *testing.T) { testPostPersistentNotificationStoreUpdateLastSentAt(t, ss) })
|
||||
func TestPostPersistentNotificationStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("Get", func(t *testing.T) { testPostPersistentNotificationStoreGet(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testPostPersistentNotificationStoreDelete(t, rctx, 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.ChannelId = 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.ChannelId = 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)
|
||||
}
|
||||
|
||||
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) {
|
||||
p1 := model.Post{}
|
||||
p1.ChannelId = model.NewId()
|
||||
|
||||
@@ -12,14 +12,15 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestPostPriorityStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("GetForPost", func(t *testing.T) { testPostPriorityStoreGetForPost(t, ss) })
|
||||
func TestPostPriorityStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
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) {
|
||||
p1 := model.Post{}
|
||||
p1.ChannelId = model.NewId()
|
||||
|
||||
@@ -16,56 +16,57 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"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/utils"
|
||||
)
|
||||
|
||||
func TestPostStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveMultiple", func(t *testing.T) { testPostStoreSaveMultiple(t, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testPostStoreSave(t, ss) })
|
||||
t.Run("SaveAndUpdateChannelMsgCounts", func(t *testing.T) { testPostStoreSaveChannelMsgCounts(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testPostStoreGet(t, ss) })
|
||||
t.Run("GetSingle", func(t *testing.T) { testPostStoreGetSingle(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testPostStoreUpdate(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testPostStoreDelete(t, ss) })
|
||||
t.Run("PermDelete1Level", func(t *testing.T) { testPostStorePermDelete1Level(t, ss) })
|
||||
t.Run("PermDelete1Level2", func(t *testing.T) { testPostStorePermDelete1Level2(t, ss) })
|
||||
t.Run("GetWithChildren", func(t *testing.T) { testPostStoreGetWithChildren(t, ss) })
|
||||
t.Run("GetPostsWithDetails", func(t *testing.T) { testPostStoreGetPostsWithDetails(t, ss) })
|
||||
t.Run("GetPostsBeforeAfter", func(t *testing.T) { testPostStoreGetPostsBeforeAfter(t, ss) })
|
||||
t.Run("GetPostsSince", func(t *testing.T) { testPostStoreGetPostsSince(t, ss) })
|
||||
t.Run("GetPosts", func(t *testing.T) { testPostStoreGetPosts(t, ss) })
|
||||
t.Run("GetPostBeforeAfter", func(t *testing.T) { testPostStoreGetPostBeforeAfter(t, ss) })
|
||||
t.Run("UserCountsWithPostsByDay", func(t *testing.T) { testUserCountsWithPostsByDay(t, ss) })
|
||||
t.Run("PostCountsByDuration", func(t *testing.T) { testPostCountsByDay(t, ss) })
|
||||
t.Run("PostCounts", func(t *testing.T) { testPostCounts(t, ss) })
|
||||
t.Run("GetFlaggedPostsForTeam", func(t *testing.T) { testPostStoreGetFlaggedPostsForTeam(t, ss, s) })
|
||||
t.Run("GetFlaggedPosts", func(t *testing.T) { testPostStoreGetFlaggedPosts(t, ss) })
|
||||
t.Run("GetFlaggedPostsForChannel", func(t *testing.T) { testPostStoreGetFlaggedPostsForChannel(t, ss) })
|
||||
t.Run("GetPostsCreatedAt", func(t *testing.T) { testPostStoreGetPostsCreatedAt(t, ss) })
|
||||
t.Run("Overwrite", func(t *testing.T) { testPostStoreOverwrite(t, ss) })
|
||||
t.Run("OverwriteMultiple", func(t *testing.T) { testPostStoreOverwriteMultiple(t, ss) })
|
||||
t.Run("GetPostsByIds", func(t *testing.T) { testPostStoreGetPostsByIds(t, ss) })
|
||||
t.Run("GetPostsBatchForIndexing", func(t *testing.T) { testPostStoreGetPostsBatchForIndexing(t, ss) })
|
||||
t.Run("PermanentDeleteBatch", func(t *testing.T) { testPostStorePermanentDeleteBatch(t, ss) })
|
||||
t.Run("GetOldest", func(t *testing.T) { testPostStoreGetOldest(t, ss) })
|
||||
t.Run("TestGetMaxPostSize", func(t *testing.T) { testGetMaxPostSize(t, ss) })
|
||||
t.Run("GetParentsForExportAfter", func(t *testing.T) { testPostStoreGetParentsForExportAfter(t, ss) })
|
||||
t.Run("GetRepliesForExport", func(t *testing.T) { testPostStoreGetRepliesForExport(t, ss) })
|
||||
t.Run("GetDirectPostParentsForExportAfter", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfter(t, ss, s) })
|
||||
t.Run("GetDirectPostParentsForExportAfterDeleted", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterDeleted(t, ss, s) })
|
||||
t.Run("GetDirectPostParentsForExportAfterBatched", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterBatched(t, ss, s) })
|
||||
t.Run("GetForThread", func(t *testing.T) { testPostStoreGetForThread(t, ss) })
|
||||
t.Run("HasAutoResponsePostByUserSince", func(t *testing.T) { testHasAutoResponsePostByUserSince(t, ss) })
|
||||
t.Run("GetPostsSinceForSync", func(t *testing.T) { testGetPostsSinceForSync(t, ss, s) })
|
||||
t.Run("SetPostReminder", func(t *testing.T) { testSetPostReminder(t, ss, s) })
|
||||
t.Run("GetPostReminders", func(t *testing.T) { testGetPostReminders(t, ss, s) })
|
||||
t.Run("GetPostReminderMetadata", func(t *testing.T) { testGetPostReminderMetadata(t, ss, s) })
|
||||
t.Run("GetNthRecentPostTime", func(t *testing.T) { testGetNthRecentPostTime(t, ss) })
|
||||
t.Run("GetEditHistoryForPost", func(t *testing.T) { testGetEditHistoryForPost(t, ss) })
|
||||
func TestPostStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveMultiple", func(t *testing.T) { testPostStoreSaveMultiple(t, rctx, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testPostStoreSave(t, rctx, ss) })
|
||||
t.Run("SaveAndUpdateChannelMsgCounts", func(t *testing.T) { testPostStoreSaveChannelMsgCounts(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testPostStoreGet(t, rctx, ss) })
|
||||
t.Run("GetSingle", func(t *testing.T) { testPostStoreGetSingle(t, rctx, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testPostStoreUpdate(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testPostStoreDelete(t, rctx, ss) })
|
||||
t.Run("PermDelete1Level", func(t *testing.T) { testPostStorePermDelete1Level(t, rctx, ss) })
|
||||
t.Run("PermDelete1Level2", func(t *testing.T) { testPostStorePermDelete1Level2(t, rctx, ss) })
|
||||
t.Run("GetWithChildren", func(t *testing.T) { testPostStoreGetWithChildren(t, rctx, ss) })
|
||||
t.Run("GetPostsWithDetails", func(t *testing.T) { testPostStoreGetPostsWithDetails(t, rctx, ss) })
|
||||
t.Run("GetPostsBeforeAfter", func(t *testing.T) { testPostStoreGetPostsBeforeAfter(t, rctx, ss) })
|
||||
t.Run("GetPostsSince", func(t *testing.T) { testPostStoreGetPostsSince(t, rctx, ss) })
|
||||
t.Run("GetPosts", func(t *testing.T) { testPostStoreGetPosts(t, rctx, ss) })
|
||||
t.Run("GetPostBeforeAfter", func(t *testing.T) { testPostStoreGetPostBeforeAfter(t, rctx, ss) })
|
||||
t.Run("UserCountsWithPostsByDay", func(t *testing.T) { testUserCountsWithPostsByDay(t, rctx, ss) })
|
||||
t.Run("PostCountsByDuration", func(t *testing.T) { testPostCountsByDay(t, rctx, ss) })
|
||||
t.Run("PostCounts", func(t *testing.T) { testPostCounts(t, rctx, ss) })
|
||||
t.Run("GetFlaggedPostsForTeam", func(t *testing.T) { testPostStoreGetFlaggedPostsForTeam(t, rctx, ss, s) })
|
||||
t.Run("GetFlaggedPosts", func(t *testing.T) { testPostStoreGetFlaggedPosts(t, rctx, ss) })
|
||||
t.Run("GetFlaggedPostsForChannel", func(t *testing.T) { testPostStoreGetFlaggedPostsForChannel(t, rctx, ss) })
|
||||
t.Run("GetPostsCreatedAt", func(t *testing.T) { testPostStoreGetPostsCreatedAt(t, rctx, ss) })
|
||||
t.Run("Overwrite", func(t *testing.T) { testPostStoreOverwrite(t, rctx, ss) })
|
||||
t.Run("OverwriteMultiple", func(t *testing.T) { testPostStoreOverwriteMultiple(t, rctx, ss) })
|
||||
t.Run("GetPostsByIds", func(t *testing.T) { testPostStoreGetPostsByIds(t, rctx, ss) })
|
||||
t.Run("GetPostsBatchForIndexing", func(t *testing.T) { testPostStoreGetPostsBatchForIndexing(t, rctx, ss) })
|
||||
t.Run("PermanentDeleteBatch", func(t *testing.T) { testPostStorePermanentDeleteBatch(t, rctx, ss) })
|
||||
t.Run("GetOldest", func(t *testing.T) { testPostStoreGetOldest(t, rctx, ss) })
|
||||
t.Run("TestGetMaxPostSize", func(t *testing.T) { testGetMaxPostSize(t, rctx, ss) })
|
||||
t.Run("GetParentsForExportAfter", func(t *testing.T) { testPostStoreGetParentsForExportAfter(t, rctx, ss) })
|
||||
t.Run("GetRepliesForExport", func(t *testing.T) { testPostStoreGetRepliesForExport(t, rctx, ss) })
|
||||
t.Run("GetDirectPostParentsForExportAfter", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfter(t, rctx, ss, s) })
|
||||
t.Run("GetDirectPostParentsForExportAfterDeleted", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterDeleted(t, rctx, ss, s) })
|
||||
t.Run("GetDirectPostParentsForExportAfterBatched", func(t *testing.T) { testPostStoreGetDirectPostParentsForExportAfterBatched(t, rctx, ss, s) })
|
||||
t.Run("GetForThread", func(t *testing.T) { testPostStoreGetForThread(t, rctx, ss) })
|
||||
t.Run("HasAutoResponsePostByUserSince", func(t *testing.T) { testHasAutoResponsePostByUserSince(t, rctx, ss) })
|
||||
t.Run("GetPostsSinceForSync", func(t *testing.T) { testGetPostsSinceForSync(t, rctx, ss, s) })
|
||||
t.Run("SetPostReminder", func(t *testing.T) { testSetPostReminder(t, rctx, ss, s) })
|
||||
t.Run("GetPostReminders", func(t *testing.T) { testGetPostReminders(t, rctx, ss, s) })
|
||||
t.Run("GetPostReminderMetadata", func(t *testing.T) { testGetPostReminderMetadata(t, rctx, ss, s) })
|
||||
t.Run("GetNthRecentPostTime", func(t *testing.T) { testGetNthRecentPostTime(t, rctx, 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) {
|
||||
o1 := model.Post{}
|
||||
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.ChannelId = 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()}
|
||||
_, err := ss.Channel().Save(c1, 1000000)
|
||||
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")
|
||||
}
|
||||
|
||||
func testPostStoreGet(t *testing.T, ss store.Store) {
|
||||
func testPostStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
teamId := model.NewId()
|
||||
channel, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -657,7 +658,7 @@ func testPostStoreGet(t *testing.T, ss store.Store) {
|
||||
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) {
|
||||
teamId := model.NewId()
|
||||
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()
|
||||
channel, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -957,7 +958,7 @@ func testPostStoreGetSingle(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
channel, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -1071,7 +1072,7 @@ func testPostStoreUpdate(t *testing.T, ss store.Store) {
|
||||
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) {
|
||||
teamId := model.NewId()
|
||||
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()
|
||||
channel, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -1565,7 +1566,7 @@ func testPostStorePermDelete1Level(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -1618,7 +1619,7 @@ func testPostStorePermDelete1Level2(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -1673,7 +1674,7 @@ func testPostStoreGetWithChildren(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -1776,7 +1777,7 @@ func testPostStoreGetPostsWithDetails(t *testing.T, ss store.Store) {
|
||||
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) {
|
||||
teamId := model.NewId()
|
||||
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) {
|
||||
teamId := model.NewId()
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -2661,7 +2662,7 @@ func testPostStoreGetPostBeforeAfter(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
t1.Name = NewTestId()
|
||||
@@ -2720,7 +2721,7 @@ func testUserCountsWithPostsByDay(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
t1.Name = NewTestId()
|
||||
@@ -2832,7 +2833,7 @@ func testPostCountsByDay(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
twentyMinAgo := now.Add(-20 * 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)
|
||||
}
|
||||
|
||||
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.TeamId = model.NewId()
|
||||
c1.DisplayName = "Channel1"
|
||||
@@ -3214,7 +3215,7 @@ func testPostStoreGetFlaggedPostsForTeam(t *testing.T, ss store.Store, s SqlStor
|
||||
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.TeamId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testPostStoreGetFlaggedPostsForChannel(t *testing.T, ss store.Store) {
|
||||
func testPostStoreGetFlaggedPostsForChannel(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
c1 := &model.Channel{}
|
||||
c1.TeamId = model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testPostStoreGetPostsCreatedAt(t *testing.T, ss store.Store) {
|
||||
func testPostStoreGetPostsCreatedAt(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
teamId := model.NewId()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -3561,7 +3562,7 @@ func testPostStoreGetPostsCreatedAt(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
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))
|
||||
}
|
||||
|
||||
func testPostStoreGetPostsBatchForIndexing(t *testing.T, ss store.Store) {
|
||||
func testPostStoreGetPostsBatchForIndexing(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
c1 := &model.Channel{}
|
||||
c1.TeamId = model.NewId()
|
||||
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))
|
||||
}
|
||||
|
||||
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{
|
||||
DisplayName: "DisplayName",
|
||||
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()
|
||||
channel1, err := ss.Channel().Save(&model.Channel{
|
||||
TeamId: teamId,
|
||||
@@ -4241,12 +4242,12 @@ func testPostStoreGetOldest(t *testing.T, ss store.Store) {
|
||||
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())
|
||||
}
|
||||
|
||||
func testPostStoreGetParentsForExportAfter(t *testing.T, ss store.Store) {
|
||||
func testPostStoreGetParentsForExportAfter(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t1 := model.Team{}
|
||||
t1.DisplayName = "Name"
|
||||
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.DisplayName = "Name"
|
||||
t1.Name = NewTestId()
|
||||
@@ -4404,7 +4405,7 @@ func testPostStoreGetRepliesForExport(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -4458,7 +4459,7 @@ func testPostStoreGetDirectPostParentsForExportAfter(t *testing.T, ss store.Stor
|
||||
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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -4524,7 +4525,7 @@ func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, ss sto
|
||||
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()
|
||||
|
||||
o1 := model.Channel{}
|
||||
@@ -4600,7 +4601,7 @@ func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, ss sto
|
||||
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) {
|
||||
teamId := model.NewId()
|
||||
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.
|
||||
channelID := 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
|
||||
userID := NewTestId()
|
||||
|
||||
@@ -4799,7 +4800,7 @@ func testSetPostReminder(t *testing.T, ss store.Store, s SqlStore) {
|
||||
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}
|
||||
for _, tt := range times {
|
||||
userID := NewTestId()
|
||||
@@ -4837,7 +4838,7 @@ func testGetPostReminders(t *testing.T, ss store.Store, s SqlStore) {
|
||||
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{
|
||||
Name: "teamname",
|
||||
DisplayName: "display",
|
||||
@@ -4917,7 +4918,7 @@ func getPostIds(posts []*model.Post, morePosts ...*model.Post) []string {
|
||||
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)
|
||||
assert.Error(t, err)
|
||||
_, err = ss.Post().GetNthRecentPostTime(-1)
|
||||
@@ -5012,7 +5013,7 @@ func testGetNthRecentPostTime(t *testing.T, ss store.Store) {
|
||||
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) {
|
||||
// create a post
|
||||
post := &model.Post{
|
||||
|
||||
@@ -10,22 +10,23 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestPreferenceStore(t *testing.T, ss store.Store) {
|
||||
t.Run("PreferenceSave", func(t *testing.T) { testPreferenceSave(t, ss) })
|
||||
t.Run("PreferenceGet", func(t *testing.T) { testPreferenceGet(t, ss) })
|
||||
t.Run("PreferenceGetCategory", func(t *testing.T) { testPreferenceGetCategory(t, ss) })
|
||||
t.Run("PreferenceGetAll", func(t *testing.T) { testPreferenceGetAll(t, ss) })
|
||||
t.Run("PreferenceDeleteByUser", func(t *testing.T) { testPreferenceDeleteByUser(t, ss) })
|
||||
t.Run("PreferenceDelete", func(t *testing.T) { testPreferenceDelete(t, ss) })
|
||||
t.Run("PreferenceDeleteCategory", func(t *testing.T) { testPreferenceDeleteCategory(t, ss) })
|
||||
t.Run("PreferenceDeleteCategoryAndName", func(t *testing.T) { testPreferenceDeleteCategoryAndName(t, ss) })
|
||||
t.Run("PreferenceDeleteOrphanedRows", func(t *testing.T) { testPreferenceDeleteOrphanedRows(t, ss) })
|
||||
func TestPreferenceStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("PreferenceSave", func(t *testing.T) { testPreferenceSave(t, rctx, ss) })
|
||||
t.Run("PreferenceGet", func(t *testing.T) { testPreferenceGet(t, rctx, ss) })
|
||||
t.Run("PreferenceGetCategory", func(t *testing.T) { testPreferenceGetCategory(t, rctx, ss) })
|
||||
t.Run("PreferenceGetAll", func(t *testing.T) { testPreferenceGetAll(t, rctx, ss) })
|
||||
t.Run("PreferenceDeleteByUser", func(t *testing.T) { testPreferenceDeleteByUser(t, rctx, ss) })
|
||||
t.Run("PreferenceDelete", func(t *testing.T) { testPreferenceDelete(t, rctx, ss) })
|
||||
t.Run("PreferenceDeleteCategory", func(t *testing.T) { testPreferenceDeleteCategory(t, rctx, ss) })
|
||||
t.Run("PreferenceDeleteCategoryAndName", func(t *testing.T) { testPreferenceDeleteCategoryAndName(t, rctx, 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()
|
||||
|
||||
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()
|
||||
category := model.PreferenceCategoryDirectChannelShow
|
||||
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")
|
||||
}
|
||||
|
||||
func testPreferenceGetCategory(t *testing.T, ss store.Store) {
|
||||
func testPreferenceGetCategory(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
userId := model.NewId()
|
||||
category := model.PreferenceCategoryDirectChannelShow
|
||||
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")
|
||||
}
|
||||
|
||||
func testPreferenceGetAll(t *testing.T, ss store.Store) {
|
||||
func testPreferenceGetAll(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
userId := model.NewId()
|
||||
category := model.PreferenceCategoryDirectChannelShow
|
||||
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()
|
||||
category := model.PreferenceCategoryDirectChannelShow
|
||||
name := model.NewId()
|
||||
@@ -231,7 +232,7 @@ func testPreferenceDeleteByUser(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
UserId: model.NewId(),
|
||||
Category: model.PreferenceCategoryDirectChannelShow,
|
||||
@@ -253,7 +254,7 @@ func testPreferenceDelete(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
userId := model.NewId()
|
||||
|
||||
@@ -286,7 +287,7 @@ func testPreferenceDeleteCategory(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
name := 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")
|
||||
}
|
||||
|
||||
func testPreferenceDeleteOrphanedRows(t *testing.T, ss store.Store) {
|
||||
func testPreferenceDeleteOrphanedRows(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
const limit = 1000
|
||||
team, err := ss.Team().Save(&model.Team{
|
||||
DisplayName: "DisplayName",
|
||||
|
||||
@@ -9,16 +9,17 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestProductNoticesStore(t *testing.T, ss store.Store) {
|
||||
t.Run("TestAddViewed", func(t *testing.T) { testAddViewed(t, ss) })
|
||||
t.Run("TestUpdateViewed", func(t *testing.T) { testUpdateViewed(t, ss) })
|
||||
t.Run("TestClearOld", func(t *testing.T) { testClearOld(t, ss) })
|
||||
func TestProductNoticesStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("TestAddViewed", func(t *testing.T) { testAddViewed(t, rctx, ss) })
|
||||
t.Run("TestUpdateViewed", func(t *testing.T) { testUpdateViewed(t, rctx, 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"}
|
||||
defer ss.ProductNotices().Clear(notices)
|
||||
|
||||
@@ -32,7 +33,7 @@ func testAddViewed(t *testing.T, ss store.Store) {
|
||||
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"}
|
||||
noticesB := []string{"noticeB", "noticeC"}
|
||||
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)
|
||||
}
|
||||
|
||||
func testClearOld(t *testing.T, ss store.Store) {
|
||||
func testClearOld(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
noticesA := []string{"noticeA", "noticeB"}
|
||||
defer ss.ProductNotices().Clear(noticesA)
|
||||
// mark two notices
|
||||
|
||||
@@ -14,23 +14,24 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"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/retrylayer"
|
||||
)
|
||||
|
||||
func TestReactionStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("ReactionSave", func(t *testing.T) { testReactionSave(t, ss) })
|
||||
t.Run("ReactionDelete", func(t *testing.T) { testReactionDelete(t, ss) })
|
||||
t.Run("ReactionGetForPost", func(t *testing.T) { testReactionGetForPost(t, ss) })
|
||||
t.Run("ReactionGetForPostSince", func(t *testing.T) { testReactionGetForPostSince(t, ss, s) })
|
||||
t.Run("ReactionDeleteAllWithEmojiName", func(t *testing.T) { testReactionDeleteAllWithEmojiName(t, ss, s) })
|
||||
t.Run("PermanentDeleteByUser", func(t *testing.T) { testPermanentDeleteByUser(t, ss) })
|
||||
t.Run("PermanentDeleteBatch", func(t *testing.T) { testReactionStorePermanentDeleteBatch(t, ss) })
|
||||
t.Run("ReactionBulkGetForPosts", func(t *testing.T) { testReactionBulkGetForPosts(t, ss) })
|
||||
t.Run("ReactionDeadlock", func(t *testing.T) { testReactionDeadlock(t, ss) })
|
||||
func TestReactionStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("ReactionSave", func(t *testing.T) { testReactionSave(t, rctx, ss) })
|
||||
t.Run("ReactionDelete", func(t *testing.T) { testReactionDelete(t, rctx, ss) })
|
||||
t.Run("ReactionGetForPost", func(t *testing.T) { testReactionGetForPost(t, rctx, ss) })
|
||||
t.Run("ReactionGetForPostSince", func(t *testing.T) { testReactionGetForPostSince(t, rctx, ss, s) })
|
||||
t.Run("ReactionDeleteAllWithEmojiName", func(t *testing.T) { testReactionDeleteAllWithEmojiName(t, rctx, ss, s) })
|
||||
t.Run("PermanentDeleteByUser", func(t *testing.T) { testPermanentDeleteByUser(t, rctx, ss) })
|
||||
t.Run("PermanentDeleteBatch", func(t *testing.T) { testReactionStorePermanentDeleteBatch(t, rctx, ss) })
|
||||
t.Run("ReactionBulkGetForPosts", func(t *testing.T) { testReactionBulkGetForPosts(t, rctx, 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{
|
||||
ChannelId: 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) {
|
||||
post, err := ss.Post().Save(&model.Post{
|
||||
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()
|
||||
// create 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()
|
||||
later := now + 1800000 // add 30 minutes
|
||||
remoteId := model.NewId()
|
||||
@@ -467,7 +468,7 @@ func forceNULL(reaction *model.Reaction, s SqlStore) error {
|
||||
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()
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testPermanentDeleteByUser(t *testing.T, ss store.Store) {
|
||||
func testPermanentDeleteByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
userId := model.NewId()
|
||||
post, err1 := ss.Post().Save(&model.Post{
|
||||
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")
|
||||
}
|
||||
|
||||
func testReactionStorePermanentDeleteBatch(t *testing.T, ss store.Store) {
|
||||
func testReactionStorePermanentDeleteBatch(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
const limit = 1000
|
||||
team, err := ss.Team().Save(&model.Team{
|
||||
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")
|
||||
}
|
||||
|
||||
func testReactionBulkGetForPosts(t *testing.T, ss store.Store) {
|
||||
func testReactionBulkGetForPosts(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
userId := model.NewId()
|
||||
post, _ := ss.Post().Save(&model.Post{
|
||||
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.
|
||||
// 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)
|
||||
|
||||
post, err := ss.Post().Save(&model.Post{
|
||||
|
||||
@@ -8,24 +8,25 @@ import (
|
||||
"testing"
|
||||
|
||||
"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/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestRemoteClusterStore(t *testing.T, ss store.Store) {
|
||||
t.Run("RemoteClusterGetAllInChannel", func(t *testing.T) { testRemoteClusterGetAllInChannel(t, ss) })
|
||||
t.Run("RemoteClusterGetAllNotInChannel", func(t *testing.T) { testRemoteClusterGetAllNotInChannel(t, ss) })
|
||||
t.Run("RemoteClusterSave", func(t *testing.T) { testRemoteClusterSave(t, ss) })
|
||||
t.Run("RemoteClusterDelete", func(t *testing.T) { testRemoteClusterDelete(t, ss) })
|
||||
t.Run("RemoteClusterGet", func(t *testing.T) { testRemoteClusterGet(t, ss) })
|
||||
t.Run("RemoteClusterGetAll", func(t *testing.T) { testRemoteClusterGetAll(t, ss) })
|
||||
t.Run("RemoteClusterGetByTopic", func(t *testing.T) { testRemoteClusterGetByTopic(t, ss) })
|
||||
t.Run("RemoteClusterUpdateTopics", func(t *testing.T) { testRemoteClusterUpdateTopics(t, ss) })
|
||||
func TestRemoteClusterStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("RemoteClusterGetAllInChannel", func(t *testing.T) { testRemoteClusterGetAllInChannel(t, rctx, ss) })
|
||||
t.Run("RemoteClusterGetAllNotInChannel", func(t *testing.T) { testRemoteClusterGetAllNotInChannel(t, rctx, ss) })
|
||||
t.Run("RemoteClusterSave", func(t *testing.T) { testRemoteClusterSave(t, rctx, ss) })
|
||||
t.Run("RemoteClusterDelete", func(t *testing.T) { testRemoteClusterDelete(t, rctx, ss) })
|
||||
t.Run("RemoteClusterGet", func(t *testing.T) { testRemoteClusterGet(t, rctx, ss) })
|
||||
t.Run("RemoteClusterGetAll", func(t *testing.T) { testRemoteClusterGetAll(t, rctx, ss) })
|
||||
t.Run("RemoteClusterGetByTopic", func(t *testing.T) { testRemoteClusterGetByTopic(t, rctx, 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) {
|
||||
rc := &model.RemoteCluster{
|
||||
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) {
|
||||
rc := &model.RemoteCluster{
|
||||
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) {
|
||||
rc := &model.RemoteCluster{
|
||||
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))
|
||||
|
||||
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))
|
||||
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))
|
||||
|
||||
userId := model.NewId()
|
||||
@@ -421,7 +422,7 @@ func getIds(remotes []*model.RemoteCluster) []string {
|
||||
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))
|
||||
|
||||
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()
|
||||
rc := &model.RemoteCluster{
|
||||
DisplayName: "Blap Inc",
|
||||
|
||||
@@ -11,23 +11,24 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestRetentionPolicyStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("Save", func(t *testing.T) { testRetentionPolicyStoreSave(t, ss, s) })
|
||||
t.Run("Patch", func(t *testing.T) { testRetentionPolicyStorePatch(t, ss, s) })
|
||||
t.Run("Get", func(t *testing.T) { testRetentionPolicyStoreGet(t, ss, s) })
|
||||
t.Run("GetCount", func(t *testing.T) { testRetentionPolicyStoreGetCount(t, ss, s) })
|
||||
t.Run("Delete", func(t *testing.T) { testRetentionPolicyStoreDelete(t, ss, s) })
|
||||
t.Run("GetChannels", func(t *testing.T) { testRetentionPolicyStoreGetChannels(t, ss, s) })
|
||||
t.Run("AddChannels", func(t *testing.T) { testRetentionPolicyStoreAddChannels(t, ss, s) })
|
||||
t.Run("RemoveChannels", func(t *testing.T) { testRetentionPolicyStoreRemoveChannels(t, ss, s) })
|
||||
t.Run("GetTeams", func(t *testing.T) { testRetentionPolicyStoreGetTeams(t, ss, s) })
|
||||
t.Run("AddTeams", func(t *testing.T) { testRetentionPolicyStoreAddTeams(t, ss, s) })
|
||||
t.Run("RemoveTeams", func(t *testing.T) { testRetentionPolicyStoreRemoveTeams(t, ss, s) })
|
||||
t.Run("RemoveOrphanedRows", func(t *testing.T) { testRetentionPolicyStoreRemoveOrphanedRows(t, ss, s) })
|
||||
t.Run("GetPoliciesForUser", func(t *testing.T) { testRetentionPolicyStoreGetPoliciesForUser(t, ss, s) })
|
||||
func TestRetentionPolicyStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("Save", func(t *testing.T) { testRetentionPolicyStoreSave(t, rctx, ss, s) })
|
||||
t.Run("Patch", func(t *testing.T) { testRetentionPolicyStorePatch(t, rctx, ss, s) })
|
||||
t.Run("Get", func(t *testing.T) { testRetentionPolicyStoreGet(t, rctx, ss, s) })
|
||||
t.Run("GetCount", func(t *testing.T) { testRetentionPolicyStoreGetCount(t, rctx, ss, s) })
|
||||
t.Run("Delete", func(t *testing.T) { testRetentionPolicyStoreDelete(t, rctx, ss, s) })
|
||||
t.Run("GetChannels", func(t *testing.T) { testRetentionPolicyStoreGetChannels(t, rctx, ss, s) })
|
||||
t.Run("AddChannels", func(t *testing.T) { testRetentionPolicyStoreAddChannels(t, rctx, ss, s) })
|
||||
t.Run("RemoveChannels", func(t *testing.T) { testRetentionPolicyStoreRemoveChannels(t, rctx, ss, s) })
|
||||
t.Run("GetTeams", func(t *testing.T) { testRetentionPolicyStoreGetTeams(t, rctx, ss, s) })
|
||||
t.Run("AddTeams", func(t *testing.T) { testRetentionPolicyStoreAddTeams(t, rctx, ss, s) })
|
||||
t.Run("RemoveTeams", func(t *testing.T) { testRetentionPolicyStoreRemoveTeams(t, rctx, ss, s) })
|
||||
t.Run("RemoveOrphanedRows", func(t *testing.T) { testRetentionPolicyStoreRemoveOrphanedRows(t, rctx, 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 {
|
||||
@@ -138,7 +139,7 @@ func createTeamsForRetentionPolicy(t *testing.T, ss store.Store, numTeams int) (
|
||||
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)
|
||||
channels1 := createChannelsForRetentionPolicy(t, ss, teamIDs[0], 1)
|
||||
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)
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
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)
|
||||
})
|
||||
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)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 3", teamIDs, channelIDs)
|
||||
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) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
func testRetentionPolicyStorePatch(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", 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) {
|
||||
retrievedPolicies, err := ss.RetentionPolicy().GetAll(0, 10)
|
||||
require.NoError(t, err)
|
||||
@@ -333,7 +334,7 @@ func testRetentionPolicyStoreGet(t *testing.T, ss store.Store, s SqlStore) {
|
||||
// create multiple policies
|
||||
policiesWithCounts := make([]*model.RetentionPolicyWithTeamAndChannelCounts, 0)
|
||||
for i := 0; i < 3; i++ {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
|
||||
policyWithIds := createRetentionPolicyWithTeamAndChannelIds(
|
||||
"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) {
|
||||
for i := 0; i < 5; i++ {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
|
||||
proposal := createRetentionPolicyWithTeamAndChannelIds(
|
||||
"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)
|
||||
|
||||
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) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
func testRetentionPolicyStoreDelete(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", 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)
|
||||
|
||||
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)
|
||||
})
|
||||
t.Run("some channels", func(t *testing.T) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 2", teamIDs, 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) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
func testRetentionPolicyStoreAddChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", 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) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
func testRetentionPolicyStoreRemoveChannels(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", 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)
|
||||
|
||||
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)
|
||||
})
|
||||
t.Run("some teams", func(t *testing.T) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
defer deleteTeamsAndChannels(ss, teamIDs, channelIDs)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 2", teamIDs, channelIDs)
|
||||
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) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
func testRetentionPolicyStoreAddTeams(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", 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) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
func testRetentionPolicyStoreRemoveTeams(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", 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) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, ss)
|
||||
func testRetentionPolicyStoreGetPoliciesForUser(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
teamIDs, channelIDs := createTeamsAndChannelsForRetentionPolicy(t, rctx, ss)
|
||||
saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1", 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]
|
||||
channelID := createChannelsForRetentionPolicy(t, ss, teamID, 1)[0]
|
||||
policy := saveRetentionPolicyWithTeamAndChannelIds(t, ss, "Policy 1",
|
||||
|
||||
@@ -12,22 +12,25 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestRoleStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("Save", func(t *testing.T) { testRoleStoreSave(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testRoleStoreGet(t, ss) })
|
||||
t.Run("GetAll", func(t *testing.T) { testRoleStoreGetAll(t, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testRoleStoreGetByName(t, ss) })
|
||||
t.Run("GetNames", func(t *testing.T) { testRoleStoreGetByNames(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testRoleStoreDelete(t, ss) })
|
||||
t.Run("PermanentDeleteAll", func(t *testing.T) { testRoleStorePermanentDeleteAll(t, ss) })
|
||||
t.Run("LowerScopedChannelSchemeRoles_AllChannelSchemeRoles", func(t *testing.T) { testRoleStoreLowerScopedChannelSchemeRoles(t, ss) })
|
||||
t.Run("ChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest", func(t *testing.T) { testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t, ss, s) })
|
||||
func TestRoleStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("Save", func(t *testing.T) { testRoleStoreSave(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testRoleStoreGet(t, rctx, ss) })
|
||||
t.Run("GetAll", func(t *testing.T) { testRoleStoreGetAll(t, rctx, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testRoleStoreGetByName(t, rctx, ss) })
|
||||
t.Run("GetNames", func(t *testing.T) { testRoleStoreGetByNames(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testRoleStoreDelete(t, rctx, ss) })
|
||||
t.Run("PermanentDeleteAll", func(t *testing.T) { testRoleStorePermanentDeleteAll(t, rctx, ss) })
|
||||
t.Run("LowerScopedChannelSchemeRoles_AllChannelSchemeRoles", func(t *testing.T) { testRoleStoreLowerScopedChannelSchemeRoles(t, rctx, ss) })
|
||||
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.
|
||||
r1 := &model.Role{
|
||||
Name: model.NewId(),
|
||||
@@ -100,7 +103,7 @@ func testRoleStoreSave(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
require.NoError(t, err)
|
||||
prevCount := len(prev)
|
||||
@@ -140,7 +143,7 @@ func testRoleStoreGetAll(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
r1 := &model.Role{
|
||||
Name: model.NewId(),
|
||||
@@ -173,7 +176,7 @@ func testRoleStoreGet(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
r1 := &model.Role{
|
||||
Name: model.NewId(),
|
||||
@@ -206,7 +209,7 @@ func testRoleStoreGetByName(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
r1 := &model.Role{
|
||||
Name: model.NewId(),
|
||||
@@ -279,7 +282,7 @@ func testRoleStoreGetByNames(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
r1 := &model.Role{
|
||||
Name: model.NewId(),
|
||||
@@ -319,7 +322,7 @@ func testRoleStoreDelete(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewId(),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -361,7 +364,7 @@ func testRoleStorePermanentDeleteAll(t *testing.T, ss store.Store) {
|
||||
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)
|
||||
|
||||
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{
|
||||
DisplayName: model.NewId(),
|
||||
Name: model.NewId(),
|
||||
|
||||
@@ -11,20 +11,21 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"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)
|
||||
|
||||
t.Run("Save", func(t *testing.T) { testSchemeStoreSave(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testSchemeStoreGet(t, ss) })
|
||||
t.Run("GetAllPage", func(t *testing.T) { testSchemeStoreGetAllPage(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testSchemeStoreDelete(t, ss) })
|
||||
t.Run("PermanentDeleteAll", func(t *testing.T) { testSchemeStorePermanentDeleteAll(t, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testSchemeStoreGetByName(t, ss) })
|
||||
t.Run("CountByScope", func(t *testing.T) { testSchemeStoreCountByScope(t, ss) })
|
||||
t.Run("CountWithoutPermission", func(t *testing.T) { testCountWithoutPermission(t, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testSchemeStoreSave(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testSchemeStoreGet(t, rctx, ss) })
|
||||
t.Run("GetAllPage", func(t *testing.T) { testSchemeStoreGetAllPage(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testSchemeStoreDelete(t, rctx, ss) })
|
||||
t.Run("PermanentDeleteAll", func(t *testing.T) { testSchemeStorePermanentDeleteAll(t, rctx, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testSchemeStoreGetByName(t, rctx, ss) })
|
||||
t.Run("CountByScope", func(t *testing.T) { testSchemeStoreCountByScope(t, rctx, ss) })
|
||||
t.Run("CountWithoutPermission", func(t *testing.T) { testCountWithoutPermission(t, rctx, ss) })
|
||||
}
|
||||
|
||||
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.
|
||||
s1 := &model.Scheme{
|
||||
DisplayName: model.NewId(),
|
||||
@@ -206,7 +207,7 @@ func testSchemeStoreSave(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
s1 := &model.Scheme{
|
||||
DisplayName: model.NewId(),
|
||||
@@ -242,7 +243,7 @@ func testSchemeStoreGet(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
s1 := &model.Scheme{
|
||||
DisplayName: model.NewId(),
|
||||
@@ -278,7 +279,7 @@ func testSchemeStoreGetByName(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
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.
|
||||
s1 := &model.Scheme{
|
||||
DisplayName: model.NewId(),
|
||||
@@ -490,7 +491,7 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Name: model.NewId(),
|
||||
DisplayName: model.NewId(),
|
||||
@@ -524,7 +525,7 @@ func testSchemeStorePermanentDeleteAll(t *testing.T, ss store.Store) {
|
||||
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) {
|
||||
actualCount, err := ss.Scheme().CountByScope(model.SchemeScopeTeam)
|
||||
require.NoError(t, err)
|
||||
@@ -557,7 +558,7 @@ func testSchemeStoreCountByScope(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
createScheme := func(scope string) *model.Scheme {
|
||||
|
||||
@@ -18,59 +18,55 @@ const (
|
||||
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
|
||||
testSessionCleanup(t, ss)
|
||||
testSessionCleanup(t, rctx, ss)
|
||||
|
||||
t.Run("Save", func(t *testing.T) { testSessionStoreSave(t, ss) })
|
||||
t.Run("SessionGet", func(t *testing.T) { testSessionGet(t, ss) })
|
||||
t.Run("SessionGetWithDeviceId", func(t *testing.T) { testSessionGetWithDeviceId(t, ss) })
|
||||
t.Run("SessionRemove", func(t *testing.T) { testSessionRemove(t, ss) })
|
||||
t.Run("SessionRemoveAll", func(t *testing.T) { testSessionRemoveAll(t, ss) })
|
||||
t.Run("SessionRemoveByUser", func(t *testing.T) { testSessionRemoveByUser(t, ss) })
|
||||
t.Run("SessionRemoveToken", func(t *testing.T) { testSessionRemoveToken(t, ss) })
|
||||
t.Run("SessionUpdateDeviceId", func(t *testing.T) { testSessionUpdateDeviceId(t, ss) })
|
||||
t.Run("SessionUpdateDeviceId2", func(t *testing.T) { testSessionUpdateDeviceId2(t, ss) })
|
||||
t.Run("UpdateExpiresAt", func(t *testing.T) { testSessionStoreUpdateExpiresAt(t, ss) })
|
||||
t.Run("UpdateLastActivityAt", func(t *testing.T) { testSessionStoreUpdateLastActivityAt(t, ss) })
|
||||
t.Run("SessionCount", func(t *testing.T) { testSessionCount(t, ss) })
|
||||
t.Run("GetSessionsExpired", func(t *testing.T) { testGetSessionsExpired(t, ss) })
|
||||
t.Run("UpdateExpiredNotify", func(t *testing.T) { testUpdateExpiredNotify(t, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testSessionStoreSave(t, rctx, ss) })
|
||||
t.Run("SessionGet", func(t *testing.T) { testSessionGet(t, rctx, ss) })
|
||||
t.Run("SessionGetWithDeviceId", func(t *testing.T) { testSessionGetWithDeviceId(t, rctx, ss) })
|
||||
t.Run("SessionRemove", func(t *testing.T) { testSessionRemove(t, rctx, ss) })
|
||||
t.Run("SessionRemoveAll", func(t *testing.T) { testSessionRemoveAll(t, rctx, ss) })
|
||||
t.Run("SessionRemoveByUser", func(t *testing.T) { testSessionRemoveByUser(t, rctx, ss) })
|
||||
t.Run("SessionRemoveToken", func(t *testing.T) { testSessionRemoveToken(t, rctx, ss) })
|
||||
t.Run("SessionUpdateDeviceId", func(t *testing.T) { testSessionUpdateDeviceId(t, rctx, ss) })
|
||||
t.Run("SessionUpdateDeviceId2", func(t *testing.T) { testSessionUpdateDeviceId2(t, rctx, ss) })
|
||||
t.Run("UpdateExpiresAt", func(t *testing.T) { testSessionStoreUpdateExpiresAt(t, rctx, ss) })
|
||||
t.Run("UpdateLastActivityAt", func(t *testing.T) { testSessionStoreUpdateLastActivityAt(t, rctx, ss) })
|
||||
t.Run("SessionCount", func(t *testing.T) { testSessionCount(t, rctx, ss) })
|
||||
t.Run("GetSessionsExpired", func(t *testing.T) { testGetSessionsExpired(t, rctx, ss) })
|
||||
t.Run("UpdateExpiredNotify", func(t *testing.T) { testUpdateExpiredNotify(t, rctx, ss) })
|
||||
}
|
||||
|
||||
func testSessionStoreSave(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionStoreSave(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
_, err := ss.Session().Save(c, s1)
|
||||
_, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func testSessionGet(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
s2 := &model.Session{}
|
||||
s2.UserId = s1.UserId
|
||||
|
||||
_, err = ss.Session().Save(c, s2)
|
||||
_, err = ss.Session().Save(rctx, s2)
|
||||
require.NoError(t, err)
|
||||
|
||||
s3 := &model.Session{}
|
||||
s3.UserId = s1.UserId
|
||||
s3.ExpiresAt = 1
|
||||
|
||||
_, err = ss.Session().Save(c, s3)
|
||||
_, err = ss.Session().Save(rctx, s3)
|
||||
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.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)
|
||||
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.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.Len(t, data, 3, "should match len")
|
||||
}
|
||||
|
||||
func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionGetWithDeviceId(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
s1.ExpiresAt = model.GetMillis() + 10000
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
s2 := &model.Session{}
|
||||
@@ -103,7 +97,7 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
|
||||
s2.DeviceId = model.NewId()
|
||||
s2.ExpiresAt = model.GetMillis() + 10000
|
||||
|
||||
_, err = ss.Session().Save(c, s2)
|
||||
_, err = ss.Session().Save(rctx, s2)
|
||||
require.NoError(t, err)
|
||||
|
||||
s3 := &model.Session{}
|
||||
@@ -111,7 +105,7 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
|
||||
s3.ExpiresAt = 1
|
||||
s3.DeviceId = model.NewId()
|
||||
|
||||
_, err = ss.Session().Save(c, s3)
|
||||
_, err = ss.Session().Save(rctx, s3)
|
||||
require.NoError(t, err)
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testSessionRemove(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionRemove(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
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.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
removeErr := ss.Session().Remove(s1.Id)
|
||||
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")
|
||||
}
|
||||
|
||||
func testSessionRemoveAll(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionRemoveAll(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
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.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
removeErr := ss.Session().RemoveAllSessions()
|
||||
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")
|
||||
}
|
||||
|
||||
func testSessionRemoveByUser(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionRemoveByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
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.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
deleteErr := ss.Session().PermanentDeleteSessionsByUser(s1.UserId)
|
||||
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")
|
||||
}
|
||||
|
||||
func testSessionRemoveToken(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionRemoveToken(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
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.Equal(t, session.Id, s1.Id, "should match")
|
||||
|
||||
removeErr := ss.Session().Remove(s1.Token)
|
||||
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")
|
||||
|
||||
data, err := ss.Session().GetSessions(c, s1.UserId)
|
||||
data, err := ss.Session().GetSessions(rctx, s1.UserId)
|
||||
require.NoError(t, err)
|
||||
require.Empty(t, data, "should match len")
|
||||
}
|
||||
|
||||
func testSessionUpdateDeviceId(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionUpdateDeviceId(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, 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.UserId = model.NewId()
|
||||
|
||||
s2, err = ss.Session().Save(c, s2)
|
||||
s2, err = ss.Session().Save(rctx, s2)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = ss.Session().UpdateDeviceId(s2.Id, model.PushNotifyApple+":1234567890", s1.ExpiresAt)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func testSessionUpdateDeviceId2(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionUpdateDeviceId2(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, 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.UserId = model.NewId()
|
||||
|
||||
s2, err = ss.Session().Save(c, s2)
|
||||
s2, err = ss.Session().Save(rctx, s2)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = ss.Session().UpdateDeviceId(s2.Id, model.PushNotifyAppleReactNative+":1234567890", s1.ExpiresAt)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func testSessionStoreUpdateExpiresAt(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionStoreUpdateExpiresAt(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = ss.Session().UpdateExpiresAt(s1.Id, 1234567890)
|
||||
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.EqualValues(t, session.ExpiresAt, 1234567890, "ExpiresAt not updated correctly")
|
||||
}
|
||||
|
||||
func testSessionStoreUpdateLastActivityAt(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionStoreUpdateLastActivityAt(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = ss.Session().UpdateLastActivityAt(s1.Id, 1234567890)
|
||||
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.EqualValues(t, session.LastActivityAt, 1234567890, "LastActivityAt not updated correctly")
|
||||
}
|
||||
|
||||
func testSessionCount(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
s1.ExpiresAt = model.GetMillis() + 100000
|
||||
|
||||
_, err := ss.Session().Save(c, s1)
|
||||
_, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testSessionCleanup(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testSessionCleanup(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
now := model.GetMillis()
|
||||
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
s1.ExpiresAt = 0 // never expires
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
s2 := &model.Session{}
|
||||
s2.UserId = s1.UserId
|
||||
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)
|
||||
|
||||
s3 := &model.Session{}
|
||||
s3.UserId = model.NewId()
|
||||
s3.ExpiresAt = 1 // expired
|
||||
|
||||
s3, err = ss.Session().Save(c, s3)
|
||||
s3, err = ss.Session().Save(rctx, s3)
|
||||
require.NoError(t, err)
|
||||
|
||||
s4 := &model.Session{}
|
||||
s4.UserId = model.NewId()
|
||||
s4.ExpiresAt = 2 // expired
|
||||
|
||||
s4, err = ss.Session().Save(c, s4)
|
||||
s4, err = ss.Session().Save(rctx, s4)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = ss.Session().Cleanup(now, 1)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = ss.Session().Get(c, s1.Id)
|
||||
_, err = ss.Session().Get(rctx, s1.Id)
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ss.Session().Get(c, s2.Id)
|
||||
_, err = ss.Session().Get(rctx, s2.Id)
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ss.Session().Get(c, s3.Id)
|
||||
_, err = ss.Session().Get(rctx, s3.Id)
|
||||
assert.Error(t, err)
|
||||
|
||||
_, err = ss.Session().Get(c, s4.Id)
|
||||
_, err = ss.Session().Get(rctx, s4.Id)
|
||||
assert.Error(t, err)
|
||||
|
||||
removeErr := ss.Session().Remove(s1.Id)
|
||||
@@ -351,9 +325,7 @@ func testSessionCleanup(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, removeErr)
|
||||
}
|
||||
|
||||
func testGetSessionsExpired(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testGetSessionsExpired(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
now := model.GetMillis()
|
||||
|
||||
// Clear existing sessions.
|
||||
@@ -364,34 +336,34 @@ func testGetSessionsExpired(t *testing.T, ss store.Store) {
|
||||
s1.UserId = model.NewId()
|
||||
s1.DeviceId = model.NewId()
|
||||
s1.ExpiresAt = 0 // never expires
|
||||
_, err = ss.Session().Save(c, s1)
|
||||
_, err = ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
s2 := &model.Session{}
|
||||
s2.UserId = model.NewId()
|
||||
s2.DeviceId = model.NewId()
|
||||
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)
|
||||
|
||||
s3 := &model.Session{}
|
||||
s3.UserId = model.NewId()
|
||||
s3.DeviceId = model.NewId()
|
||||
s3.ExpiresAt = now - (TenMinutes * 100) // expired outside threshold
|
||||
_, err = ss.Session().Save(c, s3)
|
||||
_, err = ss.Session().Save(rctx, s3)
|
||||
require.NoError(t, err)
|
||||
|
||||
s4 := &model.Session{}
|
||||
s4.UserId = model.NewId()
|
||||
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)
|
||||
|
||||
s5 := &model.Session{}
|
||||
s5.UserId = model.NewId()
|
||||
s5.DeviceId = model.NewId()
|
||||
s5.ExpiresAt = now + (TenMinutes * 100000) // not expired
|
||||
_, err = ss.Session().Save(c, s5)
|
||||
_, err = ss.Session().Save(rctx, s5)
|
||||
require.NoError(t, err)
|
||||
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUpdateExpiredNotify(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := &model.Session{}
|
||||
s1.UserId = model.NewId()
|
||||
s1.DeviceId = model.NewId()
|
||||
s1.ExpiresAt = model.GetMillis() + TenMinutes
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
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.False(t, session.ExpiredNotify)
|
||||
|
||||
err = ss.Session().UpdateExpiredNotify(session.Id, true)
|
||||
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.True(t, session.ExpiredNotify)
|
||||
|
||||
err = ss.Session().UpdateExpiredNotify(session.Id, false)
|
||||
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.False(t, session.ExpiredNotify)
|
||||
}
|
||||
|
||||
@@ -12,40 +12,41 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestSharedChannelStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveSharedChannel", func(t *testing.T) { testSaveSharedChannel(t, ss) })
|
||||
t.Run("GetSharedChannel", func(t *testing.T) { testGetSharedChannel(t, ss) })
|
||||
t.Run("HasSharedChannel", func(t *testing.T) { testHasSharedChannel(t, ss) })
|
||||
t.Run("GetSharedChannels", func(t *testing.T) { testGetSharedChannels(t, ss) })
|
||||
t.Run("UpdateSharedChannel", func(t *testing.T) { testUpdateSharedChannel(t, ss) })
|
||||
t.Run("DeleteSharedChannel", func(t *testing.T) { testDeleteSharedChannel(t, ss) })
|
||||
func TestSharedChannelStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("SaveSharedChannel", func(t *testing.T) { testSaveSharedChannel(t, rctx, ss) })
|
||||
t.Run("GetSharedChannel", func(t *testing.T) { testGetSharedChannel(t, rctx, ss) })
|
||||
t.Run("HasSharedChannel", func(t *testing.T) { testHasSharedChannel(t, rctx, ss) })
|
||||
t.Run("GetSharedChannels", func(t *testing.T) { testGetSharedChannels(t, rctx, ss) })
|
||||
t.Run("UpdateSharedChannel", func(t *testing.T) { testUpdateSharedChannel(t, rctx, ss) })
|
||||
t.Run("DeleteSharedChannel", func(t *testing.T) { testDeleteSharedChannel(t, rctx, ss) })
|
||||
|
||||
t.Run("SaveSharedChannelRemote", func(t *testing.T) { testSaveSharedChannelRemote(t, ss) })
|
||||
t.Run("UpdateSharedChannelRemote", func(t *testing.T) { testUpdateSharedChannelRemote(t, ss) })
|
||||
t.Run("GetSharedChannelRemote", func(t *testing.T) { testGetSharedChannelRemote(t, ss) })
|
||||
t.Run("GetSharedChannelRemoteByIds", func(t *testing.T) { testGetSharedChannelRemoteByIds(t, ss) })
|
||||
t.Run("GetSharedChannelRemotes", func(t *testing.T) { testGetSharedChannelRemotes(t, ss) })
|
||||
t.Run("HasRemote", func(t *testing.T) { testHasRemote(t, ss) })
|
||||
t.Run("GetRemoteForUser", func(t *testing.T) { testGetRemoteForUser(t, ss) })
|
||||
t.Run("UpdateSharedChannelRemoteNextSyncAt", func(t *testing.T) { testUpdateSharedChannelRemoteCursor(t, ss) })
|
||||
t.Run("DeleteSharedChannelRemote", func(t *testing.T) { testDeleteSharedChannelRemote(t, ss) })
|
||||
t.Run("SaveSharedChannelRemote", func(t *testing.T) { testSaveSharedChannelRemote(t, rctx, ss) })
|
||||
t.Run("UpdateSharedChannelRemote", func(t *testing.T) { testUpdateSharedChannelRemote(t, rctx, ss) })
|
||||
t.Run("GetSharedChannelRemote", func(t *testing.T) { testGetSharedChannelRemote(t, rctx, ss) })
|
||||
t.Run("GetSharedChannelRemoteByIds", func(t *testing.T) { testGetSharedChannelRemoteByIds(t, rctx, ss) })
|
||||
t.Run("GetSharedChannelRemotes", func(t *testing.T) { testGetSharedChannelRemotes(t, rctx, ss) })
|
||||
t.Run("HasRemote", func(t *testing.T) { testHasRemote(t, rctx, ss) })
|
||||
t.Run("GetRemoteForUser", func(t *testing.T) { testGetRemoteForUser(t, rctx, ss) })
|
||||
t.Run("UpdateSharedChannelRemoteNextSyncAt", func(t *testing.T) { testUpdateSharedChannelRemoteCursor(t, rctx, ss) })
|
||||
t.Run("DeleteSharedChannelRemote", func(t *testing.T) { testDeleteSharedChannelRemote(t, rctx, ss) })
|
||||
|
||||
t.Run("SaveSharedChannelUser", func(t *testing.T) { testSaveSharedChannelUser(t, ss) })
|
||||
t.Run("GetSharedChannelSingleUser", func(t *testing.T) { testGetSingleSharedChannelUser(t, ss) })
|
||||
t.Run("GetSharedChannelUser", func(t *testing.T) { testGetSharedChannelUser(t, ss) })
|
||||
t.Run("GetSharedChannelUsersForSync", func(t *testing.T) { testGetSharedChannelUsersForSync(t, ss) })
|
||||
t.Run("UpdateSharedChannelUserLastSyncAt", func(t *testing.T) { testUpdateSharedChannelUserLastSyncAt(t, ss) })
|
||||
t.Run("SaveSharedChannelUser", func(t *testing.T) { testSaveSharedChannelUser(t, rctx, ss) })
|
||||
t.Run("GetSharedChannelSingleUser", func(t *testing.T) { testGetSingleSharedChannelUser(t, rctx, ss) })
|
||||
t.Run("GetSharedChannelUser", func(t *testing.T) { testGetSharedChannelUser(t, rctx, ss) })
|
||||
t.Run("GetSharedChannelUsersForSync", func(t *testing.T) { testGetSharedChannelUsersForSync(t, rctx, ss) })
|
||||
t.Run("UpdateSharedChannelUserLastSyncAt", func(t *testing.T) { testUpdateSharedChannelUserLastSyncAt(t, rctx, ss) })
|
||||
|
||||
t.Run("SaveSharedChannelAttachment", func(t *testing.T) { testSaveSharedChannelAttachment(t, ss) })
|
||||
t.Run("UpsertSharedChannelAttachment", func(t *testing.T) { testUpsertSharedChannelAttachment(t, ss) })
|
||||
t.Run("GetSharedChannelAttachment", func(t *testing.T) { testGetSharedChannelAttachment(t, ss) })
|
||||
t.Run("UpdateSharedChannelAttachmentLastSyncAt", func(t *testing.T) { testUpdateSharedChannelAttachmentLastSyncAt(t, ss) })
|
||||
t.Run("SaveSharedChannelAttachment", func(t *testing.T) { testSaveSharedChannelAttachment(t, rctx, ss) })
|
||||
t.Run("UpsertSharedChannelAttachment", func(t *testing.T) { testUpsertSharedChannelAttachment(t, rctx, ss) })
|
||||
t.Run("GetSharedChannelAttachment", func(t *testing.T) { testGetSharedChannelAttachment(t, rctx, 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) {
|
||||
channel, err := createTestChannel(ss, "test_save")
|
||||
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")
|
||||
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")
|
||||
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))
|
||||
user, err := createTestUser(ss, "gary.goodspeed")
|
||||
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")
|
||||
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")
|
||||
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) {
|
||||
channel, err := createTestChannel(ss, "test_save_remote")
|
||||
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) {
|
||||
channel, err := createTestChannel(ss, "test_update_remote")
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
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.
|
||||
teamId := model.NewId()
|
||||
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")
|
||||
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")
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -898,7 +899,7 @@ func clearSharedChannels(ss store.Store) error {
|
||||
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) {
|
||||
scUser := &model.SharedChannelUser{
|
||||
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{
|
||||
UserId: 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()
|
||||
for i := 0; i < 10; i++ {
|
||||
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()
|
||||
remoteID := model.NewId()
|
||||
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{
|
||||
Username: model.NewId(),
|
||||
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) {
|
||||
attachment := &model.SharedChannelAttachment{
|
||||
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) {
|
||||
attachment := &model.SharedChannelAttachment{
|
||||
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{
|
||||
FileId: 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{
|
||||
FileId: model.NewId(),
|
||||
RemoteId: model.NewId(),
|
||||
|
||||
@@ -10,16 +10,17 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestStatusStore(t *testing.T, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testStatusStore(t, ss) })
|
||||
t.Run("ActiveUserCount", func(t *testing.T) { testActiveUserCount(t, ss) })
|
||||
t.Run("UpdateExpiredDNDStatuses", func(t *testing.T) { testUpdateExpiredDNDStatuses(t, ss) })
|
||||
func TestStatusStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testStatusStore(t, rctx, ss) })
|
||||
t.Run("ActiveUserCount", func(t *testing.T) { testActiveUserCount(t, rctx, 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: ""}
|
||||
require.NoError(t, ss.Status().SaveOrUpdate(status))
|
||||
|
||||
@@ -49,7 +50,7 @@ func testStatusStore(t *testing.T, ss store.Store) {
|
||||
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: ""}
|
||||
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) 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()
|
||||
|
||||
status := &model.Status{UserId: userID, Status: model.StatusDnd, Manual: true,
|
||||
|
||||
@@ -11,21 +11,22 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestSystemStore(t *testing.T, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testSystemStore(t, ss) })
|
||||
t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, ss) })
|
||||
t.Run("PermanentDeleteByName", func(t *testing.T) { testSystemStorePermanentDeleteByName(t, ss) })
|
||||
func TestSystemStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("", func(t *testing.T) { testSystemStore(t, rctx, ss) })
|
||||
t.Run("SaveOrUpdate", func(t *testing.T) { testSystemStoreSaveOrUpdate(t, rctx, ss) })
|
||||
t.Run("PermanentDeleteByName", func(t *testing.T) { testSystemStorePermanentDeleteByName(t, rctx, ss) })
|
||||
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("GetByNameNoEntries", func(t *testing.T) { testSystemStoreGetByNameNoEntries(t, ss) })
|
||||
t.Run("SaveOrUpdateWithWarnMetricHandling", func(t *testing.T) { testSystemStoreSaveOrUpdateWithWarnMetricHandling(t, rctx, 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"}
|
||||
err := ss.System().Save(system)
|
||||
require.NoError(t, err)
|
||||
@@ -52,7 +53,7 @@ func testSystemStore(t *testing.T, ss store.Store) {
|
||||
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"}
|
||||
|
||||
err := ss.System().SaveOrUpdate(system)
|
||||
@@ -72,7 +73,7 @@ func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) {
|
||||
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"}
|
||||
|
||||
err := ss.System().SaveOrUpdateWithWarnMetricHandling(system)
|
||||
@@ -99,7 +100,7 @@ func testSystemStoreSaveOrUpdateWithWarnMetricHandling(t *testing.T, ss store.St
|
||||
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)
|
||||
_, ok := nErr.(*store.ErrNotFound)
|
||||
require.Error(t, nErr)
|
||||
@@ -107,7 +108,7 @@ func testSystemStoreGetByNameNoEntries(t *testing.T, ss store.Store) {
|
||||
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"}
|
||||
s2 := &model.System{Name: model.NewId(), Value: "value"}
|
||||
|
||||
@@ -141,7 +142,7 @@ func testSystemStorePermanentDeleteByName(t *testing.T, ss store.Store) {
|
||||
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) {
|
||||
s1 := &model.System{Name: model.SystemClusterEncryptionKey, Value: "somekey"}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import (
|
||||
"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()
|
||||
for _, team := range allTeams {
|
||||
ss.Team().PermanentDelete(team.Id)
|
||||
@@ -26,58 +26,58 @@ func cleanupTeamStore(t *testing.T, ss store.Store) {
|
||||
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)
|
||||
|
||||
t.Run("Save", func(t *testing.T) { testTeamStoreSave(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testTeamStoreUpdate(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testTeamStoreGet(t, ss) })
|
||||
t.Run("GetMany", func(t *testing.T) { testTeamStoreGetMany(t, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testTeamStoreGetByName(t, ss) })
|
||||
t.Run("GetByNames", func(t *testing.T) { testTeamStoreGetByNames(t, ss) })
|
||||
t.Run("SearchAll", func(t *testing.T) { testTeamStoreSearchAll(t, ss) })
|
||||
t.Run("SearchOpen", func(t *testing.T) { testTeamStoreSearchOpen(t, ss) })
|
||||
t.Run("SearchPrivate", func(t *testing.T) { testTeamStoreSearchPrivate(t, ss) })
|
||||
t.Run("GetByInviteId", func(t *testing.T) { testTeamStoreGetByInviteId(t, ss) })
|
||||
t.Run("ByUserId", func(t *testing.T) { testTeamStoreByUserId(t, ss) })
|
||||
t.Run("GetAllTeamListing", func(t *testing.T) { testGetAllTeamListing(t, ss) })
|
||||
t.Run("GetAllTeamPage", func(t *testing.T) { testTeamStoreGetAllPage(t, ss) })
|
||||
t.Run("GetAllTeamPageListing", func(t *testing.T) { testGetAllTeamPageListing(t, ss) })
|
||||
t.Run("GetAllPrivateTeamListing", func(t *testing.T) { testGetAllPrivateTeamListing(t, ss) })
|
||||
t.Run("GetAllPrivateTeamPageListing", func(t *testing.T) { testGetAllPrivateTeamPageListing(t, ss) })
|
||||
t.Run("GetAllPublicTeamPageListing", func(t *testing.T) { testGetAllPublicTeamPageListing(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testDelete(t, ss) })
|
||||
t.Run("TeamCount", func(t *testing.T) { testTeamCount(t, ss) })
|
||||
t.Run("TeamPublicCount", func(t *testing.T) { testPublicTeamCount(t, ss) })
|
||||
t.Run("TeamPrivateCount", func(t *testing.T) { testPrivateTeamCount(t, ss) })
|
||||
t.Run("TeamMembers", func(t *testing.T) { testTeamMembers(t, ss) })
|
||||
t.Run("TestGetMembers", func(t *testing.T) { testGetMembers(t, ss) })
|
||||
t.Run("SaveMember", func(t *testing.T) { testTeamSaveMember(t, ss) })
|
||||
t.Run("SaveMultipleMembers", func(t *testing.T) { testTeamSaveMultipleMembers(t, ss) })
|
||||
t.Run("UpdateMember", func(t *testing.T) { testTeamUpdateMember(t, ss) })
|
||||
t.Run("UpdateMultipleMembers", func(t *testing.T) { testTeamUpdateMultipleMembers(t, ss) })
|
||||
t.Run("RemoveMember", func(t *testing.T) { testTeamRemoveMember(t, ss) })
|
||||
t.Run("RemoveMembers", func(t *testing.T) { testTeamRemoveMembers(t, ss) })
|
||||
t.Run("SaveTeamMemberMaxMembers", func(t *testing.T) { testSaveTeamMemberMaxMembers(t, ss) })
|
||||
t.Run("GetTeamMember", func(t *testing.T) { testGetTeamMember(t, ss) })
|
||||
t.Run("GetTeamMembersByIds", func(t *testing.T) { testGetTeamMembersByIds(t, ss) })
|
||||
t.Run("MemberCount", func(t *testing.T) { testTeamStoreMemberCount(t, ss) })
|
||||
t.Run("GetChannelUnreadsForAllTeams", func(t *testing.T) { testGetChannelUnreadsForAllTeams(t, ss) })
|
||||
t.Run("GetChannelUnreadsForTeam", func(t *testing.T) { testGetChannelUnreadsForTeam(t, ss) })
|
||||
t.Run("UpdateLastTeamIconUpdate", func(t *testing.T) { testUpdateLastTeamIconUpdate(t, ss) })
|
||||
t.Run("GetTeamsByScheme", func(t *testing.T) { testGetTeamsByScheme(t, ss) })
|
||||
t.Run("MigrateTeamMembers", func(t *testing.T) { testTeamStoreMigrateTeamMembers(t, ss) })
|
||||
t.Run("ResetAllTeamSchemes", func(t *testing.T) { testResetAllTeamSchemes(t, ss) })
|
||||
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testTeamStoreClearAllCustomRoleAssignments(t, ss) })
|
||||
t.Run("AnalyticsGetTeamCountForScheme", func(t *testing.T) { testTeamStoreAnalyticsGetTeamCountForScheme(t, ss) })
|
||||
t.Run("GetAllForExportAfter", func(t *testing.T) { testTeamStoreGetAllForExportAfter(t, ss) })
|
||||
t.Run("GetTeamMembersForExport", func(t *testing.T) { testTeamStoreGetTeamMembersForExport(t, ss) })
|
||||
t.Run("GetTeamsForUserWithPagination", func(t *testing.T) { testTeamMembersWithPagination(t, ss) })
|
||||
t.Run("GroupSyncedTeamCount", func(t *testing.T) { testGroupSyncedTeamCount(t, ss) })
|
||||
t.Run("GetCommonTeamIDsForMultipleUsers", func(t *testing.T) { testGetCommonTeamIDsForMultipleUsers(t, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testTeamStoreSave(t, rctx, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testTeamStoreUpdate(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testTeamStoreGet(t, rctx, ss) })
|
||||
t.Run("GetMany", func(t *testing.T) { testTeamStoreGetMany(t, rctx, ss) })
|
||||
t.Run("GetByName", func(t *testing.T) { testTeamStoreGetByName(t, rctx, ss) })
|
||||
t.Run("GetByNames", func(t *testing.T) { testTeamStoreGetByNames(t, rctx, ss) })
|
||||
t.Run("SearchAll", func(t *testing.T) { testTeamStoreSearchAll(t, rctx, ss) })
|
||||
t.Run("SearchOpen", func(t *testing.T) { testTeamStoreSearchOpen(t, rctx, ss) })
|
||||
t.Run("SearchPrivate", func(t *testing.T) { testTeamStoreSearchPrivate(t, rctx, ss) })
|
||||
t.Run("GetByInviteId", func(t *testing.T) { testTeamStoreGetByInviteId(t, rctx, ss) })
|
||||
t.Run("ByUserId", func(t *testing.T) { testTeamStoreByUserId(t, rctx, ss) })
|
||||
t.Run("GetAllTeamListing", func(t *testing.T) { testGetAllTeamListing(t, rctx, ss) })
|
||||
t.Run("GetAllTeamPage", func(t *testing.T) { testTeamStoreGetAllPage(t, rctx, ss) })
|
||||
t.Run("GetAllTeamPageListing", func(t *testing.T) { testGetAllTeamPageListing(t, rctx, ss) })
|
||||
t.Run("GetAllPrivateTeamListing", func(t *testing.T) { testGetAllPrivateTeamListing(t, rctx, ss) })
|
||||
t.Run("GetAllPrivateTeamPageListing", func(t *testing.T) { testGetAllPrivateTeamPageListing(t, rctx, ss) })
|
||||
t.Run("GetAllPublicTeamPageListing", func(t *testing.T) { testGetAllPublicTeamPageListing(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testDelete(t, rctx, ss) })
|
||||
t.Run("TeamCount", func(t *testing.T) { testTeamCount(t, rctx, ss) })
|
||||
t.Run("TeamPublicCount", func(t *testing.T) { testPublicTeamCount(t, rctx, ss) })
|
||||
t.Run("TeamPrivateCount", func(t *testing.T) { testPrivateTeamCount(t, rctx, ss) })
|
||||
t.Run("TeamMembers", func(t *testing.T) { testTeamMembers(t, rctx, ss) })
|
||||
t.Run("TestGetMembers", func(t *testing.T) { testGetMembers(t, rctx, ss) })
|
||||
t.Run("SaveMember", func(t *testing.T) { testTeamSaveMember(t, rctx, ss) })
|
||||
t.Run("SaveMultipleMembers", func(t *testing.T) { testTeamSaveMultipleMembers(t, rctx, ss) })
|
||||
t.Run("UpdateMember", func(t *testing.T) { testTeamUpdateMember(t, rctx, ss) })
|
||||
t.Run("UpdateMultipleMembers", func(t *testing.T) { testTeamUpdateMultipleMembers(t, rctx, ss) })
|
||||
t.Run("RemoveMember", func(t *testing.T) { testTeamRemoveMember(t, rctx, ss) })
|
||||
t.Run("RemoveMembers", func(t *testing.T) { testTeamRemoveMembers(t, rctx, ss) })
|
||||
t.Run("SaveTeamMemberMaxMembers", func(t *testing.T) { testSaveTeamMemberMaxMembers(t, rctx, ss) })
|
||||
t.Run("GetTeamMember", func(t *testing.T) { testGetTeamMember(t, rctx, ss) })
|
||||
t.Run("GetTeamMembersByIds", func(t *testing.T) { testGetTeamMembersByIds(t, rctx, ss) })
|
||||
t.Run("MemberCount", func(t *testing.T) { testTeamStoreMemberCount(t, rctx, ss) })
|
||||
t.Run("GetChannelUnreadsForAllTeams", func(t *testing.T) { testGetChannelUnreadsForAllTeams(t, rctx, ss) })
|
||||
t.Run("GetChannelUnreadsForTeam", func(t *testing.T) { testGetChannelUnreadsForTeam(t, rctx, ss) })
|
||||
t.Run("UpdateLastTeamIconUpdate", func(t *testing.T) { testUpdateLastTeamIconUpdate(t, rctx, ss) })
|
||||
t.Run("GetTeamsByScheme", func(t *testing.T) { testGetTeamsByScheme(t, rctx, ss) })
|
||||
t.Run("MigrateTeamMembers", func(t *testing.T) { testTeamStoreMigrateTeamMembers(t, rctx, ss) })
|
||||
t.Run("ResetAllTeamSchemes", func(t *testing.T) { testResetAllTeamSchemes(t, rctx, ss) })
|
||||
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testTeamStoreClearAllCustomRoleAssignments(t, rctx, ss) })
|
||||
t.Run("AnalyticsGetTeamCountForScheme", func(t *testing.T) { testTeamStoreAnalyticsGetTeamCountForScheme(t, rctx, ss) })
|
||||
t.Run("GetAllForExportAfter", func(t *testing.T) { testTeamStoreGetAllForExportAfter(t, rctx, ss) })
|
||||
t.Run("GetTeamMembersForExport", func(t *testing.T) { testTeamStoreGetTeamMembersForExport(t, rctx, ss) })
|
||||
t.Run("GetTeamsForUserWithPagination", func(t *testing.T) { testTeamMembersWithPagination(t, rctx, ss) })
|
||||
t.Run("GroupSyncedTeamCount", func(t *testing.T) { testGroupSyncedTeamCount(t, rctx, 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.DisplayName = "DisplayName"
|
||||
o1.Name = NewTestId()
|
||||
@@ -95,7 +95,7 @@ func testTeamStoreSave(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
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")
|
||||
}
|
||||
|
||||
func testTeamStoreGet(t *testing.T, ss store.Store) {
|
||||
func testTeamStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := model.Team{}
|
||||
o1.DisplayName = "DisplayName"
|
||||
o1.Name = NewTestId()
|
||||
@@ -135,7 +135,7 @@ func testTeamStoreGet(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
DisplayName: "DisplayName",
|
||||
Name: NewTestId(),
|
||||
@@ -166,7 +166,7 @@ func testTeamStoreGetMany(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
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.DisplayName = "DisplayName"
|
||||
o1.Name = NewTestId()
|
||||
@@ -247,8 +247,8 @@ func testTeamStoreGetByName(t *testing.T, ss store.Store) {
|
||||
})
|
||||
}
|
||||
|
||||
func testTeamStoreSearchAll(t *testing.T, ss store.Store) {
|
||||
cleanupTeamStore(t, ss)
|
||||
func testTeamStoreSearchAll(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
cleanupTeamStore(t, rctx, ss)
|
||||
|
||||
o := model.Team{}
|
||||
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.DisplayName = "ADisplayName" + 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.DisplayName = "ADisplayName" + 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.DisplayName = "DisplayName"
|
||||
o1.Name = NewTestId()
|
||||
@@ -667,7 +667,7 @@ func testTeamStoreGetByInviteId(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
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")
|
||||
}
|
||||
|
||||
func testTeamStoreGetAllPage(t *testing.T, ss store.Store) {
|
||||
func testTeamStoreGetAllPage(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o := model.Team{}
|
||||
o.DisplayName = "ADisplayName" + model.NewId()
|
||||
o.Name = "zz" + model.NewId() + "a"
|
||||
@@ -745,7 +745,7 @@ func testTeamStoreGetAllPage(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
o1.Name = NewTestId()
|
||||
@@ -789,7 +789,7 @@ func testGetAllTeamListing(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
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")
|
||||
}
|
||||
|
||||
func testGetAllPrivateTeamListing(t *testing.T, ss store.Store) {
|
||||
func testGetAllPrivateTeamListing(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := model.Team{}
|
||||
o1.DisplayName = "DisplayName"
|
||||
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.DisplayName = "DisplayName"
|
||||
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")
|
||||
}
|
||||
|
||||
func testGetAllPublicTeamPageListing(t *testing.T, ss store.Store) {
|
||||
cleanupTeamStore(t, ss)
|
||||
func testGetAllPublicTeamPageListing(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
cleanupTeamStore(t, rctx, ss)
|
||||
|
||||
o1 := model.Team{}
|
||||
o1.DisplayName = "DisplayName1"
|
||||
@@ -1044,7 +1044,7 @@ func testGetAllPublicTeamPageListing(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "DisplayName"
|
||||
o1.Name = NewTestId()
|
||||
@@ -1066,8 +1066,8 @@ func testDelete(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, r1)
|
||||
}
|
||||
|
||||
func testPublicTeamCount(t *testing.T, ss store.Store) {
|
||||
cleanupTeamStore(t, ss)
|
||||
func testPublicTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
cleanupTeamStore(t, rctx, ss)
|
||||
|
||||
o1 := model.Team{}
|
||||
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")
|
||||
}
|
||||
|
||||
func testPrivateTeamCount(t *testing.T, ss store.Store) {
|
||||
cleanupTeamStore(t, ss)
|
||||
func testPrivateTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
cleanupTeamStore(t, rctx, ss)
|
||||
|
||||
o1 := model.Team{}
|
||||
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")
|
||||
}
|
||||
|
||||
func testTeamCount(t *testing.T, ss store.Store) {
|
||||
func testTeamCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := model.Team{}
|
||||
o1.DisplayName = "DisplayName"
|
||||
o1.Name = NewTestId()
|
||||
@@ -1168,7 +1168,7 @@ func testTeamCount(t *testing.T, ss store.Store) {
|
||||
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.
|
||||
t.Run("Test GetMembers Order By UserID", func(t *testing.T) {
|
||||
teamId1 := model.NewId()
|
||||
@@ -1299,9 +1299,7 @@ func testGetMembers(t *testing.T, ss store.Store) {
|
||||
})
|
||||
}
|
||||
|
||||
func testTeamMembers(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testTeamMembers(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
teamId1 := model.NewId()
|
||||
teamId2 := model.NewId()
|
||||
|
||||
@@ -1321,7 +1319,7 @@ func testTeamMembers(t *testing.T, ss store.Store) {
|
||||
require.Len(t, ms, 1)
|
||||
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.Len(t, ms, 1)
|
||||
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)
|
||||
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.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.Len(t, ms, 1)
|
||||
|
||||
@@ -1362,23 +1360,23 @@ func testTeamMembers(t *testing.T, ss store.Store) {
|
||||
_, err = ss.Team().UpdateMember(m4)
|
||||
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.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.Len(t, ms, 1)
|
||||
|
||||
nErr = ss.Team().RemoveAllMembersByUser(uid)
|
||||
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.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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()})
|
||||
require.NoError(t, err)
|
||||
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()
|
||||
teamId2 := model.NewId()
|
||||
|
||||
@@ -2873,7 +2871,7 @@ func testTeamMembersWithPagination(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
func testGetTeamMember(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testGetTeamMember(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
teamId1 := 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)
|
||||
|
||||
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.Equal(t, rm1.TeamId, m1.TeamId, "bad team 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")
|
||||
|
||||
_, err = ss.Team().GetMember(c, "", m1.UserId)
|
||||
_, err = ss.Team().GetMember(rctx, "", m1.UserId)
|
||||
require.Error(t, err, "empty team id - should have failed")
|
||||
|
||||
// Test with a custom team scheme.
|
||||
@@ -3025,7 +3021,7 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
|
||||
_, nErr = ss.Team().SaveMember(m2, -1)
|
||||
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)
|
||||
t.Log(m3)
|
||||
|
||||
@@ -3035,13 +3031,13 @@ func testGetTeamMember(t *testing.T, ss store.Store) {
|
||||
_, nErr = ss.Team().SaveMember(m4, -1)
|
||||
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)
|
||||
|
||||
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()
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testTeamStoreMemberCount(t *testing.T, ss store.Store) {
|
||||
func testTeamStoreMemberCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := &model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
_, 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")
|
||||
}
|
||||
|
||||
func testGetChannelUnreadsForAllTeams(t *testing.T, ss store.Store) {
|
||||
func testGetChannelUnreadsForAllTeams(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
teamId1 := model.NewId()
|
||||
teamId2 := model.NewId()
|
||||
|
||||
@@ -3171,7 +3167,7 @@ func testGetChannelUnreadsForAllTeams(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
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
|
||||
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")
|
||||
}
|
||||
|
||||
func testGetTeamsByScheme(t *testing.T, ss store.Store) {
|
||||
func testGetTeamsByScheme(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
// Create some schemes.
|
||||
s1 := &model.Scheme{
|
||||
DisplayName: NewTestId(),
|
||||
@@ -3295,9 +3291,7 @@ func testGetTeamsByScheme(t *testing.T, ss store.Store) {
|
||||
assert.Empty(t, d)
|
||||
}
|
||||
|
||||
func testTeamStoreMigrateTeamMembers(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testTeamStoreMigrateTeamMembers(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
s1 := model.NewId()
|
||||
t1 := &model.Team{
|
||||
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.Equal(t, "", tm1b.ExplicitRoles)
|
||||
assert.True(t, tm1b.SchemeUser)
|
||||
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.Equal(t, "", tm2b.ExplicitRoles)
|
||||
assert.True(t, tm2b.SchemeUser)
|
||||
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.Equal(t, "something_else", tm3b.ExplicitRoles)
|
||||
assert.False(t, tm3b.SchemeUser)
|
||||
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{
|
||||
Name: NewTestId(),
|
||||
DisplayName: NewTestId(),
|
||||
@@ -3413,9 +3407,7 @@ func testResetAllTeamSchemes(t *testing.T, ss store.Store) {
|
||||
assert.Equal(t, "", *t2.SchemeId)
|
||||
}
|
||||
|
||||
func testTeamStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testTeamStoreClearAllCustomRoleAssignments(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
m1 := &model.TeamMember{
|
||||
TeamId: model.NewId(),
|
||||
UserId: model.NewId(),
|
||||
@@ -3442,24 +3434,24 @@ func testTeamStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) {
|
||||
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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{
|
||||
DisplayName: NewTestId(),
|
||||
Name: NewTestId(),
|
||||
@@ -3530,7 +3522,7 @@ func testTeamStoreAnalyticsGetTeamCountForScheme(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "Name"
|
||||
t1.Name = NewTestId()
|
||||
@@ -3554,7 +3546,7 @@ func testTeamStoreGetAllForExportAfter(t *testing.T, ss store.Store) {
|
||||
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.DisplayName = "Name"
|
||||
t1.Name = NewTestId()
|
||||
@@ -3591,7 +3583,7 @@ func testTeamStoreGetTeamMembersForExport(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
DisplayName: NewTestId(),
|
||||
Name: NewTestId(),
|
||||
@@ -3627,7 +3619,7 @@ func testGroupSyncedTeamCount(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
// Team 1
|
||||
|
||||
@@ -10,13 +10,14 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestTermsOfServiceStore(t *testing.T, ss store.Store) {
|
||||
t.Run("TestSaveTermsOfService", func(t *testing.T) { testSaveTermsOfService(t, ss) })
|
||||
t.Run("TestGetLatestTermsOfService", func(t *testing.T) { testGetLatestTermsOfService(t, ss) })
|
||||
t.Run("TestGetTermsOfService", func(t *testing.T) { testGetTermsOfService(t, ss) })
|
||||
func TestTermsOfServiceStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("TestSaveTermsOfService", func(t *testing.T) { testSaveTermsOfService(t, rctx, ss) })
|
||||
t.Run("TestGetLatestTermsOfService", func(t *testing.T) { testGetLatestTermsOfService(t, rctx, ss) })
|
||||
t.Run("TestGetTermsOfService", func(t *testing.T) { testGetTermsOfService(t, rctx, ss) })
|
||||
}
|
||||
|
||||
func cleanUpTOS(ss store.Store) {
|
||||
@@ -29,7 +30,7 @@ func cleanUpTOS(ss store.Store) {
|
||||
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) })
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testGetLatestTermsOfService(t *testing.T, ss store.Store) {
|
||||
func testGetLatestTermsOfService(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Cleanup(func() { cleanUpTOS(ss) })
|
||||
|
||||
u1 := model.User{}
|
||||
@@ -68,7 +69,7 @@ func testGetLatestTermsOfService(t *testing.T, ss store.Store) {
|
||||
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) })
|
||||
|
||||
u1 := model.User{}
|
||||
|
||||
@@ -13,25 +13,26 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestThreadStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("ThreadStorePopulation", func(t *testing.T) { testThreadStorePopulation(t, ss) })
|
||||
func TestThreadStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("ThreadStorePopulation", func(t *testing.T) { testThreadStorePopulation(t, rctx, ss) })
|
||||
t.Run("ThreadStorePermanentDeleteBatchForRetentionPolicies", func(t *testing.T) {
|
||||
testThreadStorePermanentDeleteBatchForRetentionPolicies(t, ss)
|
||||
testThreadStorePermanentDeleteBatchForRetentionPolicies(t, rctx, ss)
|
||||
})
|
||||
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("GetVarious", func(t *testing.T) { testVarious(t, ss) })
|
||||
t.Run("MarkAllAsReadByChannels", func(t *testing.T) { testMarkAllAsReadByChannels(t, ss) })
|
||||
t.Run("MarkAllAsReadByTeam", func(t *testing.T) { testMarkAllAsReadByTeam(t, ss) })
|
||||
t.Run("DeleteMembershipsForChannel", func(t *testing.T) { testDeleteMembershipsForChannel(t, ss) })
|
||||
t.Run("GetTeamsUnreadForUser", func(t *testing.T) { testGetTeamsUnreadForUser(t, rctx, ss) })
|
||||
t.Run("GetVarious", func(t *testing.T) { testVarious(t, rctx, ss) })
|
||||
t.Run("MarkAllAsReadByChannels", func(t *testing.T) { testMarkAllAsReadByChannels(t, rctx, ss) })
|
||||
t.Run("MarkAllAsReadByTeam", func(t *testing.T) { testMarkAllAsReadByTeam(t, rctx, 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 {
|
||||
u1 := model.User{
|
||||
Email: MakeEmail(),
|
||||
@@ -490,7 +491,7 @@ func threadStoreCreateReply(t *testing.T, ss store.Store, channelID, postID, use
|
||||
return reply
|
||||
}
|
||||
|
||||
func testThreadStorePermanentDeleteBatchForRetentionPolicies(t *testing.T, ss store.Store) {
|
||||
func testThreadStorePermanentDeleteBatchForRetentionPolicies(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
const limit = 1000
|
||||
team, err := ss.Team().Save(&model.Team{
|
||||
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")
|
||||
}
|
||||
|
||||
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
|
||||
userID := model.NewId()
|
||||
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")
|
||||
}
|
||||
|
||||
func testGetTeamsUnreadForUser(t *testing.T, ss store.Store) {
|
||||
func testGetTeamsUnreadForUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
userID := model.NewId()
|
||||
createThreadMembership := func(userID, postID string) {
|
||||
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) 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) {
|
||||
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()
|
||||
userAID := 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) {
|
||||
t.Helper()
|
||||
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()) {
|
||||
t.Helper()
|
||||
opts := store.ThreadMembershipOpts{
|
||||
|
||||
@@ -10,14 +10,15 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestTokensStore(t *testing.T, ss store.Store) {
|
||||
t.Run("TokensCleanup", func(t *testing.T) { testTokensCleanup(t, ss) })
|
||||
func TestTokensStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
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()
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
|
||||
@@ -10,17 +10,18 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"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/utils"
|
||||
)
|
||||
|
||||
func TestTrueUpReviewStatusStore(t *testing.T, ss store.Store, s SqlStore) {
|
||||
t.Run("CreateTrueUpReviewStatusRecord", func(t *testing.T) { testCreateTrueUpReviewStatus(t, ss) })
|
||||
t.Run("GetTrueUpReviewStatus", func(t *testing.T) { testGetTrueUpReviewStatus(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testUpdateTrueUpReviewStatus(t, ss) })
|
||||
func TestTrueUpReviewStatusStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) {
|
||||
t.Run("CreateTrueUpReviewStatusRecord", func(t *testing.T) { testCreateTrueUpReviewStatus(t, rctx, ss) })
|
||||
t.Run("GetTrueUpReviewStatus", func(t *testing.T) { testGetTrueUpReviewStatus(t, rctx, 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)
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
reviewStatus := model.TrueUpReviewStatus{
|
||||
|
||||
@@ -14,16 +14,14 @@ import (
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestUploadSessionStore(t *testing.T, ss store.Store) {
|
||||
t.Run("UploadSessionStoreSaveGet", func(t *testing.T) { testUploadSessionStoreSaveGet(t, ss) })
|
||||
t.Run("UploadSessionStoreUpdate", func(t *testing.T) { testUploadSessionStoreUpdate(t, ss) })
|
||||
t.Run("UploadSessionStoreGetForUser", func(t *testing.T) { testUploadSessionStoreGetForUser(t, ss) })
|
||||
t.Run("UploadSessionStoreDelete", func(t *testing.T) { testUploadSessionStoreDelete(t, ss) })
|
||||
func TestUploadSessionStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("UploadSessionStoreSaveGet", func(t *testing.T) { testUploadSessionStoreSaveGet(t, rctx, ss) })
|
||||
t.Run("UploadSessionStoreUpdate", func(t *testing.T) { testUploadSessionStoreUpdate(t, rctx, ss) })
|
||||
t.Run("UploadSessionStoreGetForUser", func(t *testing.T) { testUploadSessionStoreGetForUser(t, rctx, ss) })
|
||||
t.Run("UploadSessionStoreDelete", func(t *testing.T) { testUploadSessionStoreDelete(t, rctx, ss) })
|
||||
}
|
||||
|
||||
func testUploadSessionStoreSaveGet(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUploadSessionStoreSaveGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
var session *model.UploadSession
|
||||
|
||||
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) {
|
||||
us, err := ss.UploadSession().Get(c, "fake")
|
||||
us, err := ss.UploadSession().Get(rctx, "fake")
|
||||
require.Error(t, err)
|
||||
require.Nil(t, us)
|
||||
})
|
||||
|
||||
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.NotNil(t, us)
|
||||
require.Equal(t, session, us)
|
||||
})
|
||||
}
|
||||
|
||||
func testUploadSessionStoreUpdate(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUploadSessionStoreUpdate(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
session := &model.UploadSession{
|
||||
Type: model.UploadTypeAttachment,
|
||||
UserId: model.NewId(),
|
||||
@@ -105,14 +101,14 @@ func testUploadSessionStoreUpdate(t *testing.T, ss store.Store) {
|
||||
err = ss.UploadSession().Update(us)
|
||||
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.NotNil(t, us)
|
||||
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()
|
||||
|
||||
sessions := []*model.UploadSession{
|
||||
@@ -179,9 +175,7 @@ func testUploadSessionStoreGetForUser(t *testing.T, ss store.Store) {
|
||||
})
|
||||
}
|
||||
|
||||
func testUploadSessionStoreDelete(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUploadSessionStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
session := &model.UploadSession{
|
||||
Id: model.NewId(),
|
||||
Type: model.UploadTypeAttachment,
|
||||
@@ -206,7 +200,7 @@ func testUploadSessionStoreDelete(t *testing.T, ss store.Store) {
|
||||
err = ss.UploadSession().Delete(session.Id)
|
||||
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.Nil(t, us)
|
||||
require.IsType(t, &store.ErrNotFound{}, err)
|
||||
|
||||
@@ -13,15 +13,13 @@ import (
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestUserAccessTokenStore(t *testing.T, ss store.Store) {
|
||||
t.Run("UserAccessTokenSaveGetDelete", func(t *testing.T) { testUserAccessTokenSaveGetDelete(t, ss) })
|
||||
t.Run("UserAccessTokenDisableEnable", func(t *testing.T) { testUserAccessTokenDisableEnable(t, ss) })
|
||||
t.Run("UserAccessTokenSearch", func(t *testing.T) { testUserAccessTokenSearch(t, ss) })
|
||||
func TestUserAccessTokenStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("UserAccessTokenSaveGetDelete", func(t *testing.T) { testUserAccessTokenSaveGetDelete(t, rctx, ss) })
|
||||
t.Run("UserAccessTokenDisableEnable", func(t *testing.T) { testUserAccessTokenDisableEnable(t, rctx, ss) })
|
||||
t.Run("UserAccessTokenSearch", func(t *testing.T) { testUserAccessTokenSearch(t, rctx, ss) })
|
||||
}
|
||||
|
||||
func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUserAccessTokenSaveGetDelete(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
uat := &model.UserAccessToken{
|
||||
Token: model.NewId(),
|
||||
UserId: model.NewId(),
|
||||
@@ -32,7 +30,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
|
||||
s1.UserId = uat.UserId
|
||||
s1.Token = uat.Token
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, nErr := ss.UserAccessToken().Save(uat)
|
||||
@@ -60,7 +58,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
|
||||
nErr = ss.UserAccessToken().Delete(uat.Id)
|
||||
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")
|
||||
|
||||
_, nErr = ss.UserAccessToken().GetByToken(s1.Token)
|
||||
@@ -70,7 +68,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
|
||||
s2.UserId = uat.UserId
|
||||
s2.Token = uat.Token
|
||||
|
||||
s2, err = ss.Session().Save(c, s2)
|
||||
s2, err = ss.Session().Save(rctx, s2)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, nErr = ss.UserAccessToken().Save(uat)
|
||||
@@ -79,16 +77,14 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
|
||||
nErr = ss.UserAccessToken().DeleteAllForUser(uat.UserId)
|
||||
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")
|
||||
|
||||
_, nErr = ss.UserAccessToken().GetByToken(s2.Token)
|
||||
require.Error(t, nErr, "should error - access token should be deleted")
|
||||
}
|
||||
|
||||
func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUserAccessTokenDisableEnable(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
uat := &model.UserAccessToken{
|
||||
Token: model.NewId(),
|
||||
UserId: model.NewId(),
|
||||
@@ -99,7 +95,7 @@ func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
|
||||
s1.UserId = uat.UserId
|
||||
s1.Token = uat.Token
|
||||
|
||||
s1, err := ss.Session().Save(c, s1)
|
||||
s1, err := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, nErr := ss.UserAccessToken().Save(uat)
|
||||
@@ -108,23 +104,21 @@ func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
|
||||
nErr = ss.UserAccessToken().UpdateTokenDisable(uat.Id)
|
||||
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")
|
||||
|
||||
s2 := &model.Session{}
|
||||
s2.UserId = uat.UserId
|
||||
s2.Token = uat.Token
|
||||
|
||||
_, err = ss.Session().Save(c, s2)
|
||||
_, err = ss.Session().Save(rctx, s2)
|
||||
require.NoError(t, err)
|
||||
|
||||
nErr = ss.UserAccessToken().UpdateTokenEnable(uat.Id)
|
||||
require.NoError(t, nErr)
|
||||
}
|
||||
|
||||
func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUserAccessTokenSearch(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
u1.Username = model.NewId()
|
||||
@@ -142,7 +136,7 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
|
||||
s1.UserId = uat.UserId
|
||||
s1.Token = uat.Token
|
||||
|
||||
_, nErr := ss.Session().Save(c, s1)
|
||||
_, nErr := ss.Session().Save(rctx, s1)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
_, nErr = ss.UserAccessToken().Save(uat)
|
||||
|
||||
@@ -28,7 +28,7 @@ func cleanupStatusStore(t *testing.T, s SqlStore) {
|
||||
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()
|
||||
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)
|
||||
}
|
||||
|
||||
t.Run("IsEmpty", func(t *testing.T) { testIsEmpty(t, ss) })
|
||||
t.Run("Count", func(t *testing.T) { testCount(t, ss) })
|
||||
t.Run("AnalyticsActiveCount", func(t *testing.T) { testUserStoreAnalyticsActiveCount(t, ss, s) })
|
||||
t.Run("AnalyticsActiveCountForPeriod", func(t *testing.T) { testUserStoreAnalyticsActiveCountForPeriod(t, ss, s) })
|
||||
t.Run("AnalyticsGetInactiveUsersCount", func(t *testing.T) { testUserStoreAnalyticsGetInactiveUsersCount(t, ss) })
|
||||
t.Run("AnalyticsGetSystemAdminCount", func(t *testing.T) { testUserStoreAnalyticsGetSystemAdminCount(t, ss) })
|
||||
t.Run("AnalyticsGetGuestCount", func(t *testing.T) { testUserStoreAnalyticsGetGuestCount(t, ss) })
|
||||
t.Run("AnalyticsGetExternalUsers", func(t *testing.T) { testUserStoreAnalyticsGetExternalUsers(t, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testUserStoreSave(t, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testUserStoreUpdate(t, ss) })
|
||||
t.Run("UpdateUpdateAt", func(t *testing.T) { testUserStoreUpdateUpdateAt(t, ss) })
|
||||
t.Run("UpdateFailedPasswordAttempts", func(t *testing.T) { testUserStoreUpdateFailedPasswordAttempts(t, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testUserStoreGet(t, ss) })
|
||||
t.Run("GetAllUsingAuthService", func(t *testing.T) { testGetAllUsingAuthService(t, ss) })
|
||||
t.Run("GetAllProfiles", func(t *testing.T) { testUserStoreGetAllProfiles(t, ss) })
|
||||
t.Run("GetProfiles", func(t *testing.T) { testUserStoreGetProfiles(t, ss) })
|
||||
t.Run("GetProfilesInChannel", func(t *testing.T) { testUserStoreGetProfilesInChannel(t, ss) })
|
||||
t.Run("GetProfilesInChannelByStatus", func(t *testing.T) { testUserStoreGetProfilesInChannelByStatus(t, ss, s) })
|
||||
t.Run("GetProfilesInChannelByAdmin", func(t *testing.T) { testUserStoreGetProfilesInChannelByAdmin(t, ss, s) })
|
||||
t.Run("GetProfilesWithoutTeam", func(t *testing.T) { testUserStoreGetProfilesWithoutTeam(t, ss) })
|
||||
t.Run("GetAllProfilesInChannel", func(t *testing.T) { testUserStoreGetAllProfilesInChannel(t, ss) })
|
||||
t.Run("GetProfilesNotInChannel", func(t *testing.T) { testUserStoreGetProfilesNotInChannel(t, ss) })
|
||||
t.Run("GetProfilesByIds", func(t *testing.T) { testUserStoreGetProfilesByIds(t, ss) })
|
||||
t.Run("GetProfileByGroupChannelIdsForUser", func(t *testing.T) { testUserStoreGetProfileByGroupChannelIdsForUser(t, ss) })
|
||||
t.Run("GetProfilesByUsernames", func(t *testing.T) { testUserStoreGetProfilesByUsernames(t, ss) })
|
||||
t.Run("GetSystemAdminProfiles", func(t *testing.T) { testUserStoreGetSystemAdminProfiles(t, ss) })
|
||||
t.Run("GetByEmail", func(t *testing.T) { testUserStoreGetByEmail(t, ss) })
|
||||
t.Run("GetByAuthData", func(t *testing.T) { testUserStoreGetByAuthData(t, ss) })
|
||||
t.Run("GetByUsername", func(t *testing.T) { testUserStoreGetByUsername(t, ss) })
|
||||
t.Run("GetForLogin", func(t *testing.T) { testUserStoreGetForLogin(t, ss) })
|
||||
t.Run("UpdatePassword", func(t *testing.T) { testUserStoreUpdatePassword(t, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testUserStoreDelete(t, ss) })
|
||||
t.Run("UpdateAuthData", func(t *testing.T) { testUserStoreUpdateAuthData(t, ss) })
|
||||
t.Run("ResetAuthDataToEmailForUsers", func(t *testing.T) { testUserStoreResetAuthDataToEmailForUsers(t, ss) })
|
||||
t.Run("UserUnreadCount", func(t *testing.T) { testUserUnreadCount(t, ss) })
|
||||
t.Run("UpdateMfaSecret", func(t *testing.T) { testUserStoreUpdateMfaSecret(t, ss) })
|
||||
t.Run("UpdateMfaActive", func(t *testing.T) { testUserStoreUpdateMfaActive(t, ss) })
|
||||
t.Run("GetRecentlyActiveUsersForTeam", func(t *testing.T) { testUserStoreGetRecentlyActiveUsersForTeam(t, ss, s) })
|
||||
t.Run("GetNewUsersForTeam", func(t *testing.T) { testUserStoreGetNewUsersForTeam(t, ss) })
|
||||
t.Run("Search", func(t *testing.T) { testUserStoreSearch(t, ss) })
|
||||
t.Run("SearchNotInChannel", func(t *testing.T) { testUserStoreSearchNotInChannel(t, ss) })
|
||||
t.Run("SearchInChannel", func(t *testing.T) { testUserStoreSearchInChannel(t, ss) })
|
||||
t.Run("SearchNotInTeam", func(t *testing.T) { testUserStoreSearchNotInTeam(t, ss) })
|
||||
t.Run("SearchWithoutTeam", func(t *testing.T) { testUserStoreSearchWithoutTeam(t, ss) })
|
||||
t.Run("SearchInGroup", func(t *testing.T) { testUserStoreSearchInGroup(t, ss) })
|
||||
t.Run("SearchNotInGroup", func(t *testing.T) { testUserStoreSearchNotInGroup(t, ss) })
|
||||
t.Run("GetProfilesNotInTeam", func(t *testing.T) { testUserStoreGetProfilesNotInTeam(t, ss) })
|
||||
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testUserStoreClearAllCustomRoleAssignments(t, ss) })
|
||||
t.Run("GetAllAfter", func(t *testing.T) { testUserStoreGetAllAfter(t, ss) })
|
||||
t.Run("GetUsersBatchForIndexing", func(t *testing.T) { testUserStoreGetUsersBatchForIndexing(t, ss) })
|
||||
t.Run("GetTeamGroupUsers", func(t *testing.T) { testUserStoreGetTeamGroupUsers(t, ss) })
|
||||
t.Run("GetChannelGroupUsers", func(t *testing.T) { testUserStoreGetChannelGroupUsers(t, ss) })
|
||||
t.Run("PromoteGuestToUser", func(t *testing.T) { testUserStorePromoteGuestToUser(t, ss) })
|
||||
t.Run("DemoteUserToGuest", func(t *testing.T) { testUserStoreDemoteUserToGuest(t, ss) })
|
||||
t.Run("DeactivateGuests", func(t *testing.T) { testDeactivateGuests(t, ss) })
|
||||
t.Run("ResetLastPictureUpdate", func(t *testing.T) { testUserStoreResetLastPictureUpdate(t, ss) })
|
||||
t.Run("GetKnownUsers", func(t *testing.T) { testGetKnownUsers(t, ss) })
|
||||
t.Run("GetUsersWithInvalidEmails", func(t *testing.T) { testGetUsersWithInvalidEmails(t, ss) })
|
||||
t.Run("UpdateLastLogin", func(t *testing.T) { testUpdateLastLogin(t, ss) })
|
||||
t.Run("IsEmpty", func(t *testing.T) { testIsEmpty(t, rctx, ss) })
|
||||
t.Run("Count", func(t *testing.T) { testCount(t, rctx, ss) })
|
||||
t.Run("AnalyticsActiveCount", func(t *testing.T) { testUserStoreAnalyticsActiveCount(t, rctx, ss, s) })
|
||||
t.Run("AnalyticsActiveCountForPeriod", func(t *testing.T) { testUserStoreAnalyticsActiveCountForPeriod(t, rctx, ss, s) })
|
||||
t.Run("AnalyticsGetInactiveUsersCount", func(t *testing.T) { testUserStoreAnalyticsGetInactiveUsersCount(t, rctx, ss) })
|
||||
t.Run("AnalyticsGetSystemAdminCount", func(t *testing.T) { testUserStoreAnalyticsGetSystemAdminCount(t, rctx, ss) })
|
||||
t.Run("AnalyticsGetGuestCount", func(t *testing.T) { testUserStoreAnalyticsGetGuestCount(t, rctx, ss) })
|
||||
t.Run("AnalyticsGetExternalUsers", func(t *testing.T) { testUserStoreAnalyticsGetExternalUsers(t, rctx, ss) })
|
||||
t.Run("Save", func(t *testing.T) { testUserStoreSave(t, rctx, ss) })
|
||||
t.Run("Update", func(t *testing.T) { testUserStoreUpdate(t, rctx, ss) })
|
||||
t.Run("UpdateUpdateAt", func(t *testing.T) { testUserStoreUpdateUpdateAt(t, rctx, ss) })
|
||||
t.Run("UpdateFailedPasswordAttempts", func(t *testing.T) { testUserStoreUpdateFailedPasswordAttempts(t, rctx, ss) })
|
||||
t.Run("Get", func(t *testing.T) { testUserStoreGet(t, rctx, ss) })
|
||||
t.Run("GetAllUsingAuthService", func(t *testing.T) { testGetAllUsingAuthService(t, rctx, ss) })
|
||||
t.Run("GetAllProfiles", func(t *testing.T) { testUserStoreGetAllProfiles(t, rctx, ss) })
|
||||
t.Run("GetProfiles", func(t *testing.T) { testUserStoreGetProfiles(t, rctx, ss) })
|
||||
t.Run("GetProfilesInChannel", func(t *testing.T) { testUserStoreGetProfilesInChannel(t, rctx, ss) })
|
||||
t.Run("GetProfilesInChannelByStatus", func(t *testing.T) { testUserStoreGetProfilesInChannelByStatus(t, rctx, ss, s) })
|
||||
t.Run("GetProfilesInChannelByAdmin", func(t *testing.T) { testUserStoreGetProfilesInChannelByAdmin(t, rctx, ss, s) })
|
||||
t.Run("GetProfilesWithoutTeam", func(t *testing.T) { testUserStoreGetProfilesWithoutTeam(t, rctx, ss) })
|
||||
t.Run("GetAllProfilesInChannel", func(t *testing.T) { testUserStoreGetAllProfilesInChannel(t, rctx, ss) })
|
||||
t.Run("GetProfilesNotInChannel", func(t *testing.T) { testUserStoreGetProfilesNotInChannel(t, rctx, ss) })
|
||||
t.Run("GetProfilesByIds", func(t *testing.T) { testUserStoreGetProfilesByIds(t, rctx, ss) })
|
||||
t.Run("GetProfileByGroupChannelIdsForUser", func(t *testing.T) { testUserStoreGetProfileByGroupChannelIdsForUser(t, rctx, ss) })
|
||||
t.Run("GetProfilesByUsernames", func(t *testing.T) { testUserStoreGetProfilesByUsernames(t, rctx, ss) })
|
||||
t.Run("GetSystemAdminProfiles", func(t *testing.T) { testUserStoreGetSystemAdminProfiles(t, rctx, ss) })
|
||||
t.Run("GetByEmail", func(t *testing.T) { testUserStoreGetByEmail(t, rctx, ss) })
|
||||
t.Run("GetByAuthData", func(t *testing.T) { testUserStoreGetByAuthData(t, rctx, ss) })
|
||||
t.Run("GetByUsername", func(t *testing.T) { testUserStoreGetByUsername(t, rctx, ss) })
|
||||
t.Run("GetForLogin", func(t *testing.T) { testUserStoreGetForLogin(t, rctx, ss) })
|
||||
t.Run("UpdatePassword", func(t *testing.T) { testUserStoreUpdatePassword(t, rctx, ss) })
|
||||
t.Run("Delete", func(t *testing.T) { testUserStoreDelete(t, rctx, ss) })
|
||||
t.Run("UpdateAuthData", func(t *testing.T) { testUserStoreUpdateAuthData(t, rctx, ss) })
|
||||
t.Run("ResetAuthDataToEmailForUsers", func(t *testing.T) { testUserStoreResetAuthDataToEmailForUsers(t, rctx, ss) })
|
||||
t.Run("UserUnreadCount", func(t *testing.T) { testUserUnreadCount(t, rctx, ss) })
|
||||
t.Run("UpdateMfaSecret", func(t *testing.T) { testUserStoreUpdateMfaSecret(t, rctx, ss) })
|
||||
t.Run("UpdateMfaActive", func(t *testing.T) { testUserStoreUpdateMfaActive(t, rctx, ss) })
|
||||
t.Run("GetRecentlyActiveUsersForTeam", func(t *testing.T) { testUserStoreGetRecentlyActiveUsersForTeam(t, rctx, ss, s) })
|
||||
t.Run("GetNewUsersForTeam", func(t *testing.T) { testUserStoreGetNewUsersForTeam(t, rctx, ss) })
|
||||
t.Run("Search", func(t *testing.T) { testUserStoreSearch(t, rctx, ss) })
|
||||
t.Run("SearchNotInChannel", func(t *testing.T) { testUserStoreSearchNotInChannel(t, rctx, ss) })
|
||||
t.Run("SearchInChannel", func(t *testing.T) { testUserStoreSearchInChannel(t, rctx, ss) })
|
||||
t.Run("SearchNotInTeam", func(t *testing.T) { testUserStoreSearchNotInTeam(t, rctx, ss) })
|
||||
t.Run("SearchWithoutTeam", func(t *testing.T) { testUserStoreSearchWithoutTeam(t, rctx, ss) })
|
||||
t.Run("SearchInGroup", func(t *testing.T) { testUserStoreSearchInGroup(t, rctx, ss) })
|
||||
t.Run("SearchNotInGroup", func(t *testing.T) { testUserStoreSearchNotInGroup(t, rctx, ss) })
|
||||
t.Run("GetProfilesNotInTeam", func(t *testing.T) { testUserStoreGetProfilesNotInTeam(t, rctx, ss) })
|
||||
t.Run("ClearAllCustomRoleAssignments", func(t *testing.T) { testUserStoreClearAllCustomRoleAssignments(t, rctx, ss) })
|
||||
t.Run("GetAllAfter", func(t *testing.T) { testUserStoreGetAllAfter(t, rctx, ss) })
|
||||
t.Run("GetUsersBatchForIndexing", func(t *testing.T) { testUserStoreGetUsersBatchForIndexing(t, rctx, ss) })
|
||||
t.Run("GetTeamGroupUsers", func(t *testing.T) { testUserStoreGetTeamGroupUsers(t, rctx, ss) })
|
||||
t.Run("GetChannelGroupUsers", func(t *testing.T) { testUserStoreGetChannelGroupUsers(t, rctx, ss) })
|
||||
t.Run("PromoteGuestToUser", func(t *testing.T) { testUserStorePromoteGuestToUser(t, rctx, ss) })
|
||||
t.Run("DemoteUserToGuest", func(t *testing.T) { testUserStoreDemoteUserToGuest(t, rctx, ss) })
|
||||
t.Run("DeactivateGuests", func(t *testing.T) { testDeactivateGuests(t, rctx, ss) })
|
||||
t.Run("ResetLastPictureUpdate", func(t *testing.T) { testUserStoreResetLastPictureUpdate(t, rctx, ss) })
|
||||
t.Run("GetKnownUsers", func(t *testing.T) { testGetKnownUsers(t, rctx, ss) })
|
||||
t.Run("GetUsersWithInvalidEmails", func(t *testing.T) { testGetUsersWithInvalidEmails(t, rctx, 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()
|
||||
maxUsersPerTeam := 50
|
||||
|
||||
@@ -170,7 +170,7 @@ func testUserStoreSave(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
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")
|
||||
}
|
||||
|
||||
func testUserStoreUpdateUpdateAt(t *testing.T, ss store.Store) {
|
||||
func testUserStoreUpdateUpdateAt(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := &model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
_, 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")
|
||||
}
|
||||
|
||||
func testUserStoreUpdateFailedPasswordAttempts(t *testing.T, ss store.Store) {
|
||||
func testUserStoreUpdateFailedPasswordAttempts(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := &model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
_, 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")
|
||||
}
|
||||
|
||||
func testUserStoreGet(t *testing.T, ss store.Store) {
|
||||
func testUserStoreGet(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := &model.User{
|
||||
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()
|
||||
|
||||
u1, err := ss.User().Save(&model.User{
|
||||
@@ -413,7 +413,7 @@ func sanitized(user *model.User) *model.User {
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
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()
|
||||
|
||||
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()
|
||||
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
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()
|
||||
|
||||
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()
|
||||
|
||||
u1, err := ss.User().Save(&model.User{
|
||||
@@ -1468,7 +1468,7 @@ func testUserStoreGetAllProfilesInChannel(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
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()
|
||||
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
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()
|
||||
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()
|
||||
|
||||
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()
|
||||
|
||||
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()
|
||||
auth1 := 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()
|
||||
|
||||
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()
|
||||
auth := 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()
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testUserStoreDelete(t *testing.T, ss store.Store) {
|
||||
func testUserStoreDelete(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := &model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
_, err := ss.User().Save(u1)
|
||||
@@ -2314,7 +2314,7 @@ func testUserStoreDelete(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testUserStoreResetAuthDataToEmailForUsers(t *testing.T, ss store.Store) {
|
||||
func testUserStoreResetAuthDataToEmailForUsers(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
user := &model.User{}
|
||||
user.Username = "user1" + model.NewId()
|
||||
user.Email = MakeEmail()
|
||||
@@ -2387,7 +2387,7 @@ func testUserStoreResetAuthDataToEmailForUsers(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testUserStoreUpdateMfaSecret(t *testing.T, ss store.Store) {
|
||||
func testUserStoreUpdateMfaSecret(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
_, err := ss.User().Save(&u1)
|
||||
@@ -2532,7 +2532,7 @@ func testUserStoreUpdateMfaSecret(t *testing.T, ss store.Store) {
|
||||
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.Email = MakeEmail()
|
||||
_, err := ss.User().Save(&u1)
|
||||
@@ -2552,7 +2552,7 @@ func testUserStoreUpdateMfaActive(t *testing.T, ss store.Store) {
|
||||
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)
|
||||
|
||||
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()
|
||||
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{
|
||||
Username: "jimbo1" + model.NewId(),
|
||||
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{
|
||||
Username: "jimbo1" + model.NewId(),
|
||||
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{
|
||||
Username: "jimbo1" + model.NewId(),
|
||||
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{
|
||||
Username: "jimbo1" + model.NewId(),
|
||||
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{
|
||||
Username: "jimbo1" + model.NewId(),
|
||||
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{
|
||||
Username: "jimbo1" + model.NewId(),
|
||||
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{
|
||||
Username: "jimbo1" + model.NewId(),
|
||||
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
|
||||
teamId := 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)
|
||||
|
||||
// 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)
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
// 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)
|
||||
}
|
||||
|
||||
func testUserStoreAnalyticsGetInactiveUsersCount(t *testing.T, ss store.Store) {
|
||||
func testUserStoreAnalyticsGetInactiveUsersCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
u1 := &model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
_, 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.")
|
||||
}
|
||||
|
||||
func testUserStoreAnalyticsGetSystemAdminCount(t *testing.T, ss store.Store) {
|
||||
func testUserStoreAnalyticsGetSystemAdminCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
countBefore, err := ss.User().AnalyticsGetSystemAdminCount()
|
||||
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.")
|
||||
}
|
||||
|
||||
func testUserStoreAnalyticsGetGuestCount(t *testing.T, ss store.Store) {
|
||||
func testUserStoreAnalyticsGetGuestCount(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
countBefore, err := ss.User().AnalyticsGetGuestCount()
|
||||
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.")
|
||||
}
|
||||
|
||||
func testUserStoreAnalyticsGetExternalUsers(t *testing.T, ss store.Store) {
|
||||
func testUserStoreAnalyticsGetExternalUsers(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
localHostDomain := "mattermost.com"
|
||||
result, err := ss.User().AnalyticsGetExternalUsers(localHostDomain)
|
||||
require.NoError(t, err)
|
||||
@@ -4555,7 +4555,7 @@ func testUserStoreAnalyticsGetExternalUsers(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
DisplayName: "Team",
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
Username: model.NewId(),
|
||||
@@ -4815,7 +4815,7 @@ func testUserStoreClearAllCustomRoleAssignments(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Email: MakeEmail(),
|
||||
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
|
||||
t1, err := ss.Team().Save(&model.Team{
|
||||
DisplayName: "Team1",
|
||||
@@ -5001,7 +5001,7 @@ func testUserStoreGetUsersBatchForIndexing(t *testing.T, ss store.Store) {
|
||||
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
|
||||
id := model.NewId()
|
||||
team, err := ss.Team().Save(&model.Team{
|
||||
@@ -5123,7 +5123,7 @@ func testUserStoreGetTeamGroupUsers(t *testing.T, ss store.Store) {
|
||||
requireNUsers(2)
|
||||
}
|
||||
|
||||
func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) {
|
||||
func testUserStoreGetChannelGroupUsers(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
// create channel
|
||||
id := model.NewId()
|
||||
channel, nErr := ss.Channel().Save(&model.Channel{
|
||||
@@ -5245,9 +5245,7 @@ func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) {
|
||||
requireNUsers(2)
|
||||
}
|
||||
|
||||
func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUserStorePromoteGuestToUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
// create users
|
||||
t.Run("Must do nothing with regular user", func(t *testing.T) {
|
||||
id := model.NewId()
|
||||
@@ -5284,7 +5282,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, "system_user", updatedUser.Roles)
|
||||
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.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5329,7 +5327,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5385,7 +5383,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5425,7 +5423,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5470,7 +5468,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5536,7 +5534,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.False(t, updatedTeamMember.SchemeGuest)
|
||||
require.True(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5550,7 +5548,7 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.True(t, notUpdatedTeamMember.SchemeGuest)
|
||||
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) {
|
||||
c := request.TestContext(t)
|
||||
|
||||
func testUserStoreDemoteUserToGuest(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
// create users
|
||||
t.Run("Must do nothing with guest", func(t *testing.T) {
|
||||
id := model.NewId()
|
||||
@@ -5599,7 +5595,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, "system_guest", updatedUser.Roles)
|
||||
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.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5642,7 +5638,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5694,7 +5690,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5732,7 +5728,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5775,7 +5771,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5839,7 +5835,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.True(t, updatedTeamMember.SchemeGuest)
|
||||
require.False(t, updatedTeamMember.SchemeUser)
|
||||
@@ -5853,7 +5849,7 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) {
|
||||
require.NoError(t, err)
|
||||
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.False(t, notUpdatedTeamMember.SchemeGuest)
|
||||
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
|
||||
t.Run("Must disable all guests and no regular user or already deactivated users", func(t *testing.T) {
|
||||
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()
|
||||
u1 := &model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
@@ -5976,7 +5972,7 @@ func testUserStoreResetLastPictureUpdate(t *testing.T, ss store.Store) {
|
||||
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()
|
||||
|
||||
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)
|
||||
require.NoError(t, err)
|
||||
require.True(t, ok)
|
||||
@@ -6157,7 +6153,7 @@ func testIsEmpty(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
Email: "ben@invalid.mattermost.com",
|
||||
Username: "u1" + model.NewId(),
|
||||
@@ -6171,7 +6167,7 @@ func testGetUsersWithInvalidEmails(t *testing.T, ss store.Store) {
|
||||
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.Email = MakeEmail()
|
||||
_, err := ss.User().Save(&u1)
|
||||
|
||||
@@ -11,16 +11,17 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestUserTermsOfServiceStore(t *testing.T, ss store.Store) {
|
||||
t.Run("TestSaveUserTermsOfService", func(t *testing.T) { testSaveUserTermsOfService(t, ss) })
|
||||
t.Run("TestGetByUserTermsOfService", func(t *testing.T) { testGetByUserTermsOfService(t, ss) })
|
||||
t.Run("TestDeleteUserTermsOfService", func(t *testing.T) { testDeleteUserTermsOfService(t, ss) })
|
||||
func TestUserTermsOfServiceStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("TestSaveUserTermsOfService", func(t *testing.T) { testSaveUserTermsOfService(t, rctx, ss) })
|
||||
t.Run("TestGetByUserTermsOfService", func(t *testing.T) { testGetByUserTermsOfService(t, rctx, 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{
|
||||
UserId: model.NewId(),
|
||||
TermsOfServiceId: model.NewId(),
|
||||
@@ -45,7 +46,7 @@ func testSaveUserTermsOfService(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
UserId: model.NewId(),
|
||||
TermsOfServiceId: model.NewId(),
|
||||
@@ -61,7 +62,7 @@ func testGetByUserTermsOfService(t *testing.T, ss store.Store) {
|
||||
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{
|
||||
UserId: model.NewId(),
|
||||
TermsOfServiceId: model.NewId(),
|
||||
|
||||
@@ -11,38 +11,39 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/v8/channels/store"
|
||||
)
|
||||
|
||||
func TestWebhookStore(t *testing.T, ss store.Store) {
|
||||
t.Run("SaveIncoming", func(t *testing.T) { testWebhookStoreSaveIncoming(t, ss) })
|
||||
t.Run("UpdateIncoming", func(t *testing.T) { testWebhookStoreUpdateIncoming(t, ss) })
|
||||
t.Run("GetIncoming", func(t *testing.T) { testWebhookStoreGetIncoming(t, ss) })
|
||||
t.Run("GetIncomingList", func(t *testing.T) { testWebhookStoreGetIncomingList(t, ss) })
|
||||
t.Run("GetIncomingListByUser", func(t *testing.T) { testWebhookStoreGetIncomingListByUser(t, ss) })
|
||||
t.Run("GetIncomingByTeam", func(t *testing.T) { testWebhookStoreGetIncomingByTeam(t, ss) })
|
||||
t.Run("GetIncomingByTeamByUser", func(t *testing.T) { TestWebhookStoreGetIncomingByTeamByUser(t, ss) })
|
||||
t.Run("GetIncomingByTeamByChannel", func(t *testing.T) { testWebhookStoreGetIncomingByChannel(t, ss) })
|
||||
t.Run("DeleteIncoming", func(t *testing.T) { testWebhookStoreDeleteIncoming(t, ss) })
|
||||
t.Run("DeleteIncomingByChannel", func(t *testing.T) { testWebhookStoreDeleteIncomingByChannel(t, ss) })
|
||||
t.Run("DeleteIncomingByUser", func(t *testing.T) { testWebhookStoreDeleteIncomingByUser(t, ss) })
|
||||
t.Run("SaveOutgoing", func(t *testing.T) { testWebhookStoreSaveOutgoing(t, ss) })
|
||||
t.Run("GetOutgoing", func(t *testing.T) { testWebhookStoreGetOutgoing(t, ss) })
|
||||
t.Run("GetOutgoingList", func(t *testing.T) { testWebhookStoreGetOutgoingList(t, ss) })
|
||||
t.Run("GetOutgoingListByUser", func(t *testing.T) { testWebhookStoreGetOutgoingListByUser(t, ss) })
|
||||
t.Run("GetOutgoingByChannel", func(t *testing.T) { testWebhookStoreGetOutgoingByChannel(t, ss) })
|
||||
t.Run("GetOutgoingByChannelByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByChannelByUser(t, ss) })
|
||||
t.Run("GetOutgoingByTeam", func(t *testing.T) { testWebhookStoreGetOutgoingByTeam(t, ss) })
|
||||
t.Run("GetOutgoingByTeamByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByTeamByUser(t, ss) })
|
||||
t.Run("DeleteOutgoing", func(t *testing.T) { testWebhookStoreDeleteOutgoing(t, ss) })
|
||||
t.Run("DeleteOutgoingByChannel", func(t *testing.T) { testWebhookStoreDeleteOutgoingByChannel(t, ss) })
|
||||
t.Run("DeleteOutgoingByUser", func(t *testing.T) { testWebhookStoreDeleteOutgoingByUser(t, ss) })
|
||||
t.Run("UpdateOutgoing", func(t *testing.T) { testWebhookStoreUpdateOutgoing(t, ss) })
|
||||
t.Run("CountIncoming", func(t *testing.T) { testWebhookStoreCountIncoming(t, ss) })
|
||||
t.Run("CountOutgoing", func(t *testing.T) { testWebhookStoreCountOutgoing(t, ss) })
|
||||
func TestWebhookStore(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
t.Run("SaveIncoming", func(t *testing.T) { testWebhookStoreSaveIncoming(t, rctx, ss) })
|
||||
t.Run("UpdateIncoming", func(t *testing.T) { testWebhookStoreUpdateIncoming(t, rctx, ss) })
|
||||
t.Run("GetIncoming", func(t *testing.T) { testWebhookStoreGetIncoming(t, rctx, ss) })
|
||||
t.Run("GetIncomingList", func(t *testing.T) { testWebhookStoreGetIncomingList(t, rctx, ss) })
|
||||
t.Run("GetIncomingListByUser", func(t *testing.T) { testWebhookStoreGetIncomingListByUser(t, rctx, ss) })
|
||||
t.Run("GetIncomingByTeam", func(t *testing.T) { testWebhookStoreGetIncomingByTeam(t, rctx, ss) })
|
||||
t.Run("GetIncomingByTeamByUser", func(t *testing.T) { TestWebhookStoreGetIncomingByTeamByUser(t, rctx, ss) })
|
||||
t.Run("GetIncomingByTeamByChannel", func(t *testing.T) { testWebhookStoreGetIncomingByChannel(t, rctx, ss) })
|
||||
t.Run("DeleteIncoming", func(t *testing.T) { testWebhookStoreDeleteIncoming(t, rctx, ss) })
|
||||
t.Run("DeleteIncomingByChannel", func(t *testing.T) { testWebhookStoreDeleteIncomingByChannel(t, rctx, ss) })
|
||||
t.Run("DeleteIncomingByUser", func(t *testing.T) { testWebhookStoreDeleteIncomingByUser(t, rctx, ss) })
|
||||
t.Run("SaveOutgoing", func(t *testing.T) { testWebhookStoreSaveOutgoing(t, rctx, ss) })
|
||||
t.Run("GetOutgoing", func(t *testing.T) { testWebhookStoreGetOutgoing(t, rctx, ss) })
|
||||
t.Run("GetOutgoingList", func(t *testing.T) { testWebhookStoreGetOutgoingList(t, rctx, ss) })
|
||||
t.Run("GetOutgoingListByUser", func(t *testing.T) { testWebhookStoreGetOutgoingListByUser(t, rctx, ss) })
|
||||
t.Run("GetOutgoingByChannel", func(t *testing.T) { testWebhookStoreGetOutgoingByChannel(t, rctx, ss) })
|
||||
t.Run("GetOutgoingByChannelByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByChannelByUser(t, rctx, ss) })
|
||||
t.Run("GetOutgoingByTeam", func(t *testing.T) { testWebhookStoreGetOutgoingByTeam(t, rctx, ss) })
|
||||
t.Run("GetOutgoingByTeamByUser", func(t *testing.T) { testWebhookStoreGetOutgoingByTeamByUser(t, rctx, ss) })
|
||||
t.Run("DeleteOutgoing", func(t *testing.T) { testWebhookStoreDeleteOutgoing(t, rctx, ss) })
|
||||
t.Run("DeleteOutgoingByChannel", func(t *testing.T) { testWebhookStoreDeleteOutgoingByChannel(t, rctx, ss) })
|
||||
t.Run("DeleteOutgoingByUser", func(t *testing.T) { testWebhookStoreDeleteOutgoingByUser(t, rctx, ss) })
|
||||
t.Run("UpdateOutgoing", func(t *testing.T) { testWebhookStoreUpdateOutgoing(t, rctx, ss) })
|
||||
t.Run("CountIncoming", func(t *testing.T) { testWebhookStoreCountIncoming(t, rctx, 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()
|
||||
|
||||
_, 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreUpdateIncoming(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreUpdateIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
var err error
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetIncoming(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
var err error
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetIncomingList(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetIncomingList(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.IncomingWebhook{}
|
||||
o1.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetIncomingListByUser(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetIncomingListByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.IncomingWebhook{}
|
||||
o1.ChannelId = 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
|
||||
|
||||
o1 := buildIncomingWebhook()
|
||||
@@ -164,7 +165,7 @@ func testWebhookStoreGetIncomingByTeam(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
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, 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreDeleteIncoming(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreDeleteIncoming(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
var err error
|
||||
|
||||
o1 := buildIncomingWebhook()
|
||||
@@ -229,7 +230,7 @@ func testWebhookStoreDeleteIncoming(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
o1 := buildIncomingWebhook()
|
||||
@@ -247,7 +248,7 @@ func testWebhookStoreDeleteIncomingByChannel(t *testing.T, ss store.Store) {
|
||||
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
|
||||
|
||||
o1 := buildIncomingWebhook()
|
||||
@@ -274,7 +275,7 @@ func buildIncomingWebhook() *model.IncomingWebhook {
|
||||
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.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetOutgoing(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetOutgoingListByUser(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetOutgoingListByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = 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.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetOutgoingByChannel(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetOutgoingByChannel(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetOutgoingByChannelByUser(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetOutgoingByChannelByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = 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.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
var err error
|
||||
|
||||
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.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreDeleteOutgoingByUser(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreDeleteOutgoingByUser(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreUpdateOutgoing(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreUpdateOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = model.NewId()
|
||||
o1.CreatorId = model.NewId()
|
||||
@@ -568,7 +569,7 @@ func testWebhookStoreUpdateOutgoing(t *testing.T, ss store.Store) {
|
||||
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.ChannelId = 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")
|
||||
}
|
||||
|
||||
func testWebhookStoreCountOutgoing(t *testing.T, ss store.Store) {
|
||||
func testWebhookStoreCountOutgoing(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
o1 := &model.OutgoingWebhook{}
|
||||
o1.ChannelId = model.NewId()
|
||||
o1.CreatorId = model.NewId()
|
||||
|
||||
Ссылка в новой задаче
Block a user