Simplify request generation in store tests (#25422)

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

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

@@ -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()