Replacing {require,assert}.{Nil,NotNil} with {require,assert}.{NoError,Error} in the store tests (when comparing errors) (#16886)

* Replacing require.Nil with require.NoError

* More replacements

* More Nil/NotNill to NoError/Error

* Other detected errors

* renaming apperr to err

* Removed not needed line

* Rename old appErr variables that are no longer model.AppError values

* Fixing tiny typo

* Reverting changes outside the store (accidentally added)

* Apply suggestions from code review

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Этот коммит содержится в:
Jesús Espino
2021-02-10 11:34:41 +01:00
коммит произвёл GitHub
родитель 5f043b0a08
Коммит 0e9ad9f7f8
56 изменённых файлов: 5061 добавлений и 5106 удалений

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

@@ -28,11 +28,11 @@ func TestChannelStoreChannelMemberCountsCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
count, err := cachedStore.Channel().GetMemberCount("id", true) count, err := cachedStore.Channel().GetMemberCount("id", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, count, countResult) assert.Equal(t, count, countResult)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetMemberCount", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetMemberCount", 1)
count, err = cachedStore.Channel().GetMemberCount("id", true) count, err = cachedStore.Channel().GetMemberCount("id", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, count, countResult) assert.Equal(t, count, countResult)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetMemberCount", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetMemberCount", 1)
}) })
@@ -114,11 +114,11 @@ func TestChannelStoreChannelPinnedPostsCountsCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
count, err := cachedStore.Channel().GetPinnedPostCount("id", true) count, err := cachedStore.Channel().GetPinnedPostCount("id", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, count, countResult) assert.Equal(t, count, countResult)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetPinnedPostCount", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetPinnedPostCount", 1)
count, err = cachedStore.Channel().GetPinnedPostCount("id", true) count, err = cachedStore.Channel().GetPinnedPostCount("id", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, count, countResult) assert.Equal(t, count, countResult)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetPinnedPostCount", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetPinnedPostCount", 1)
}) })
@@ -186,11 +186,11 @@ func TestChannelStoreGuestCountCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
count, err := cachedStore.Channel().GetGuestCount("id", true) count, err := cachedStore.Channel().GetGuestCount("id", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, count, countResult) assert.Equal(t, count, countResult)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetGuestCount", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetGuestCount", 1)
count, err = cachedStore.Channel().GetGuestCount("id", true) count, err = cachedStore.Channel().GetGuestCount("id", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, count, countResult) assert.Equal(t, count, countResult)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetGuestCount", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "GetGuestCount", 1)
}) })
@@ -258,11 +258,11 @@ func TestChannelStoreChannel(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
channel, err := cachedStore.Channel().Get(channelId, true) channel, err := cachedStore.Channel().Get(channelId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, channel, &fakeChannel) assert.Equal(t, channel, &fakeChannel)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "Get", 1)
channel, err = cachedStore.Channel().Get(channelId, true) channel, err = cachedStore.Channel().Get(channelId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, channel, &fakeChannel) assert.Equal(t, channel, &fakeChannel)
mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Channel().(*mocks.ChannelStore).AssertNumberOfCalls(t, "Get", 1)
}) })

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

@@ -28,11 +28,11 @@ func TestEmojiStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
emoji, err := cachedStore.Emoji().Get("123", true) emoji, err := cachedStore.Emoji().Get("123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
emoji, err = cachedStore.Emoji().Get("123", true) emoji, err = cachedStore.Emoji().Get("123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "Get", 1)
}) })
@@ -44,11 +44,11 @@ func TestEmojiStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
emoji, err := cachedStore.Emoji().GetByName("name123", true) emoji, err := cachedStore.Emoji().GetByName("name123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
emoji, err = cachedStore.Emoji().GetByName("name123", true) emoji, err = cachedStore.Emoji().GetByName("name123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, emoji, &fakeEmoji) assert.Equal(t, emoji, &fakeEmoji)
mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Emoji().(*mocks.EmojiStore).AssertNumberOfCalls(t, "GetByName", 1)
}) })

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

@@ -28,7 +28,7 @@ func TestFileInfoStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
fileInfos, err := cachedStore.FileInfo().GetForPost("123", true, true, true) fileInfos, err := cachedStore.FileInfo().GetForPost("123", true, true, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fileInfos, []*model.FileInfo{&fakeFileInfo}) assert.Equal(t, fileInfos, []*model.FileInfo{&fakeFileInfo})
mockStore.FileInfo().(*mocks.FileInfoStore).AssertNumberOfCalls(t, "GetForPost", 1) mockStore.FileInfo().(*mocks.FileInfoStore).AssertNumberOfCalls(t, "GetForPost", 1)
assert.Equal(t, fileInfos, []*model.FileInfo{&fakeFileInfo}) assert.Equal(t, fileInfos, []*model.FileInfo{&fakeFileInfo})

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

@@ -92,12 +92,12 @@ func TestPostStoreLastPostTimeCache(t *testing.T) {
expectedResult := model.NewPostList() expectedResult := model.NewPostList()
list, err := cachedStore.Post().GetPostsSince(fakeOptions, true) list, err := cachedStore.Post().GetPostsSince(fakeOptions, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, list, expectedResult) assert.Equal(t, list, expectedResult)
mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPostsSince", 1) mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPostsSince", 1)
list, err = cachedStore.Post().GetPostsSince(fakeOptions, true) list, err = cachedStore.Post().GetPostsSince(fakeOptions, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, list, expectedResult) assert.Equal(t, list, expectedResult)
mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPostsSince", 1) mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPostsSince", 1)
}) })
@@ -152,7 +152,7 @@ func TestPostStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotPosts, err := cachedStore.Post().GetPosts(fakeOptions, true) gotPosts, err := cachedStore.Post().GetPosts(fakeOptions, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakePosts, gotPosts) assert.Equal(t, fakePosts, gotPosts)
mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPosts", 1) mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPosts", 1)
@@ -167,7 +167,7 @@ func TestPostStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotPosts, err := cachedStore.Post().GetPosts(fakeOptions, true) gotPosts, err := cachedStore.Post().GetPosts(fakeOptions, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakePosts, gotPosts) assert.Equal(t, fakePosts, gotPosts)
mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPosts", 1) mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPosts", 1)
@@ -182,7 +182,7 @@ func TestPostStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotPosts, err := cachedStore.Post().GetPosts(fakeOptions, true) gotPosts, err := cachedStore.Post().GetPosts(fakeOptions, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakePosts, gotPosts) assert.Equal(t, fakePosts, gotPosts)
mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPosts", 1) mockStore.Post().(*mocks.PostStore).AssertNumberOfCalls(t, "GetPosts", 1)

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

@@ -28,10 +28,9 @@ func TestReactionStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
reaction, err := cachedStore.Reaction().GetForPost("123", true) reaction, err := cachedStore.Reaction().GetForPost("123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, reaction, []*model.Reaction{&fakeReaction}) assert.Equal(t, reaction, []*model.Reaction{&fakeReaction})
mockStore.Reaction().(*mocks.ReactionStore).AssertNumberOfCalls(t, "GetForPost", 1) mockStore.Reaction().(*mocks.ReactionStore).AssertNumberOfCalls(t, "GetForPost", 1)
require.Nil(t, err)
assert.Equal(t, reaction, []*model.Reaction{&fakeReaction}) assert.Equal(t, reaction, []*model.Reaction{&fakeReaction})
cachedStore.Reaction().GetForPost("123", true) cachedStore.Reaction().GetForPost("123", true)
mockStore.Reaction().(*mocks.ReactionStore).AssertNumberOfCalls(t, "GetForPost", 1) mockStore.Reaction().(*mocks.ReactionStore).AssertNumberOfCalls(t, "GetForPost", 1)

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

@@ -28,10 +28,10 @@ func TestRoleStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
role, err := cachedStore.Role().GetByName("role-name") role, err := cachedStore.Role().GetByName("role-name")
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, role, &fakeRole) assert.Equal(t, role, &fakeRole)
mockStore.Role().(*mocks.RoleStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Role().(*mocks.RoleStore).AssertNumberOfCalls(t, "GetByName", 1)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, role, &fakeRole) assert.Equal(t, role, &fakeRole)
cachedStore.Role().GetByName("role-name") cachedStore.Role().GetByName("role-name")
mockStore.Role().(*mocks.RoleStore).AssertNumberOfCalls(t, "GetByName", 1) mockStore.Role().(*mocks.RoleStore).AssertNumberOfCalls(t, "GetByName", 1)

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

@@ -28,10 +28,10 @@ func TestSchemeStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
scheme, err := cachedStore.Scheme().Get("123") scheme, err := cachedStore.Scheme().Get("123")
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, scheme, &fakeScheme) assert.Equal(t, scheme, &fakeScheme)
mockStore.Scheme().(*mocks.SchemeStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Scheme().(*mocks.SchemeStore).AssertNumberOfCalls(t, "Get", 1)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, scheme, &fakeScheme) assert.Equal(t, scheme, &fakeScheme)
cachedStore.Scheme().Get("123") cachedStore.Scheme().Get("123")
mockStore.Scheme().(*mocks.SchemeStore).AssertNumberOfCalls(t, "Get", 1) mockStore.Scheme().(*mocks.SchemeStore).AssertNumberOfCalls(t, "Get", 1)

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

@@ -28,12 +28,12 @@ func TestTeamStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUserTeamIds, err := cachedStore.Team().GetUserTeamIds(fakeUserId, true) gotUserTeamIds, err := cachedStore.Team().GetUserTeamIds(fakeUserId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUserTeamIds, gotUserTeamIds) assert.Equal(t, fakeUserTeamIds, gotUserTeamIds)
mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1) mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1)
gotUserTeamIds, err = cachedStore.Team().GetUserTeamIds(fakeUserId, true) gotUserTeamIds, err = cachedStore.Team().GetUserTeamIds(fakeUserId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUserTeamIds, gotUserTeamIds) assert.Equal(t, fakeUserTeamIds, gotUserTeamIds)
mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1) mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1)
}) })
@@ -45,12 +45,12 @@ func TestTeamStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUserTeamIds, err := cachedStore.Team().GetUserTeamIds(fakeUserId, true) gotUserTeamIds, err := cachedStore.Team().GetUserTeamIds(fakeUserId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUserTeamIds, gotUserTeamIds) assert.Equal(t, fakeUserTeamIds, gotUserTeamIds)
mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1) mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1)
gotUserTeamIds, err = cachedStore.Team().GetUserTeamIds(fakeUserId, false) gotUserTeamIds, err = cachedStore.Team().GetUserTeamIds(fakeUserId, false)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUserTeamIds, gotUserTeamIds) assert.Equal(t, fakeUserTeamIds, gotUserTeamIds)
mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 2) mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 2)
}) })
@@ -62,14 +62,14 @@ func TestTeamStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUserTeamIds, err := cachedStore.Team().GetUserTeamIds(fakeUserId, true) gotUserTeamIds, err := cachedStore.Team().GetUserTeamIds(fakeUserId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUserTeamIds, gotUserTeamIds) assert.Equal(t, fakeUserTeamIds, gotUserTeamIds)
mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1) mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 1)
cachedStore.Team().InvalidateAllTeamIdsForUser(fakeUserId) cachedStore.Team().InvalidateAllTeamIdsForUser(fakeUserId)
gotUserTeamIds, err = cachedStore.Team().GetUserTeamIds(fakeUserId, true) gotUserTeamIds, err = cachedStore.Team().GetUserTeamIds(fakeUserId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUserTeamIds, gotUserTeamIds) assert.Equal(t, fakeUserTeamIds, gotUserTeamIds)
mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 2) mockStore.Team().(*mocks.TeamStore).AssertNumberOfCalls(t, "GetUserTeamIds", 2)
}) })

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

@@ -29,11 +29,11 @@ func TestTermsOfServiceStoreTermsOfServiceCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
termsOfService, err := cachedStore.TermsOfService().GetLatest(true) termsOfService, err := cachedStore.TermsOfService().GetLatest(true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, termsOfService, &fakeTermsOfService) assert.Equal(t, termsOfService, &fakeTermsOfService)
mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "GetLatest", 1) mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "GetLatest", 1)
termsOfService, err = cachedStore.TermsOfService().GetLatest(true) termsOfService, err = cachedStore.TermsOfService().GetLatest(true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, termsOfService, &fakeTermsOfService) assert.Equal(t, termsOfService, &fakeTermsOfService)
mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "GetLatest", 1) mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "GetLatest", 1)
}) })
@@ -45,11 +45,11 @@ func TestTermsOfServiceStoreTermsOfServiceCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
termsOfService, err := cachedStore.TermsOfService().Get("123", true) termsOfService, err := cachedStore.TermsOfService().Get("123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, termsOfService, &fakeTermsOfService) assert.Equal(t, termsOfService, &fakeTermsOfService)
mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "Get", 1) mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "Get", 1)
termsOfService, err = cachedStore.TermsOfService().Get("123", true) termsOfService, err = cachedStore.TermsOfService().Get("123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, termsOfService, &fakeTermsOfService) assert.Equal(t, termsOfService, &fakeTermsOfService)
mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "Get", 1) mockStore.TermsOfService().(*mocks.TermsOfServiceStore).AssertNumberOfCalls(t, "Get", 1)
}) })

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

@@ -34,7 +34,7 @@ func TestUserStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUser, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true) gotUser, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUser, gotUser) assert.Equal(t, fakeUser, gotUser)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetProfileByIds", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetProfileByIds", 1)
@@ -49,7 +49,7 @@ func TestUserStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUser, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true) gotUser, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUser, gotUser) assert.Equal(t, fakeUser, gotUser)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetProfileByIds", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetProfileByIds", 1)
@@ -64,7 +64,7 @@ func TestUserStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUser, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true) gotUser, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUser, gotUser) assert.Equal(t, fakeUser, gotUser)
cachedStore.User().InvalidateProfileCacheForUser("123") cachedStore.User().InvalidateProfileCacheForUser("123")
@@ -80,7 +80,7 @@ func TestUserStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
storedUsers, err := mockStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, false) storedUsers, err := mockStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, false)
require.Nil(t, err) require.NoError(t, err)
originalProps := make([]model.StringMap, len(storedUsers)) originalProps := make([]model.StringMap, len(storedUsers))
@@ -91,14 +91,14 @@ func TestUserStoreCache(t *testing.T) {
} }
cachedUsers, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true) cachedUsers, err := cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true)
require.Nil(t, err) require.NoError(t, err)
for i := 0; i < len(storedUsers); i++ { for i := 0; i < len(storedUsers); i++ {
assert.Equal(t, storedUsers[i].Id, cachedUsers[i].Id) assert.Equal(t, storedUsers[i].Id, cachedUsers[i].Id)
} }
cachedUsers, err = cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true) cachedUsers, err = cachedStore.User().GetProfileByIds(fakeUserIds, &store.UserGetByIdsOpts{}, true)
require.Nil(t, err) require.NoError(t, err)
for i := 0; i < len(storedUsers); i++ { for i := 0; i < len(storedUsers); i++ {
storedUsers[i].Props = model.StringMap{} storedUsers[i].Props = model.StringMap{}
storedUsers[i].Timezone = model.StringMap{} storedUsers[i].Timezone = model.StringMap{}
@@ -130,7 +130,7 @@ func TestUserStoreProfilesInChannelCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true) gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeMap, gotMap) assert.Equal(t, fakeMap, gotMap)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1)
@@ -145,7 +145,7 @@ func TestUserStoreProfilesInChannelCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true) gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeMap, gotMap) assert.Equal(t, fakeMap, gotMap)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1)
@@ -160,7 +160,7 @@ func TestUserStoreProfilesInChannelCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true) gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeMap, gotMap) assert.Equal(t, fakeMap, gotMap)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1)
@@ -177,7 +177,7 @@ func TestUserStoreProfilesInChannelCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true) gotMap, err := cachedStore.User().GetAllProfilesInChannel(fakeChannelId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeMap, gotMap) assert.Equal(t, fakeMap, gotMap)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "GetAllProfilesInChannel", 1)
@@ -202,7 +202,7 @@ func TestUserStoreGetCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUser, err := cachedStore.User().Get(fakeUserId) gotUser, err := cachedStore.User().Get(fakeUserId)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUser, gotUser) assert.Equal(t, fakeUser, gotUser)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "Get", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "Get", 1)
@@ -217,7 +217,7 @@ func TestUserStoreGetCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
gotUser, err := cachedStore.User().Get(fakeUserId) gotUser, err := cachedStore.User().Get(fakeUserId)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, fakeUser, gotUser) assert.Equal(t, fakeUser, gotUser)
mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "Get", 1) mockStore.User().(*mocks.UserStore).AssertNumberOfCalls(t, "Get", 1)
@@ -234,20 +234,20 @@ func TestUserStoreGetCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
storedUser, err := mockStore.User().Get(fakeUserId) storedUser, err := mockStore.User().Get(fakeUserId)
require.Nil(t, err) require.NoError(t, err)
originalProps := storedUser.NotifyProps originalProps := storedUser.NotifyProps
storedUser.NotifyProps = map[string]string{} storedUser.NotifyProps = map[string]string{}
storedUser.NotifyProps["key"] = "somevalue" storedUser.NotifyProps["key"] = "somevalue"
cachedUser, err := cachedStore.User().Get(fakeUserId) cachedUser, err := cachedStore.User().Get(fakeUserId)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, storedUser, cachedUser) assert.Equal(t, storedUser, cachedUser)
storedUser.Props = model.StringMap{} storedUser.Props = model.StringMap{}
storedUser.Timezone = model.StringMap{} storedUser.Timezone = model.StringMap{}
cachedUser, err = cachedStore.User().Get(fakeUserId) cachedUser, err = cachedStore.User().Get(fakeUserId)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, storedUser, cachedUser) assert.Equal(t, storedUser, cachedUser)
if storedUser == cachedUser { if storedUser == cachedUser {
assert.Fail(t, "should be different pointers") assert.Fail(t, "should be different pointers")

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

@@ -28,7 +28,7 @@ func TestWebhookStoreCache(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
incomingWebhook, err := cachedStore.Webhook().GetIncoming("123", true) incomingWebhook, err := cachedStore.Webhook().GetIncoming("123", true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, incomingWebhook, &fakeWebhook) assert.Equal(t, incomingWebhook, &fakeWebhook)
mockStore.Webhook().(*mocks.WebhookStore).AssertNumberOfCalls(t, "GetIncoming", 1) mockStore.Webhook().(*mocks.WebhookStore).AssertNumberOfCalls(t, "GetIncoming", 1)

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

@@ -70,100 +70,100 @@ func TestSearchChannelStore(t *testing.T, s store.Store, testEngine *SearchTestE
Store: s, Store: s,
} }
err := th.SetupBasicFixtures() err := th.SetupBasicFixtures()
require.Nil(t, err) require.NoError(t, err)
defer th.CleanFixtures() defer th.CleanFixtures()
runTestSearch(t, testEngine, searchChannelStoreTests, th) runTestSearch(t, testEngine, searchChannelStoreTests, th)
} }
func testAutocompleteChannelByName(t *testing.T, th *SearchTestHelper) { func testAutocompleteChannelByName(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "Channel Alternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "Channel Alternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-a", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-a", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res)
} }
func testAutocompleteChannelByDisplayName(t *testing.T, th *SearchTestHelper) { func testAutocompleteChannelByDisplayName(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "ChannelA", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "ChannelA", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res)
} }
func testAutocompleteChannelByNameSplittedWithDashChar(t *testing.T, th *SearchTestHelper) { func testAutocompleteChannelByNameSplittedWithDashChar(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-a", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-a", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res)
} }
func testAutocompleteChannelByNameSplittedWithUnderscoreChar(t *testing.T, th *SearchTestHelper) { func testAutocompleteChannelByNameSplittedWithUnderscoreChar(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel_alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel_alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel_a", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel_a", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{alternate.Id}, res) th.checkChannelIdsMatch(t, []string{alternate.Id}, res)
} }
func testAutocompleteChannelByDisplayNameSplittedByWhitespaces(t *testing.T, th *SearchTestHelper) { func testAutocompleteChannelByDisplayNameSplittedByWhitespaces(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "Channel Alternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "Channel Alternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "Channel A", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "Channel A", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{alternate.Id}, res) th.checkChannelIdsMatch(t, []string{alternate.Id}, res)
} }
func testAutocompleteAllChannelsIfTermIsEmpty(t *testing.T, th *SearchTestHelper) { func testAutocompleteAllChannelsIfTermIsEmpty(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "Channel Alternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "Channel Alternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
other, err := th.createChannel(th.Team.Id, "other-channel", "Other Channel", "", model.CHANNEL_OPEN, false) other, err := th.createChannel(th.Team.Id, "other-channel", "Other Channel", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
defer th.deleteChannel(other) defer th.deleteChannel(other)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id, other.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id, other.Id}, res)
} }
func testSearchChannelsInCaseInsensitiveManner(t *testing.T, th *SearchTestHelper) { func testSearchChannelsInCaseInsensitiveManner(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channela", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channela", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res)
res, apperr = th.Store.Channel().AutocompleteInTeam(th.Team.Id, "ChAnNeL-a", false) res, err = th.Store.Channel().AutocompleteInTeam(th.Team.Id, "ChAnNeL-a", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res)
} }
func testSearchOnlyPublicChannels(t *testing.T, th *SearchTestHelper) { func testSearchOnlyPublicChannels(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_PRIVATE, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_PRIVATE, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-a", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-a", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id}, res)
} }
func testSearchShouldSupportHavingHyphenAsLastCharacter(t *testing.T, th *SearchTestHelper) { func testSearchShouldSupportHavingHyphenAsLastCharacter(t *testing.T, th *SearchTestHelper) {
alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false) alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "ChannelAlternate", "", model.CHANNEL_OPEN, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteChannel(alternate) defer th.deleteChannel(alternate)
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-", false) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-", false)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, alternate.Id}, res)
} }
func testSearchShouldSupportAutocompleteWithArchivedChannels(t *testing.T, th *SearchTestHelper) { func testSearchShouldSupportAutocompleteWithArchivedChannels(t *testing.T, th *SearchTestHelper) {
res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-", true) res, err := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "channel-", true)
require.Nil(t, apperr) require.NoError(t, err)
th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, th.ChannelDeleted.Id}, res) th.checkChannelIdsMatch(t, []string{th.ChannelBasic.Id, th.ChannelDeleted.Id}, res)
} }

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -147,29 +147,19 @@ func (th *SearchTestHelper) CleanFixtures() error {
} }
func (th *SearchTestHelper) createTeam(name, displayName, teamType string) (*model.Team, error) { func (th *SearchTestHelper) createTeam(name, displayName, teamType string) (*model.Team, error) {
team, appError := th.Store.Team().Save(&model.Team{ return th.Store.Team().Save(&model.Team{
Name: name, Name: name,
DisplayName: displayName, DisplayName: displayName,
Type: teamType, Type: teamType,
}) })
if appError != nil {
return nil, errors.New(appError.Error())
}
return team, nil
} }
func (th *SearchTestHelper) deleteTeam(team *model.Team) error { func (th *SearchTestHelper) deleteTeam(team *model.Team) error {
appError := th.Store.Team().RemoveAllMembersByTeam(team.Id) err := th.Store.Team().RemoveAllMembersByTeam(team.Id)
if appError != nil {
return errors.New(appError.Error())
}
err := th.Store.Team().PermanentDelete(team.Id)
if err != nil { if err != nil {
return err return err
} }
return th.Store.Team().PermanentDelete(team.Id)
return nil
} }
func (th *SearchTestHelper) makeEmail() string { func (th *SearchTestHelper) makeEmail() string {
@@ -177,7 +167,7 @@ func (th *SearchTestHelper) makeEmail() string {
} }
func (th *SearchTestHelper) createUser(username, nickname, firstName, lastName string) (*model.User, error) { func (th *SearchTestHelper) createUser(username, nickname, firstName, lastName string) (*model.User, error) {
user, appError := th.Store.User().Save(&model.User{ return th.Store.User().Save(&model.User{
Username: username, Username: username,
Password: username, Password: username,
Nickname: nickname, Nickname: nickname,
@@ -185,15 +175,10 @@ func (th *SearchTestHelper) createUser(username, nickname, firstName, lastName s
LastName: lastName, LastName: lastName,
Email: th.makeEmail(), Email: th.makeEmail(),
}) })
if appError != nil {
return nil, errors.New(appError.Error())
}
return user, nil
} }
func (th *SearchTestHelper) createGuest(username, nickname, firstName, lastName string) (*model.User, error) { func (th *SearchTestHelper) createGuest(username, nickname, firstName, lastName string) (*model.User, error) {
user, appError := th.Store.User().Save(&model.User{ return th.Store.User().Save(&model.User{
Username: username, Username: username,
Password: username, Password: username,
Nickname: nickname, Nickname: nickname,
@@ -202,26 +187,16 @@ func (th *SearchTestHelper) createGuest(username, nickname, firstName, lastName
Email: th.makeEmail(), Email: th.makeEmail(),
Roles: model.SYSTEM_GUEST_ROLE_ID, Roles: model.SYSTEM_GUEST_ROLE_ID,
}) })
if appError != nil {
return nil, errors.New(appError.Error())
}
return user, nil
} }
func (th *SearchTestHelper) deleteUser(user *model.User) error { func (th *SearchTestHelper) deleteUser(user *model.User) error {
appError := th.Store.User().PermanentDelete(user.Id) return th.Store.User().PermanentDelete(user.Id)
if appError != nil {
return errors.New(appError.Error())
}
return nil
} }
func (th *SearchTestHelper) cleanAllUsers() error { func (th *SearchTestHelper) cleanAllUsers() error {
users, apperr := th.Store.User().GetAll() users, err := th.Store.User().GetAll()
if apperr != nil { if err != nil {
return apperr return err
} }
for _, u := range users { for _, u := range users {
@@ -241,9 +216,9 @@ func (th *SearchTestHelper) createBot(username, displayName, ownerID string) (*m
OwnerId: ownerID, OwnerId: ownerID,
} }
user, apperr := th.Store.User().Save(model.UserFromBot(botModel)) user, err := th.Store.User().Save(model.UserFromBot(botModel))
if apperr != nil { if err != nil {
return nil, errors.New(apperr.Error()) return nil, errors.New(err.Error())
} }
botModel.UserId = user.Id botModel.UserId = user.Id
@@ -265,21 +240,21 @@ func (th *SearchTestHelper) deleteBot(botID string) error {
} }
func (th *SearchTestHelper) createChannel(teamID, name, displayName, purpose, channelType string, deleted bool) (*model.Channel, error) { func (th *SearchTestHelper) createChannel(teamID, name, displayName, purpose, channelType string, deleted bool) (*model.Channel, error) {
channel, appError := th.Store.Channel().Save(&model.Channel{ channel, err := th.Store.Channel().Save(&model.Channel{
TeamId: teamID, TeamId: teamID,
DisplayName: displayName, DisplayName: displayName,
Name: name, Name: name,
Type: channelType, Type: channelType,
Purpose: purpose, Purpose: purpose,
}, 999) }, 999)
if appError != nil { if err != nil {
return nil, errors.New(appError.Error()) return nil, err
} }
if deleted { if deleted {
appError := th.Store.Channel().Delete(channel.Id, model.GetMillis()) err := th.Store.Channel().Delete(channel.Id, model.GetMillis())
if appError != nil { if err != nil {
return nil, errors.New(appError.Error()) return nil, err
} }
} }
@@ -324,9 +299,9 @@ func (th *SearchTestHelper) createGroupChannel(teamID, displayName string, users
Type: model.CHANNEL_GROUP, Type: model.CHANNEL_GROUP,
} }
channel, apperr := th.Store.Channel().Save(group, 10000) channel, err := th.Store.Channel().Save(group, 10000)
if apperr != nil { if err != nil {
return nil, errors.New(apperr.Error()) return nil, errors.New(err.Error())
} }
for _, user := range users { for _, user := range users {
@@ -341,17 +316,12 @@ func (th *SearchTestHelper) createGroupChannel(teamID, displayName string, users
} }
func (th *SearchTestHelper) deleteChannel(channel *model.Channel) error { func (th *SearchTestHelper) deleteChannel(channel *model.Channel) error {
appError := th.Store.Channel().PermanentDeleteMembersByChannel(channel.Id) err := th.Store.Channel().PermanentDeleteMembersByChannel(channel.Id)
if appError != nil {
return errors.New(appError.Error())
}
err := th.Store.Channel().PermanentDelete(channel.Id)
if err != nil { if err != nil {
return err return err
} }
return nil return th.Store.Channel().PermanentDelete(channel.Id)
} }
func (th *SearchTestHelper) deleteChannels(channels []*model.Channel) error { func (th *SearchTestHelper) deleteChannels(channels []*model.Channel) error {
@@ -384,12 +354,7 @@ func (th *SearchTestHelper) createPost(userID, channelID, message, hashtags, pos
creationTime = createAt creationTime = createAt
} }
postModel := th.createPostModel(userID, channelID, message, hashtags, postType, creationTime, pinned) postModel := th.createPostModel(userID, channelID, message, hashtags, postType, creationTime, pinned)
post, appError := th.Store.Post().Save(postModel) return th.Store.Post().Save(postModel)
if appError != nil {
return nil, errors.New(appError.Error())
}
return post, nil
} }
func (th *SearchTestHelper) createFileInfoModel(creatorID, postID, name, content, extension, mimeType string, createAt, size int64) *model.FileInfo { func (th *SearchTestHelper) createFileInfoModel(creatorID, postID, name, content, extension, mimeType string, createAt, size int64) *model.FileInfo {
@@ -414,23 +379,14 @@ func (th *SearchTestHelper) createFileInfo(creatorID, postID, name, content, ext
creationTime = createAt creationTime = createAt
} }
fileInfoModel := th.createFileInfoModel(creatorID, postID, name, content, extension, mimeType, creationTime, size) fileInfoModel := th.createFileInfoModel(creatorID, postID, name, content, extension, mimeType, creationTime, size)
fileInfo, appError := th.Store.FileInfo().Save(fileInfoModel) return th.Store.FileInfo().Save(fileInfoModel)
if appError != nil {
return nil, errors.New(appError.Error())
}
return fileInfo, nil
} }
func (th *SearchTestHelper) createReply(userID, message, hashtags string, parent *model.Post, createAt int64, pinned bool) (*model.Post, error) { func (th *SearchTestHelper) createReply(userID, message, hashtags string, parent *model.Post, createAt int64, pinned bool) (*model.Post, error) {
replyModel := th.createPostModel(userID, parent.ChannelId, message, hashtags, parent.Type, createAt, pinned) replyModel := th.createPostModel(userID, parent.ChannelId, message, hashtags, parent.Type, createAt, pinned)
replyModel.ParentId = parent.Id replyModel.ParentId = parent.Id
replyModel.RootId = parent.Id replyModel.RootId = parent.Id
reply, appError := th.Store.Post().Save(replyModel) return th.Store.Post().Save(replyModel)
if appError != nil {
return nil, errors.New(appError.Error())
}
return reply, nil
} }
func (th *SearchTestHelper) deleteUserPosts(userID string) error { func (th *SearchTestHelper) deleteUserPosts(userID string) error {

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -159,7 +159,7 @@ func TestSearchUserStore(t *testing.T, s store.Store, testEngine *SearchTestEngi
Store: s, Store: s,
} }
err := th.SetupBasicFixtures() err := th.SetupBasicFixtures()
require.Nil(t, err) require.NoError(t, err)
defer th.CleanFixtures() defer th.CleanFixtures()
runTestSearch(t, testEngine, searchUserStoreTests, th) runTestSearch(t, testEngine, searchUserStoreTests, th)
} }
@@ -170,13 +170,13 @@ func testGetAllUsersInChannelWithEmptyTerm(t *testing.T, th *SearchTestHelper) {
Limit: model.USER_SEARCH_DEFAULT_LIMIT, Limit: model.USER_SEARCH_DEFAULT_LIMIT,
} }
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
t.Run("Should be able to correctly honor limit when autocompleting", func(t *testing.T) { t.Run("Should be able to correctly honor limit when autocompleting", func(t *testing.T) {
result, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) result, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, result.InChannel, 1) require.Len(t, result.InChannel, 1)
require.Len(t, result.OutOfChannel, 1) require.Len(t, result.OutOfChannel, 1)
}) })
@@ -184,7 +184,7 @@ func testGetAllUsersInChannelWithEmptyTerm(t *testing.T, th *SearchTestHelper) {
t.Run("Return all users in team", func(t *testing.T) { t.Run("Return all users in team", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
@@ -192,15 +192,15 @@ func testGetAllUsersInChannelWithEmptyTerm(t *testing.T, th *SearchTestHelper) {
t.Run("Return all users in teams even though some of them don't have a team associated", func(t *testing.T) { t.Run("Return all users in teams even though some of them don't have a team associated", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
userAlternate, err := th.createUser("user-alternate", "user-alternate", "user", "alternate") userAlternate, err := th.createUser("user-alternate", "user-alternate", "user", "alternate")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
userGuest, err := th.createGuest("user-guest", "user-guest", "user", "guest") userGuest, err := th.createGuest("user-guest", "user-guest", "user", "guest")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userGuest) defer th.deleteUser(userGuest)
// In case teamId and channelId are empty our current logic goes through Search // In case teamId and channelId are empty our current logic goes through Search
users, err := th.Store.User().Search("", "", options) users, err := th.Store.User().Search("", "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2, th.UserAnotherTeam, th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2, th.UserAnotherTeam,
userAlternate, userGuest}, users) userAlternate, userGuest}, users)
}) })
@@ -208,24 +208,24 @@ func testGetAllUsersInChannelWithEmptyTerm(t *testing.T, th *SearchTestHelper) {
func testHonorChannelRestrictionsAutocompletingUsers(t *testing.T, th *SearchTestHelper) { func testHonorChannelRestrictionsAutocompletingUsers(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("user-alternate", "user-alternate", "user", "alternate") userAlternate, err := th.createUser("user-alternate", "user-alternate", "user", "alternate")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
guest, err := th.createGuest("guest", "guest", "guest", "one") guest, err := th.createGuest("guest", "guest", "guest", "one")
require.Nil(t, err) require.NoError(t, err)
err = th.addUserToTeams(guest, []string{th.Team.Id}) err = th.addUserToTeams(guest, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(guest, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(guest, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(guest) defer th.deleteUser(guest)
t.Run("Autocomplete users with channel restrictions", func(t *testing.T) { t.Run("Autocomplete users with channel restrictions", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}} options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}}
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, userAlternate, guest}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, userAlternate, guest}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -233,7 +233,7 @@ func testHonorChannelRestrictionsAutocompletingUsers(t *testing.T, th *SearchTes
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}} options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}}
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alt", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alt", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -241,7 +241,7 @@ func testHonorChannelRestrictionsAutocompletingUsers(t *testing.T, th *SearchTes
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{}, Channels: []string{}} options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{}, Channels: []string{}}
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -249,7 +249,7 @@ func testHonorChannelRestrictionsAutocompletingUsers(t *testing.T, th *SearchTes
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{}, Channels: []string{}} options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{}, Channels: []string{}}
users, err := th.Store.User().AutocompleteUsersInChannel("", th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel("", th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -258,7 +258,7 @@ func testHonorChannelRestrictionsAutocompletingUsers(t *testing.T, th *SearchTes
options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}} options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}}
// In case teamId and channelId are empty our current logic goes through Search // In case teamId and channelId are empty our current logic goes through Search
users, err := th.Store.User().Search("", "", options) users, err := th.Store.User().Search("", "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate, guest, th.User}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate, guest, th.User}, users)
}) })
} }
@@ -268,7 +268,7 @@ func testHonorTeamRestrictionsAutocompletingUsers(t *testing.T, th *SearchTestHe
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{th.Team.Id}} options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{th.Team.Id}}
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
@@ -276,7 +276,7 @@ func testHonorTeamRestrictionsAutocompletingUsers(t *testing.T, th *SearchTestHe
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{}, Channels: []string{}} options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{}, Channels: []string{}}
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -284,11 +284,11 @@ func testHonorTeamRestrictionsAutocompletingUsers(t *testing.T, th *SearchTestHe
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{th.AnotherTeam.Id}} options.ViewRestrictions = &model.ViewUsersRestrictions{Teams: []string{th.AnotherTeam.Id}}
users, err := th.Store.User().Search(th.Team.Id, "", options) users, err := th.Store.User().Search(th.Team.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users)
acusers, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) acusers, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, acusers.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, acusers.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, acusers.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, acusers.OutOfChannel)
}) })
@@ -298,7 +298,7 @@ func testShouldReturnNothingWithoutProperAccess(t *testing.T, th *SearchTestHelp
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ListOfAllowedChannels = []string{th.ChannelBasic.Id} options.ListOfAllowedChannels = []string{th.ChannelBasic.Id}
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -306,351 +306,351 @@ func testShouldReturnNothingWithoutProperAccess(t *testing.T, th *SearchTestHelp
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
options.ListOfAllowedChannels = []string{} options.ListOfAllowedChannels = []string{}
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
} }
func testAutocompleteUserByUsername(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByUsername(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternateusername", "alternatenick", "user", "alternate") userAlternate, err := th.createUser("alternateusername", "alternatenick", "user", "alternate")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicusername", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
} }
func testAutocompleteUserByFirstName(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByFirstName(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("user-alternate", "user-alternate", "altfirstname", "lastname") userAlternate, err := th.createUser("user-alternate", "user-alternate", "altfirstname", "lastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should autocomplete users when the first name is unique", func(t *testing.T) { t.Run("Should autocomplete users when the first name is unique", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "altfirstname", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "altfirstname", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should autocomplete users for in the channel and out of the channel with the same first name", func(t *testing.T) { t.Run("Should autocomplete users for in the channel and out of the channel with the same first name", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicfirstname", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicfirstname", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
} }
func testAutocompleteUserByLastName(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByLastName(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("user-alternate", "user-alternate", "firstname", "altlastname") userAlternate, err := th.createUser("user-alternate", "user-alternate", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should return results when the last name is unique", func(t *testing.T) { t.Run("Should return results when the last name is unique", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "altlastname", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "altlastname", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return results for in the channel and out of the channel with the same last name", func(t *testing.T) { t.Run("Should return results for in the channel and out of the channel with the same last name", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basiclastname", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basiclastname", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
} }
func testAutocompleteUserByNickName(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByNickName(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternateusername", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("alternateusername", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should return results when the nickname is unique", func(t *testing.T) { t.Run("Should return results when the nickname is unique", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternatenickname", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternatenickname", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return users that share the same part of the nickname", func(t *testing.T) { t.Run("Should return users that share the same part of the nickname", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicnickname", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicnickname", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
} }
func testAutocompleteUserByEmail(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByEmail(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternateusername", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("alternateusername", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
userAlternate.Email = "useralt@test.email.com" userAlternate.Email = "useralt@test.email.com"
_, err = th.Store.User().Update(userAlternate, false) _, err = th.Store.User().Update(userAlternate, false)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should autocomplete users when the email is unique", func(t *testing.T) { t.Run("Should autocomplete users when the email is unique", func(t *testing.T) {
options := createDefaultOptions(false, true, false) options := createDefaultOptions(false, true, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "useralt@test.email.com", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "useralt@test.email.com", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should autocomplete users that share the same email user prefix", func(t *testing.T) { t.Run("Should autocomplete users that share the same email user prefix", func(t *testing.T) {
options := createDefaultOptions(false, true, false) options := createDefaultOptions(false, true, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "success_", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "success_", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
t.Run("Should autocomplete users that share the same email domain", func(t *testing.T) { t.Run("Should autocomplete users that share the same email domain", func(t *testing.T) {
options := createDefaultOptions(false, true, false) options := createDefaultOptions(false, true, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "simulator.amazon.com", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "simulator.amazon.com", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
t.Run("Should search users when the email is unique", func(t *testing.T) { t.Run("Should search users when the email is unique", func(t *testing.T) {
options := createDefaultOptions(false, true, false) options := createDefaultOptions(false, true, false)
users, err := th.Store.User().Search(th.Team.Id, "useralt@test.email.com", options) users, err := th.Store.User().Search(th.Team.Id, "useralt@test.email.com", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users)
}) })
t.Run("Should search users that share the same email user prefix", func(t *testing.T) { t.Run("Should search users that share the same email user prefix", func(t *testing.T) {
options := createDefaultOptions(false, true, false) options := createDefaultOptions(false, true, false)
users, err := th.Store.User().Search(th.Team.Id, "success_", options) users, err := th.Store.User().Search(th.Team.Id, "success_", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users)
}) })
t.Run("Should search users that share the same email domain", func(t *testing.T) { t.Run("Should search users that share the same email domain", func(t *testing.T) {
options := createDefaultOptions(false, true, false) options := createDefaultOptions(false, true, false)
users, err := th.Store.User().Search(th.Team.Id, "simulator.amazon.com", options) users, err := th.Store.User().Search(th.Team.Id, "simulator.amazon.com", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users)
}) })
} }
func testShouldNotMatchSpecificQueriesEmail(t *testing.T, th *SearchTestHelper) { func testShouldNotMatchSpecificQueriesEmail(t *testing.T, th *SearchTestHelper) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "success_", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "success_", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
} }
func testAutocompleteUserByUsernameWithDot(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByUsernameWithDot(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate.username", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("alternate.username", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should return results when searching for the whole username with Dot", func(t *testing.T) { t.Run("Should return results when searching for the whole username with Dot", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate.username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate.username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return results when searching for part of the username including the Dot", func(t *testing.T) { t.Run("Should return results when searching for part of the username including the Dot", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, ".username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, ".username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return results when searching for part of the username not including the Dot", func(t *testing.T) { t.Run("Should return results when searching for part of the username not including the Dot", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
} }
func testAutocompleteUserByUsernameWithUnderscore(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByUsernameWithUnderscore(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate_username", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("alternate_username", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should return results when searching for the whole username with underscore", func(t *testing.T) { t.Run("Should return results when searching for the whole username with underscore", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate_username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate_username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return results when searching for part of the username including the underscore", func(t *testing.T) { t.Run("Should return results when searching for part of the username including the underscore", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "_username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "_username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return results when searching for part of the username not including the underscore", func(t *testing.T) { t.Run("Should return results when searching for part of the username not including the underscore", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
} }
func testAutocompleteUserByUsernameWithHyphen(t *testing.T, th *SearchTestHelper) { func testAutocompleteUserByUsernameWithHyphen(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate-username", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("alternate-username", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should return results when searching for the whole username with hyphen", func(t *testing.T) { t.Run("Should return results when searching for the whole username with hyphen", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate-username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate-username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return results when searching for part of the username including the hyphen", func(t *testing.T) { t.Run("Should return results when searching for part of the username including the hyphen", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "-username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "-username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should return results when searching for part of the username not including the hyphen", func(t *testing.T) { t.Run("Should return results when searching for part of the username not including the hyphen", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "username", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "username", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
} }
func testShouldEscapePercentageCharacter(t *testing.T, th *SearchTestHelper) { func testShouldEscapePercentageCharacter(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternateusername", "alternate%nickname", "firstname", "altlastname") userAlternate, err := th.createUser("alternateusername", "alternate%nickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should autocomplete users escaping percentage symbol", func(t *testing.T) { t.Run("Should autocomplete users escaping percentage symbol", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate%", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate%", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should search users escaping percentage symbol", func(t *testing.T) { t.Run("Should search users escaping percentage symbol", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "alternate%", options) users, err := th.Store.User().Search(th.Team.Id, "alternate%", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users)
}) })
} }
func testShouldEscapeUnderscoreCharacter(t *testing.T, th *SearchTestHelper) { func testShouldEscapeUnderscoreCharacter(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate_username", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("alternate_username", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should autocomplete users escaping underscore symbol", func(t *testing.T) { t.Run("Should autocomplete users escaping underscore symbol", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate_", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate_", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should search users escaping underscore symbol", func(t *testing.T) { t.Run("Should search users escaping underscore symbol", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "alternate_", options) users, err := th.Store.User().Search(th.Team.Id, "alternate_", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users)
}) })
} }
func testShouldBeAbleToSearchInactiveUsers(t *testing.T, th *SearchTestHelper) { func testShouldBeAbleToSearchInactiveUsers(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("basicusernamealternate", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("basicusernamealternate", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
userAlternate.DeleteAt = model.GetMillis() userAlternate.DeleteAt = model.GetMillis()
_, err = th.Store.User().Update(userAlternate, true) _, err = th.Store.User().Update(userAlternate, true)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should autocomplete inactive users if we allow it", func(t *testing.T) { t.Run("Should autocomplete inactive users if we allow it", func(t *testing.T) {
options := createDefaultOptions(false, false, true) options := createDefaultOptions(false, false, true)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicusername", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
t.Run("Should search inactive users if we allow it", func(t *testing.T) { t.Run("Should search inactive users if we allow it", func(t *testing.T) {
options := createDefaultOptions(false, false, true) options := createDefaultOptions(false, false, true)
users, err := th.Store.User().Search(th.Team.Id, "basicusername", options) users, err := th.Store.User().Search(th.Team.Id, "basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2, userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2, userAlternate}, users)
}) })
t.Run("Shouldn't autocomplete inactive users if we don't allow it", func(t *testing.T) { t.Run("Shouldn't autocomplete inactive users if we don't allow it", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicusername", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
t.Run("Shouldn't search inactive users if we don't allow it", func(t *testing.T) { t.Run("Shouldn't search inactive users if we don't allow it", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "basicusername", options) users, err := th.Store.User().Search(th.Team.Id, "basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users)
}) })
} }
func testShouldBeAbleToSearchFilteringByRole(t *testing.T, th *SearchTestHelper) { func testShouldBeAbleToSearchFilteringByRole(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("basicusernamealternate", "alternatenickname", "firstname", "altlastname") userAlternate, err := th.createUser("basicusernamealternate", "alternatenickname", "firstname", "altlastname")
require.Nil(t, err) require.NoError(t, err)
userAlternate.Roles = "system_admin system_user" userAlternate.Roles = "system_admin system_user"
_, err = th.Store.User().Update(userAlternate, true) _, err = th.Store.User().Update(userAlternate, true)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
userAlternate2, err := th.createUser("basicusernamealternate2", "alternatenickname2", "firstname2", "altlastname2") userAlternate2, err := th.createUser("basicusernamealternate2", "alternatenickname2", "firstname2", "altlastname2")
require.Nil(t, err) require.NoError(t, err)
userAlternate2.Roles = "system_user" userAlternate2.Roles = "system_user"
_, err = th.Store.User().Update(userAlternate2, true) _, err = th.Store.User().Update(userAlternate2, true)
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate2) defer th.deleteUser(userAlternate2)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
err = th.addUserToTeams(userAlternate2, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate2, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should autocomplete users filtering by roles", func(t *testing.T) { t.Run("Should autocomplete users filtering by roles", func(t *testing.T) {
options := createDefaultOptions(false, false, true) options := createDefaultOptions(false, false, true)
options.Role = "system_admin" options.Role = "system_admin"
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -658,7 +658,7 @@ func testShouldBeAbleToSearchFilteringByRole(t *testing.T, th *SearchTestHelper)
options := createDefaultOptions(false, false, true) options := createDefaultOptions(false, false, true)
options.Role = "system_admin" options.Role = "system_admin"
users, err := th.Store.User().Search(th.Team.Id, "", options) users, err := th.Store.User().Search(th.Team.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users)
}) })
} }
@@ -667,14 +667,14 @@ func testShouldIgnoreLeadingAtSymbols(t *testing.T, th *SearchTestHelper) {
t.Run("Should autocomplete ignoring the @ symbol at the beginning", func(t *testing.T) { t.Run("Should autocomplete ignoring the @ symbol at the beginning", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "@basicusername", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "@basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
}) })
t.Run("Should search ignoring the @ symbol at the beginning", func(t *testing.T) { t.Run("Should search ignoring the @ symbol at the beginning", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "@basicusername", options) users, err := th.Store.User().Search(th.Team.Id, "@basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users)
}) })
} }
@@ -682,31 +682,31 @@ func testShouldIgnoreLeadingAtSymbols(t *testing.T, th *SearchTestHelper) {
func testSearchUsersShouldBeCaseInsensitive(t *testing.T, th *SearchTestHelper) { func testSearchUsersShouldBeCaseInsensitive(t *testing.T, th *SearchTestHelper) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "BaSiCUsErNaMe", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "BaSiCUsErNaMe", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User2}, users.OutOfChannel)
} }
func testSearchOneTwoCharUsersnameAndFirstLastNames(t *testing.T, th *SearchTestHelper) { func testSearchOneTwoCharUsersnameAndFirstLastNames(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("ho", "alternatenickname", "zi", "k") userAlternate, err := th.createUser("ho", "alternatenickname", "zi", "k")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should support two characters in the full name", func(t *testing.T) { t.Run("Should support two characters in the full name", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "zi", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "zi", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should support two characters in the username", func(t *testing.T) { t.Run("Should support two characters in the username", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "ho", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "ho", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -714,24 +714,24 @@ func testSearchOneTwoCharUsersnameAndFirstLastNames(t *testing.T, th *SearchTest
func testShouldSupportKoreanCharacters(t *testing.T, th *SearchTestHelper) { func testShouldSupportKoreanCharacters(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate-username", "alternate-nickname", "서강준", "안신원") userAlternate, err := th.createUser("alternate-username", "alternate-nickname", "서강준", "안신원")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
t.Run("Should support hanja korean characters", func(t *testing.T) { t.Run("Should support hanja korean characters", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "서강준", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "서강준", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
t.Run("Should support hangul korean characters", func(t *testing.T) { t.Run("Should support hangul korean characters", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "안신원", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "안신원", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
}) })
@@ -739,15 +739,15 @@ func testShouldSupportKoreanCharacters(t *testing.T, th *SearchTestHelper) {
func testSearchWithHyphenAtTheEndOfTheTerm(t *testing.T, th *SearchTestHelper) { func testSearchWithHyphenAtTheEndOfTheTerm(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate-username", "alternate-nickname", "altfirst", "altlast") userAlternate, err := th.createUser("alternate-username", "alternate-nickname", "altfirst", "altlast")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate-", options) users, err := th.Store.User().AutocompleteUsersInChannel(th.Team.Id, th.ChannelBasic.Id, "alternate-", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users.InChannel)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users.OutOfChannel)
} }
@@ -756,39 +756,39 @@ func testSearchUsersInTeam(t *testing.T, th *SearchTestHelper) {
t.Run("Should return all the team users", func(t *testing.T) { t.Run("Should return all the team users", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "", options) users, err := th.Store.User().Search(th.Team.Id, "", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users)
}) })
t.Run("Should return all the team users with no team id", func(t *testing.T) { t.Run("Should return all the team users with no team id", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search("", "basicusername", options) users, err := th.Store.User().Search("", "basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2, th.UserAnotherTeam}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2, th.UserAnotherTeam}, users)
}) })
t.Run("Should return all the team users filtered by username", func(t *testing.T) { t.Run("Should return all the team users filtered by username", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "basicusername1", options) users, err := th.Store.User().Search(th.Team.Id, "basicusername1", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users)
}) })
t.Run("Should not return spurious results", func(t *testing.T) { t.Run("Should not return spurious results", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "falseuser", options) users, err := th.Store.User().Search(th.Team.Id, "falseuser", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users)
}) })
t.Run("Should return all the team users filtered by username and with channel restrictions", func(t *testing.T) { t.Run("Should return all the team users filtered by username and with channel restrictions", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}} options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{th.ChannelBasic.Id}}
users, err := th.Store.User().Search(th.Team.Id, "basicusername", options) users, err := th.Store.User().Search(th.Team.Id, "basicusername", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users)
}) })
t.Run("Should return all the team users filtered by username and with all channel restricted", func(t *testing.T) { t.Run("Should return all the team users filtered by username and with all channel restricted", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{}} options.ViewRestrictions = &model.ViewUsersRestrictions{Channels: []string{}}
users, err := th.Store.User().Search(th.Team.Id, "basicusername1", options) users, err := th.Store.User().Search(th.Team.Id, "basicusername1", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users)
}) })
t.Run("Should honor the limit when searching users in team", func(t *testing.T) { t.Run("Should honor the limit when searching users in team", func(t *testing.T) {
@@ -797,50 +797,50 @@ func testSearchUsersInTeam(t *testing.T, th *SearchTestHelper) {
} }
users, err := th.Store.User().Search(th.Team.Id, "", optionsWithLimit) users, err := th.Store.User().Search(th.Team.Id, "", optionsWithLimit)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, users, 1) require.Len(t, users, 1)
}) })
} }
func testSearchUsersInTeamUsernameWithDot(t *testing.T, th *SearchTestHelper) { func testSearchUsersInTeamUsernameWithDot(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate.username", "altnickname", "altfirst", "altlast") userAlternate, err := th.createUser("alternate.username", "altnickname", "altfirst", "altlast")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().Search(th.Team.Id, "alternate.", options) users, err := th.Store.User().Search(th.Team.Id, "alternate.", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users)
} }
func testSearchUsersInTeamUsernameWithHyphen(t *testing.T, th *SearchTestHelper) { func testSearchUsersInTeamUsernameWithHyphen(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate-username", "altnickname", "altfirst", "altlast") userAlternate, err := th.createUser("alternate-username", "altnickname", "altfirst", "altlast")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().Search(th.Team.Id, "alternate-", options) users, err := th.Store.User().Search(th.Team.Id, "alternate-", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users)
} }
func testSearchUsersInTeamUsernameWithUnderscore(t *testing.T, th *SearchTestHelper) { func testSearchUsersInTeamUsernameWithUnderscore(t *testing.T, th *SearchTestHelper) {
userAlternate, err := th.createUser("alternate_username", "altnickname", "altfirst", "altlast") userAlternate, err := th.createUser("alternate_username", "altnickname", "altfirst", "altlast")
require.Nil(t, err) require.NoError(t, err)
defer th.deleteUser(userAlternate) defer th.deleteUser(userAlternate)
err = th.addUserToTeams(userAlternate, []string{th.Team.Id}) err = th.addUserToTeams(userAlternate, []string{th.Team.Id})
require.Nil(t, err) require.NoError(t, err)
_, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id}) _, err = th.addUserToChannels(userAlternate, []string{th.ChannelBasic.Id})
require.Nil(t, err) require.NoError(t, err)
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().Search(th.Team.Id, "alternate_", options) users, err := th.Store.User().Search(th.Team.Id, "alternate_", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{userAlternate}, users)
} }
@@ -848,19 +848,19 @@ func testSearchUsersByFullName(t *testing.T, th *SearchTestHelper) {
t.Run("Should search users by full name", func(t *testing.T) { t.Run("Should search users by full name", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().Search(th.Team.Id, "basicfirstname", options) users, err := th.Store.User().Search(th.Team.Id, "basicfirstname", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User, th.User2}, users)
}) })
t.Run("Should search user by full name", func(t *testing.T) { t.Run("Should search user by full name", func(t *testing.T) {
options := createDefaultOptions(true, false, false) options := createDefaultOptions(true, false, false)
users, err := th.Store.User().Search(th.Team.Id, "basicfirstname1", options) users, err := th.Store.User().Search(th.Team.Id, "basicfirstname1", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{th.User}, users)
}) })
t.Run("Should return empty when search by full name and is deactivated", func(t *testing.T) { t.Run("Should return empty when search by full name and is deactivated", func(t *testing.T) {
options := createDefaultOptions(false, false, false) options := createDefaultOptions(false, false, false)
users, err := th.Store.User().Search(th.Team.Id, "basicfirstname1", options) users, err := th.Store.User().Search(th.Team.Id, "basicfirstname1", options)
require.Nil(t, err) require.NoError(t, err)
th.assertUsersMatchInAnyOrder(t, []*model.User{}, users) th.assertUsersMatchInAnyOrder(t, []*model.User{}, users)
}) })
} }

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

@@ -660,9 +660,9 @@ func (s SqlChannelStore) Update(channel *model.Channel) (*model.Channel, error)
} }
defer finalizeTransaction(transaction) defer finalizeTransaction(transaction)
updatedChannel, appErr := s.updateChannelT(transaction, channel) updatedChannel, err := s.updateChannelT(transaction, channel)
if appErr != nil { if err != nil {
return nil, appErr return nil, err
} }
// Additionally propagate the write to the PublicChannels table. // Additionally propagate the write to the PublicChannels table.

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

@@ -34,7 +34,7 @@ func TestChannelSearchQuerySQLInjection(t *testing.T) {
opts := store.ChannelSearchOpts{} opts := store.ChannelSearchOpts{}
builder := s.channelSearchQuery("'or'1'=sleep(3))); -- -", opts, false) builder := s.channelSearchQuery("'or'1'=sleep(3))); -- -", opts, false)
query, _, err := builder.ToSql() query, _, err := builder.ToSql()
require.Nil(t, err) require.NoError(t, err)
assert.NotContains(t, query, "sleep") assert.NotContains(t, query, "sleep")
}) })
} }

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

@@ -350,7 +350,7 @@ func TestCheckIntegrity(t *testing.T) {
require.NotNil(t, results) require.NotNil(t, results)
for result := range results { for result := range results {
require.IsType(t, model.IntegrityCheckResult{}, result) require.IsType(t, model.IntegrityCheckResult{}, result)
require.Nil(t, result.Err) require.NoError(t, result.Err)
switch data := result.Data.(type) { switch data := result.Data.(type) {
case model.RelationalIntegrityCheckData: case model.RelationalIntegrityCheckData:
require.Empty(t, data.Records) require.Empty(t, data.Records)
@@ -371,7 +371,7 @@ func TestCheckParentChildIntegrity(t *testing.T) {
childIdAttr: "NotValid", childIdAttr: "NotValid",
} }
result := checkParentChildIntegrity(store, config) result := checkParentChildIntegrity(store, config)
require.NotNil(t, result.Err) require.Error(t, result.Err)
require.Empty(t, result.Data) require.Empty(t, result.Data)
}) })
}) })
@@ -384,7 +384,7 @@ func TestCheckChannelsCommandWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkChannelsCommandWebhooksIntegrity(store) result := checkChannelsCommandWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -393,7 +393,7 @@ func TestCheckChannelsCommandWebhooksIntegrity(t *testing.T) {
channelId := model.NewId() channelId := model.NewId()
cwh := createCommandWebhook(ss, model.NewId(), model.NewId(), channelId) cwh := createCommandWebhook(ss, model.NewId(), model.NewId(), channelId)
result := checkChannelsCommandWebhooksIntegrity(store) result := checkChannelsCommandWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -412,7 +412,7 @@ func TestCheckChannelsChannelMemberHistoryIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkChannelsChannelMemberHistoryIntegrity(store) result := checkChannelsChannelMemberHistoryIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -423,7 +423,7 @@ func TestCheckChannelsChannelMemberHistoryIntegrity(t *testing.T) {
cmh := createChannelMemberHistory(ss, channel.Id, user.Id) cmh := createChannelMemberHistory(ss, channel.Id, user.Id)
dbmap.Delete(channel) dbmap.Delete(channel)
result := checkChannelsChannelMemberHistoryIntegrity(store) result := checkChannelsChannelMemberHistoryIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -442,7 +442,7 @@ func TestCheckChannelsChannelMembersIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkChannelsChannelMembersIntegrity(store) result := checkChannelsChannelMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -452,7 +452,7 @@ func TestCheckChannelsChannelMembersIntegrity(t *testing.T) {
member := createChannelMemberWithChannelId(ss, channel.Id) member := createChannelMemberWithChannelId(ss, channel.Id)
dbmap.Delete(channel) dbmap.Delete(channel)
result := checkChannelsChannelMembersIntegrity(store) result := checkChannelsChannelMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -470,7 +470,7 @@ func TestCheckChannelsIncomingWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkChannelsIncomingWebhooksIntegrity(store) result := checkChannelsIncomingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -479,7 +479,7 @@ func TestCheckChannelsIncomingWebhooksIntegrity(t *testing.T) {
channelId := model.NewId() channelId := model.NewId()
wh := createIncomingWebhook(ss, model.NewId(), channelId, model.NewId()) wh := createIncomingWebhook(ss, model.NewId(), channelId, model.NewId())
result := checkChannelsIncomingWebhooksIntegrity(store) result := checkChannelsIncomingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -498,7 +498,7 @@ func TestCheckChannelsOutgoingWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkChannelsOutgoingWebhooksIntegrity(store) result := checkChannelsOutgoingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -509,7 +509,7 @@ func TestCheckChannelsOutgoingWebhooksIntegrity(t *testing.T) {
wh := createOutgoingWebhook(ss, model.NewId(), channelId, model.NewId()) wh := createOutgoingWebhook(ss, model.NewId(), channelId, model.NewId())
dbmap.Delete(channel) dbmap.Delete(channel)
result := checkChannelsOutgoingWebhooksIntegrity(store) result := checkChannelsOutgoingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -528,7 +528,7 @@ func TestCheckChannelsPostsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkChannelsPostsIntegrity(store) result := checkChannelsPostsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -536,7 +536,7 @@ func TestCheckChannelsPostsIntegrity(t *testing.T) {
t.Run("should generate a report with one record", func(t *testing.T) { t.Run("should generate a report with one record", func(t *testing.T) {
post := createPostWithChannelId(ss, model.NewId()) post := createPostWithChannelId(ss, model.NewId())
result := checkChannelsPostsIntegrity(store) result := checkChannelsPostsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -555,7 +555,7 @@ func TestCheckCommandsCommandWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkCommandsCommandWebhooksIntegrity(store) result := checkCommandsCommandWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -564,7 +564,7 @@ func TestCheckCommandsCommandWebhooksIntegrity(t *testing.T) {
commandId := model.NewId() commandId := model.NewId()
cwh := createCommandWebhook(ss, commandId, model.NewId(), model.NewId()) cwh := createCommandWebhook(ss, commandId, model.NewId(), model.NewId())
result := checkCommandsCommandWebhooksIntegrity(store) result := checkCommandsCommandWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -583,7 +583,7 @@ func TestCheckPostsFileInfoIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkPostsFileInfoIntegrity(store) result := checkPostsFileInfoIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -592,7 +592,7 @@ func TestCheckPostsFileInfoIntegrity(t *testing.T) {
postId := model.NewId() postId := model.NewId()
info := createFileInfo(ss, postId, model.NewId()) info := createFileInfo(ss, postId, model.NewId())
result := checkPostsFileInfoIntegrity(store) result := checkPostsFileInfoIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -611,7 +611,7 @@ func TestCheckPostsPostsParentIdIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkPostsPostsParentIdIntegrity(store) result := checkPostsPostsParentIdIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -621,7 +621,7 @@ func TestCheckPostsPostsParentIdIntegrity(t *testing.T) {
parent := createPost(ss, model.NewId(), model.NewId(), root.Id, root.Id) parent := createPost(ss, model.NewId(), model.NewId(), root.Id, root.Id)
post := createPost(ss, model.NewId(), model.NewId(), root.Id, parent.Id) post := createPost(ss, model.NewId(), model.NewId(), root.Id, parent.Id)
result := checkPostsPostsParentIdIntegrity(store) result := checkPostsPostsParentIdIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
dbmap.Delete(parent) dbmap.Delete(parent)
@@ -636,7 +636,7 @@ func TestCheckPostsPostsParentIdIntegrity(t *testing.T) {
post := createPost(ss, model.NewId(), model.NewId(), root.Id, parent.Id) post := createPost(ss, model.NewId(), model.NewId(), root.Id, parent.Id)
dbmap.Delete(parent) dbmap.Delete(parent)
result := checkPostsPostsParentIdIntegrity(store) result := checkPostsPostsParentIdIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -656,7 +656,7 @@ func TestCheckPostsPostsRootIdIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkPostsPostsRootIdIntegrity(store) result := checkPostsPostsRootIdIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -667,7 +667,7 @@ func TestCheckPostsPostsRootIdIntegrity(t *testing.T) {
post := createPost(ss, model.NewId(), model.NewId(), root.Id, root.Id) post := createPost(ss, model.NewId(), model.NewId(), root.Id, root.Id)
dbmap.Delete(root) dbmap.Delete(root)
result := checkPostsPostsRootIdIntegrity(store) result := checkPostsPostsRootIdIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -686,7 +686,7 @@ func TestCheckPostsReactionsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkPostsReactionsIntegrity(store) result := checkPostsReactionsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -695,7 +695,7 @@ func TestCheckPostsReactionsIntegrity(t *testing.T) {
postId := model.NewId() postId := model.NewId()
reaction := createReaction(ss, model.NewId(), postId) reaction := createReaction(ss, model.NewId(), postId)
result := checkPostsReactionsIntegrity(store) result := checkPostsReactionsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -713,7 +713,7 @@ func TestCheckSchemesChannelsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkSchemesChannelsIntegrity(store) result := checkSchemesChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -725,7 +725,7 @@ func TestCheckSchemesChannelsIntegrity(t *testing.T) {
channel := createChannelWithSchemeId(ss, &schemeId) channel := createChannelWithSchemeId(ss, &schemeId)
dbmap.Delete(scheme) dbmap.Delete(scheme)
result := checkSchemesChannelsIntegrity(store) result := checkSchemesChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -744,7 +744,7 @@ func TestCheckSchemesTeamsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkSchemesTeamsIntegrity(store) result := checkSchemesTeamsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -756,7 +756,7 @@ func TestCheckSchemesTeamsIntegrity(t *testing.T) {
team := createTeamWithSchemeId(ss, &schemeId) team := createTeamWithSchemeId(ss, &schemeId)
dbmap.Delete(scheme) dbmap.Delete(scheme)
result := checkSchemesTeamsIntegrity(store) result := checkSchemesTeamsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -775,7 +775,7 @@ func TestCheckSessionsAuditsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkSessionsAuditsIntegrity(store) result := checkSessionsAuditsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -787,7 +787,7 @@ func TestCheckSessionsAuditsIntegrity(t *testing.T) {
audit := createAudit(ss, userId, sessionId) audit := createAudit(ss, userId, sessionId)
dbmap.Delete(session) dbmap.Delete(session)
result := checkSessionsAuditsIntegrity(store) result := checkSessionsAuditsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -806,7 +806,7 @@ func TestCheckTeamsChannelsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkTeamsChannelsIntegrity(store) result := checkTeamsChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -814,7 +814,7 @@ func TestCheckTeamsChannelsIntegrity(t *testing.T) {
t.Run("should generate a report with one record", func(t *testing.T) { t.Run("should generate a report with one record", func(t *testing.T) {
channel := createChannelWithTeamId(ss, model.NewId()) channel := createChannelWithTeamId(ss, model.NewId())
result := checkTeamsChannelsIntegrity(store) result := checkTeamsChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -832,7 +832,7 @@ func TestCheckTeamsChannelsIntegrity(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.NotNil(t, direct) require.NotNil(t, direct)
result := checkTeamsChannelsIntegrity(store) result := checkTeamsChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -855,7 +855,7 @@ func TestCheckTeamsChannelsIntegrity(t *testing.T) {
_, err = dbmap.Exec(`UPDATE Channels SET TeamId = 'test' WHERE Id = '` + direct.Id + `'`) _, err = dbmap.Exec(`UPDATE Channels SET TeamId = 'test' WHERE Id = '` + direct.Id + `'`)
require.NoError(t, err) require.NoError(t, err)
result := checkTeamsChannelsIntegrity(store) result := checkTeamsChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 2) require.Len(t, data.Records, 2)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -882,7 +882,7 @@ func TestCheckTeamsCommandsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkTeamsCommandsIntegrity(store) result := checkTeamsCommandsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -891,7 +891,7 @@ func TestCheckTeamsCommandsIntegrity(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
cmd := createCommand(ss, model.NewId(), teamId) cmd := createCommand(ss, model.NewId(), teamId)
result := checkTeamsCommandsIntegrity(store) result := checkTeamsCommandsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -910,7 +910,7 @@ func TestCheckTeamsIncomingWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkTeamsIncomingWebhooksIntegrity(store) result := checkTeamsIncomingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -919,7 +919,7 @@ func TestCheckTeamsIncomingWebhooksIntegrity(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
wh := createIncomingWebhook(ss, model.NewId(), model.NewId(), teamId) wh := createIncomingWebhook(ss, model.NewId(), model.NewId(), teamId)
result := checkTeamsIncomingWebhooksIntegrity(store) result := checkTeamsIncomingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -938,7 +938,7 @@ func TestCheckTeamsOutgoingWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkTeamsOutgoingWebhooksIntegrity(store) result := checkTeamsOutgoingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -947,7 +947,7 @@ func TestCheckTeamsOutgoingWebhooksIntegrity(t *testing.T) {
teamId := model.NewId() teamId := model.NewId()
wh := createOutgoingWebhook(ss, model.NewId(), model.NewId(), teamId) wh := createOutgoingWebhook(ss, model.NewId(), model.NewId(), teamId)
result := checkTeamsOutgoingWebhooksIntegrity(store) result := checkTeamsOutgoingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -966,7 +966,7 @@ func TestCheckTeamsTeamMembersIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkTeamsTeamMembersIntegrity(store) result := checkTeamsTeamMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -976,7 +976,7 @@ func TestCheckTeamsTeamMembersIntegrity(t *testing.T) {
member := createTeamMember(ss, team.Id, model.NewId()) member := createTeamMember(ss, team.Id, model.NewId())
dbmap.Delete(team) dbmap.Delete(team)
result := checkTeamsTeamMembersIntegrity(store) result := checkTeamsTeamMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -994,7 +994,7 @@ func TestCheckUsersAuditsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersAuditsIntegrity(store) result := checkUsersAuditsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1005,7 +1005,7 @@ func TestCheckUsersAuditsIntegrity(t *testing.T) {
audit := createAudit(ss, userId, model.NewId()) audit := createAudit(ss, userId, model.NewId())
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersAuditsIntegrity(store) result := checkUsersAuditsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1024,7 +1024,7 @@ func TestCheckUsersCommandWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersCommandWebhooksIntegrity(store) result := checkUsersCommandWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1033,7 +1033,7 @@ func TestCheckUsersCommandWebhooksIntegrity(t *testing.T) {
userId := model.NewId() userId := model.NewId()
cwh := createCommandWebhook(ss, model.NewId(), userId, model.NewId()) cwh := createCommandWebhook(ss, model.NewId(), userId, model.NewId())
result := checkUsersCommandWebhooksIntegrity(store) result := checkUsersCommandWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1052,7 +1052,7 @@ func TestCheckUsersChannelsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersChannelsIntegrity(store) result := checkUsersChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1060,7 +1060,7 @@ func TestCheckUsersChannelsIntegrity(t *testing.T) {
t.Run("should generate a report with one record", func(t *testing.T) { t.Run("should generate a report with one record", func(t *testing.T) {
channel := createChannelWithCreatorId(ss, model.NewId()) channel := createChannelWithCreatorId(ss, model.NewId())
result := checkUsersChannelsIntegrity(store) result := checkUsersChannelsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1079,7 +1079,7 @@ func TestCheckUsersChannelMemberHistoryIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersChannelMemberHistoryIntegrity(store) result := checkUsersChannelMemberHistoryIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1090,7 +1090,7 @@ func TestCheckUsersChannelMemberHistoryIntegrity(t *testing.T) {
cmh := createChannelMemberHistory(ss, channel.Id, user.Id) cmh := createChannelMemberHistory(ss, channel.Id, user.Id)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersChannelMemberHistoryIntegrity(store) result := checkUsersChannelMemberHistoryIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1109,7 +1109,7 @@ func TestCheckUsersChannelMembersIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersChannelMembersIntegrity(store) result := checkUsersChannelMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1120,7 +1120,7 @@ func TestCheckUsersChannelMembersIntegrity(t *testing.T) {
member := createChannelMember(ss, channel.Id, user.Id) member := createChannelMember(ss, channel.Id, user.Id)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersChannelMembersIntegrity(store) result := checkUsersChannelMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1139,7 +1139,7 @@ func TestCheckUsersCommandsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersCommandsIntegrity(store) result := checkUsersCommandsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1148,7 +1148,7 @@ func TestCheckUsersCommandsIntegrity(t *testing.T) {
userId := model.NewId() userId := model.NewId()
cmd := createCommand(ss, userId, model.NewId()) cmd := createCommand(ss, userId, model.NewId())
result := checkUsersCommandsIntegrity(store) result := checkUsersCommandsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1167,7 +1167,7 @@ func TestCheckUsersCompliancesIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersCompliancesIntegrity(store) result := checkUsersCompliancesIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1178,7 +1178,7 @@ func TestCheckUsersCompliancesIntegrity(t *testing.T) {
compliance := createCompliance(ss, userId) compliance := createCompliance(ss, userId)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersCompliancesIntegrity(store) result := checkUsersCompliancesIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1197,7 +1197,7 @@ func TestCheckUsersEmojiIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersEmojiIntegrity(store) result := checkUsersEmojiIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1208,7 +1208,7 @@ func TestCheckUsersEmojiIntegrity(t *testing.T) {
emoji := createEmoji(ss, userId) emoji := createEmoji(ss, userId)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersEmojiIntegrity(store) result := checkUsersEmojiIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1227,7 +1227,7 @@ func TestCheckUsersFileInfoIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersFileInfoIntegrity(store) result := checkUsersFileInfoIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1238,7 +1238,7 @@ func TestCheckUsersFileInfoIntegrity(t *testing.T) {
info := createFileInfo(ss, model.NewId(), userId) info := createFileInfo(ss, model.NewId(), userId)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersFileInfoIntegrity(store) result := checkUsersFileInfoIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1257,7 +1257,7 @@ func TestCheckUsersIncomingWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersIncomingWebhooksIntegrity(store) result := checkUsersIncomingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1266,7 +1266,7 @@ func TestCheckUsersIncomingWebhooksIntegrity(t *testing.T) {
userId := model.NewId() userId := model.NewId()
wh := createIncomingWebhook(ss, userId, model.NewId(), model.NewId()) wh := createIncomingWebhook(ss, userId, model.NewId(), model.NewId())
result := checkUsersIncomingWebhooksIntegrity(store) result := checkUsersIncomingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1285,7 +1285,7 @@ func TestCheckUsersOAuthAccessDataIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersOAuthAccessDataIntegrity(store) result := checkUsersOAuthAccessDataIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1296,7 +1296,7 @@ func TestCheckUsersOAuthAccessDataIntegrity(t *testing.T) {
ad := createOAuthAccessData(ss, userId) ad := createOAuthAccessData(ss, userId)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersOAuthAccessDataIntegrity(store) result := checkUsersOAuthAccessDataIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1315,7 +1315,7 @@ func TestCheckUsersOAuthAppsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersOAuthAppsIntegrity(store) result := checkUsersOAuthAppsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1326,7 +1326,7 @@ func TestCheckUsersOAuthAppsIntegrity(t *testing.T) {
app := createOAuthApp(ss, userId) app := createOAuthApp(ss, userId)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersOAuthAppsIntegrity(store) result := checkUsersOAuthAppsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1345,7 +1345,7 @@ func TestCheckUsersOAuthAuthDataIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersOAuthAuthDataIntegrity(store) result := checkUsersOAuthAuthDataIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1356,7 +1356,7 @@ func TestCheckUsersOAuthAuthDataIntegrity(t *testing.T) {
ad := createOAuthAuthData(ss, userId) ad := createOAuthAuthData(ss, userId)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersOAuthAuthDataIntegrity(store) result := checkUsersOAuthAuthDataIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1375,7 +1375,7 @@ func TestCheckUsersOutgoingWebhooksIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersOutgoingWebhooksIntegrity(store) result := checkUsersOutgoingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1384,7 +1384,7 @@ func TestCheckUsersOutgoingWebhooksIntegrity(t *testing.T) {
userId := model.NewId() userId := model.NewId()
wh := createOutgoingWebhook(ss, userId, model.NewId(), model.NewId()) wh := createOutgoingWebhook(ss, userId, model.NewId(), model.NewId())
result := checkUsersOutgoingWebhooksIntegrity(store) result := checkUsersOutgoingWebhooksIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1403,7 +1403,7 @@ func TestCheckUsersPostsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersPostsIntegrity(store) result := checkUsersPostsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1411,7 +1411,7 @@ func TestCheckUsersPostsIntegrity(t *testing.T) {
t.Run("should generate a report with one record", func(t *testing.T) { t.Run("should generate a report with one record", func(t *testing.T) {
post := createPostWithUserId(ss, model.NewId()) post := createPostWithUserId(ss, model.NewId())
result := checkUsersPostsIntegrity(store) result := checkUsersPostsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1430,7 +1430,7 @@ func TestCheckUsersPreferencesIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersPreferencesIntegrity(store) result := checkUsersPreferencesIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1442,7 +1442,7 @@ func TestCheckUsersPreferencesIntegrity(t *testing.T) {
preferences := createPreferences(ss, userId) preferences := createPreferences(ss, userId)
require.NotNil(t, preferences) require.NotNil(t, preferences)
result := checkUsersPreferencesIntegrity(store) result := checkUsersPreferencesIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
dbmap.Exec(`DELETE FROM Preferences`) dbmap.Exec(`DELETE FROM Preferences`)
@@ -1457,7 +1457,7 @@ func TestCheckUsersPreferencesIntegrity(t *testing.T) {
require.NotNil(t, preferences) require.NotNil(t, preferences)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersPreferencesIntegrity(store) result := checkUsersPreferencesIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1476,7 +1476,7 @@ func TestCheckUsersReactionsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersReactionsIntegrity(store) result := checkUsersReactionsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1487,7 +1487,7 @@ func TestCheckUsersReactionsIntegrity(t *testing.T) {
reaction := createReaction(ss, user.Id, model.NewId()) reaction := createReaction(ss, user.Id, model.NewId())
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersReactionsIntegrity(store) result := checkUsersReactionsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1505,7 +1505,7 @@ func TestCheckUsersSessionsIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersSessionsIntegrity(store) result := checkUsersSessionsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1514,7 +1514,7 @@ func TestCheckUsersSessionsIntegrity(t *testing.T) {
userId := model.NewId() userId := model.NewId()
session := createSession(ss, userId) session := createSession(ss, userId)
result := checkUsersSessionsIntegrity(store) result := checkUsersSessionsIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1533,7 +1533,7 @@ func TestCheckUsersStatusIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersStatusIntegrity(store) result := checkUsersStatusIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1544,7 +1544,7 @@ func TestCheckUsersStatusIntegrity(t *testing.T) {
status := createStatus(ss, user.Id) status := createStatus(ss, user.Id)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersStatusIntegrity(store) result := checkUsersStatusIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1562,7 +1562,7 @@ func TestCheckUsersTeamMembersIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersTeamMembersIntegrity(store) result := checkUsersTeamMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1573,7 +1573,7 @@ func TestCheckUsersTeamMembersIntegrity(t *testing.T) {
member := createTeamMember(ss, team.Id, user.Id) member := createTeamMember(ss, team.Id, user.Id)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersTeamMembersIntegrity(store) result := checkUsersTeamMembersIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{
@@ -1592,7 +1592,7 @@ func TestCheckUsersUserAccessTokensIntegrity(t *testing.T) {
t.Run("should generate a report with no records", func(t *testing.T) { t.Run("should generate a report with no records", func(t *testing.T) {
result := checkUsersUserAccessTokensIntegrity(store) result := checkUsersUserAccessTokensIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Empty(t, data.Records) require.Empty(t, data.Records)
}) })
@@ -1603,7 +1603,7 @@ func TestCheckUsersUserAccessTokensIntegrity(t *testing.T) {
uat := createUserAccessToken(ss, user.Id) uat := createUserAccessToken(ss, user.Id)
dbmap.Delete(user) dbmap.Delete(user)
result := checkUsersUserAccessTokensIntegrity(store) result := checkUsersUserAccessTokensIntegrity(store)
require.Nil(t, result.Err) require.NoError(t, result.Err)
data := result.Data.(model.RelationalIntegrityCheckData) data := result.Data.(model.RelationalIntegrityCheckData)
require.Len(t, data.Records, 1) require.Len(t, data.Records, 1)
require.Equal(t, model.OrphanedRecord{ require.Equal(t, model.OrphanedRecord{

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

@@ -53,7 +53,7 @@ func TestDeleteUnusedFeatures(t *testing.T) {
} }
err := ss.Preference().Save(&features) err := ss.Preference().Save(&features)
require.Nil(t, err) require.NoError(t, err)
ss.Preference().(*SqlPreferenceStore).deleteUnusedFeatures() ss.Preference().(*SqlPreferenceStore).deleteUnusedFeatures()
@@ -63,7 +63,7 @@ func TestDeleteUnusedFeatures(t *testing.T) {
WHERE Category = :Category WHERE Category = :Category
AND Value = :Val AND Value = :Val
AND Name LIKE '`+store.FeatureTogglePrefix+`%'`, map[string]interface{}{"Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, "Val": "false"}); err != nil { AND Name LIKE '`+store.FeatureTogglePrefix+`%'`, map[string]interface{}{"Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, "Val": "false"}); err != nil {
require.Nil(t, err) require.NoError(t, err)
} else if val != 0 { } else if val != 0 {
require.Fail(t, "Found %d features with value 'false', expected all to be deleted", val) require.Fail(t, "Found %d features with value 'false', expected all to be deleted", val)
} }
@@ -74,7 +74,7 @@ func TestDeleteUnusedFeatures(t *testing.T) {
WHERE Category = :Category WHERE Category = :Category
AND Value = :Val AND Value = :Val
AND Name LIKE '`+store.FeatureTogglePrefix+`%'`, map[string]interface{}{"Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, "Val": "true"}); err != nil { AND Name LIKE '`+store.FeatureTogglePrefix+`%'`, map[string]interface{}{"Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, "Val": "true"}); err != nil {
require.Nil(t, err) require.NoError(t, err)
} else if val == 0 { } else if val == 0 {
require.Fail(t, "Found %d features with value 'true', expected to find at least %d features", val, 2) require.Fail(t, "Found %d features with value 'true', expected to find at least %d features", val, 2)
} }

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

@@ -85,9 +85,9 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr
// Fetch the default system scheme roles to populate default permissions. // Fetch the default system scheme roles to populate default permissions.
defaultRoleNames := []string{model.TEAM_ADMIN_ROLE_ID, model.TEAM_USER_ROLE_ID, model.TEAM_GUEST_ROLE_ID, model.CHANNEL_ADMIN_ROLE_ID, model.CHANNEL_USER_ROLE_ID, model.CHANNEL_GUEST_ROLE_ID} defaultRoleNames := []string{model.TEAM_ADMIN_ROLE_ID, model.TEAM_USER_ROLE_ID, model.TEAM_GUEST_ROLE_ID, model.CHANNEL_ADMIN_ROLE_ID, model.CHANNEL_USER_ROLE_ID, model.CHANNEL_GUEST_ROLE_ID}
defaultRoles := make(map[string]*model.Role) defaultRoles := make(map[string]*model.Role)
roles, appErr := s.SqlStore.Role().GetByNames(defaultRoleNames) roles, err := s.SqlStore.Role().GetByNames(defaultRoleNames)
if appErr != nil { if err != nil {
return nil, appErr return nil, err
} }
for _, role := range roles { for _, role := range roles {

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

@@ -249,9 +249,9 @@ func (me SqlSessionStore) UpdateDeviceId(id string, deviceId string, expiresAt i
} }
func (me SqlSessionStore) UpdateProps(session *model.Session) error { func (me SqlSessionStore) UpdateProps(session *model.Session) error {
oldSession, appErr := me.Get(session.Id) oldSession, err := me.Get(session.Id)
if appErr != nil { if err != nil {
return appErr return err
} }
oldSession.Props = session.Props oldSession.Props = session.Props

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

@@ -371,7 +371,7 @@ func TestGetDbVersion(t *testing.T) {
store := New(*settings, nil) store := New(*settings, nil)
version, err := store.GetDbVersion(false) version, err := store.GetDbVersion(false)
require.Nil(t, err) require.NoError(t, err)
require.Regexp(t, regexp.MustCompile(`\d+\.\d+(\.\d+)?`), version) require.Regexp(t, regexp.MustCompile(`\d+\.\d+(\.\d+)?`), version)
}) })
} }

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

@@ -87,7 +87,7 @@ func TestSaveSchemaVersion(t *testing.T) {
t.Run("set earliest version", func(t *testing.T) { t.Run("set earliest version", func(t *testing.T) {
saveSchemaVersion(sqlStore, Version300) saveSchemaVersion(sqlStore, Version300)
props, err := ss.System().Get() props, err := ss.System().Get()
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, Version300, props["Version"]) require.Equal(t, Version300, props["Version"])
require.Equal(t, Version300, sqlStore.GetCurrentSchemaVersion()) require.Equal(t, Version300, sqlStore.GetCurrentSchemaVersion())
@@ -96,7 +96,7 @@ func TestSaveSchemaVersion(t *testing.T) {
t.Run("set current version", func(t *testing.T) { t.Run("set current version", func(t *testing.T) {
saveSchemaVersion(sqlStore, CurrentSchemaVersion) saveSchemaVersion(sqlStore, CurrentSchemaVersion)
props, err := ss.System().Get() props, err := ss.System().Get()
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, CurrentSchemaVersion, props["Version"]) require.Equal(t, CurrentSchemaVersion, props["Version"])
require.Equal(t, CurrentSchemaVersion, sqlStore.GetCurrentSchemaVersion()) require.Equal(t, CurrentSchemaVersion, sqlStore.GetCurrentSchemaVersion())

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

@@ -20,32 +20,32 @@ func TestAuditStore(t *testing.T, ss store.Store) {
func testAuditStore(t *testing.T, ss store.Store) { func testAuditStore(t *testing.T, ss store.Store) {
audit := &model.Audit{UserId: model.NewId(), IpAddress: "ipaddress", Action: "Action"} audit := &model.Audit{UserId: model.NewId(), IpAddress: "ipaddress", Action: "Action"}
require.Nil(t, ss.Audit().Save(audit)) require.NoError(t, ss.Audit().Save(audit))
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
require.Nil(t, ss.Audit().Save(audit)) require.NoError(t, ss.Audit().Save(audit))
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
require.Nil(t, ss.Audit().Save(audit)) require.NoError(t, ss.Audit().Save(audit))
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
audit.ExtraInfo = "extra" audit.ExtraInfo = "extra"
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
require.Nil(t, ss.Audit().Save(audit)) require.NoError(t, ss.Audit().Save(audit))
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
audits, err := ss.Audit().Get(audit.UserId, 0, 100) audits, err := ss.Audit().Get(audit.UserId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, audits, 4) assert.Len(t, audits, 4)
assert.Equal(t, "extra", audits[0].ExtraInfo) assert.Equal(t, "extra", audits[0].ExtraInfo)
audits, err = ss.Audit().Get("missing", 0, 100) audits, err = ss.Audit().Get("missing", 0, 100)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, audits) assert.Empty(t, audits)
audits, err = ss.Audit().Get("", 0, 100) audits, err = ss.Audit().Get("", 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, audits, 4, "Failed to save and retrieve 4 audit logs") require.Len(t, audits, 4, "Failed to save and retrieve 4 audit logs")
require.Nil(t, ss.Audit().PermanentDeleteByUser(audit.UserId)) require.NoError(t, ss.Audit().PermanentDeleteByUser(audit.UserId))
} }

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

@@ -15,11 +15,11 @@ import (
func makeBotWithUser(t *testing.T, ss store.Store, bot *model.Bot) (*model.Bot, *model.User) { func makeBotWithUser(t *testing.T, ss store.Store, bot *model.Bot) (*model.Bot, *model.User) {
user, err := ss.User().Save(model.UserFromBot(bot)) user, err := ss.User().Save(model.UserFromBot(bot))
require.Nil(t, err) require.NoError(t, err)
bot.UserId = user.Id bot.UserId = user.Id
bot, nErr := ss.Bot().Save(bot) bot, nErr := ss.Bot().Save(bot)
require.Nil(t, nErr) require.NoError(t, nErr)
return bot, user return bot, user
} }
@@ -41,9 +41,9 @@ func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) {
}) })
deletedBot.DeleteAt = 1 deletedBot.DeleteAt = 1
deletedBot, err := ss.Bot().Update(deletedBot) deletedBot, err := ss.Bot().Update(deletedBot)
require.Nil(t, err) require.NoError(t, err)
defer func() { require.Nil(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(deletedBot.UserId)) }()
permanentlyDeletedBot, _ := makeBotWithUser(t, ss, &model.Bot{ permanentlyDeletedBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "permanently_deleted_bot", Username: "permanently_deleted_bot",
@@ -52,8 +52,8 @@ func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) {
LastIconUpdate: model.GetMillis(), LastIconUpdate: model.GetMillis(),
DeleteAt: 0, DeleteAt: 0,
}) })
require.Nil(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId)) require.NoError(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId))
defer func() { require.Nil(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }()
b1, _ := makeBotWithUser(t, ss, &model.Bot{ b1, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b1", Username: "b1",
@@ -61,8 +61,8 @@ func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) {
OwnerId: model.NewId(), OwnerId: model.NewId(),
LastIconUpdate: model.GetMillis(), LastIconUpdate: model.GetMillis(),
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b1.UserId)) }()
b2, _ := makeBotWithUser(t, ss, &model.Bot{ b2, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b2", Username: "b2",
@@ -70,8 +70,8 @@ func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) {
OwnerId: model.NewId(), OwnerId: model.NewId(),
LastIconUpdate: 0, LastIconUpdate: 0,
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }()
// Artificially set b2.LastIconUpdate to NULL to verify handling of same. // Artificially set b2.LastIconUpdate to NULL to verify handling of same.
_, sqlErr := s.GetMaster().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'") _, sqlErr := s.GetMaster().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
@@ -79,40 +79,40 @@ func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get non-existent bot", func(t *testing.T) { t.Run("get non-existent bot", func(t *testing.T) {
_, err := ss.Bot().Get("unknown", false) _, err := ss.Bot().Get("unknown", false)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
}) })
t.Run("get deleted bot", func(t *testing.T) { t.Run("get deleted bot", func(t *testing.T) {
_, err := ss.Bot().Get(deletedBot.UserId, false) _, err := ss.Bot().Get(deletedBot.UserId, false)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
}) })
t.Run("get deleted bot, include deleted", func(t *testing.T) { t.Run("get deleted bot, include deleted", func(t *testing.T) {
bot, err := ss.Bot().Get(deletedBot.UserId, true) bot, err := ss.Bot().Get(deletedBot.UserId, true)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, deletedBot, bot) require.Equal(t, deletedBot, bot)
}) })
t.Run("get permanently deleted bot", func(t *testing.T) { t.Run("get permanently deleted bot", func(t *testing.T) {
_, err := ss.Bot().Get(permanentlyDeletedBot.UserId, false) _, err := ss.Bot().Get(permanentlyDeletedBot.UserId, false)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
}) })
t.Run("get bot 1", func(t *testing.T) { t.Run("get bot 1", func(t *testing.T) {
bot, err := ss.Bot().Get(b1.UserId, false) bot, err := ss.Bot().Get(b1.UserId, false)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, b1, bot) require.Equal(t, b1, bot)
}) })
t.Run("get bot 2", func(t *testing.T) { t.Run("get bot 2", func(t *testing.T) {
bot, err := ss.Bot().Get(b2.UserId, false) bot, err := ss.Bot().Get(b2.UserId, false)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, b2, bot) require.Equal(t, b2, bot)
}) })
} }
@@ -129,9 +129,9 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
}) })
deletedBot.DeleteAt = 1 deletedBot.DeleteAt = 1
deletedBot, err := ss.Bot().Update(deletedBot) deletedBot, err := ss.Bot().Update(deletedBot)
require.Nil(t, err) require.NoError(t, err)
defer func() { require.Nil(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(deletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(deletedBot.UserId)) }()
permanentlyDeletedBot, _ := makeBotWithUser(t, ss, &model.Bot{ permanentlyDeletedBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "permanently_deleted_bot", Username: "permanently_deleted_bot",
@@ -140,8 +140,8 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
LastIconUpdate: model.GetMillis(), LastIconUpdate: model.GetMillis(),
DeleteAt: 0, DeleteAt: 0,
}) })
require.Nil(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId)) require.NoError(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId))
defer func() { require.Nil(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }()
b1, _ := makeBotWithUser(t, ss, &model.Bot{ b1, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b1", Username: "b1",
@@ -149,8 +149,8 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
OwnerId: OwnerId1, OwnerId: OwnerId1,
LastIconUpdate: model.GetMillis(), LastIconUpdate: model.GetMillis(),
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b1.UserId)) }()
b2, _ := makeBotWithUser(t, ss, &model.Bot{ b2, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b2", Username: "b2",
@@ -158,8 +158,8 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
OwnerId: OwnerId1, OwnerId: OwnerId1,
LastIconUpdate: 0, LastIconUpdate: 0,
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }()
// Artificially set b2.LastIconUpdate to NULL to verify handling of same. // Artificially set b2.LastIconUpdate to NULL to verify handling of same.
_, sqlErr := s.GetMaster().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'") _, sqlErr := s.GetMaster().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
@@ -167,7 +167,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get original bots", func(t *testing.T) { t.Run("get original bots", func(t *testing.T) {
bot, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10}) bot, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b1, b1,
b2, b2,
@@ -179,40 +179,40 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
Description: "The third bot", Description: "The third bot",
OwnerId: OwnerId1, OwnerId: OwnerId1,
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b3.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b3.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b3.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b3.UserId)) }()
b4, _ := makeBotWithUser(t, ss, &model.Bot{ b4, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b4", Username: "b4",
Description: "The fourth bot", Description: "The fourth bot",
OwnerId: OwnerId2, OwnerId: OwnerId2,
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b4.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b4.UserId)) }()
deletedUser := model.User{ deletedUser := model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
} }
_, err1 := ss.User().Save(&deletedUser) _, err1 := ss.User().Save(&deletedUser)
require.Nil(t, err1, "couldn't save user") require.NoError(t, err1, "couldn't save user")
deletedUser.DeleteAt = model.GetMillis() deletedUser.DeleteAt = model.GetMillis()
_, err2 := ss.User().Update(&deletedUser, true) _, err2 := ss.User().Update(&deletedUser, true)
require.Nil(t, err2, "couldn't delete user") require.NoError(t, err2, "couldn't delete user")
defer func() { require.Nil(t, ss.User().PermanentDelete(deletedUser.Id)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(deletedUser.Id)) }()
ob5, _ := makeBotWithUser(t, ss, &model.Bot{ ob5, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "ob5", Username: "ob5",
Description: "Orphaned bot 5", Description: "Orphaned bot 5",
OwnerId: deletedUser.Id, OwnerId: deletedUser.Id,
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b4.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b4.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b4.UserId)) }()
t.Run("get newly created bot stoo", func(t *testing.T) { t.Run("get newly created bot stoo", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b1, b1,
b2, b2,
@@ -224,7 +224,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get orphaned", func(t *testing.T) { t.Run("get orphaned", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, OnlyOrphaned: true}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, OnlyOrphaned: true})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
ob5, ob5,
}, bots) }, bots)
@@ -232,7 +232,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get page=0, per_page=2", func(t *testing.T) { t.Run("get page=0, per_page=2", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 2}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 2})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b1, b1,
b2, b2,
@@ -241,7 +241,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get page=1, limit=2", func(t *testing.T) { t.Run("get page=1, limit=2", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 1, PerPage: 2}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 1, PerPage: 2})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b3, b3,
b4, b4,
@@ -250,13 +250,13 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get page=5, perpage=1000", func(t *testing.T) { t.Run("get page=5, perpage=1000", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 5, PerPage: 1000}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 5, PerPage: 1000})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{}, bots) require.Equal(t, []*model.Bot{}, bots)
}) })
t.Run("get offset=0, limit=2, include deleted", func(t *testing.T) { t.Run("get offset=0, limit=2, include deleted", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 2, IncludeDeleted: true}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 2, IncludeDeleted: true})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
deletedBot, deletedBot,
b1, b1,
@@ -265,7 +265,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get offset=2, limit=2, include deleted", func(t *testing.T) { t.Run("get offset=2, limit=2, include deleted", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 1, PerPage: 2, IncludeDeleted: true}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 1, PerPage: 2, IncludeDeleted: true})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b2, b2,
b3, b3,
@@ -274,7 +274,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get offset=0, limit=10, creator id 1", func(t *testing.T) { t.Run("get offset=0, limit=10, creator id 1", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, OwnerId: OwnerId1}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, OwnerId: OwnerId1})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b1, b1,
b2, b2,
@@ -284,7 +284,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get offset=0, limit=10, creator id 2", func(t *testing.T) { t.Run("get offset=0, limit=10, creator id 2", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, OwnerId: OwnerId2}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, OwnerId: OwnerId2})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b4, b4,
}, bots) }, bots)
@@ -292,7 +292,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get offset=0, limit=10, include deleted, creator id 1", func(t *testing.T) { t.Run("get offset=0, limit=10, include deleted, creator id 1", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, IncludeDeleted: true, OwnerId: OwnerId1}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, IncludeDeleted: true, OwnerId: OwnerId1})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
deletedBot, deletedBot,
b1, b1,
@@ -303,7 +303,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
t.Run("get offset=0, limit=10, include deleted, creator id 2", func(t *testing.T) { t.Run("get offset=0, limit=10, include deleted, creator id 2", func(t *testing.T) {
bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, IncludeDeleted: true, OwnerId: OwnerId2}) bots, err := ss.Bot().GetAll(&model.BotGetOptions{Page: 0, PerPage: 10, IncludeDeleted: true, OwnerId: OwnerId2})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, []*model.Bot{ require.Equal(t, []*model.Bot{
b4, b4,
}, bots) }, bots)
@@ -319,7 +319,7 @@ func testBotStoreSave(t *testing.T, ss store.Store) {
} }
_, err := ss.Bot().Save(bot) _, err := ss.Bot().Save(bot)
require.NotNil(t, err) require.Error(t, err)
var appErr *model.AppError var appErr *model.AppError
require.True(t, errors.As(err, &appErr)) require.True(t, errors.As(err, &appErr))
// require.Equal(t, "model.bot.is_valid.username.app_error", err.Id) // require.Equal(t, "model.bot.is_valid.username.app_error", err.Id)
@@ -333,13 +333,13 @@ func testBotStoreSave(t *testing.T, ss store.Store) {
} }
user, err := ss.User().Save(model.UserFromBot(bot)) user, err := ss.User().Save(model.UserFromBot(bot))
require.Nil(t, err) require.NoError(t, err)
defer func() { require.Nil(t, ss.User().PermanentDelete(user.Id)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(user.Id)) }()
bot.UserId = user.Id bot.UserId = user.Id
returnedNewBot, nErr := ss.Bot().Save(bot) returnedNewBot, nErr := ss.Bot().Save(bot)
require.Nil(t, nErr) require.NoError(t, nErr)
defer func() { require.Nil(t, ss.Bot().PermanentDelete(bot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(bot.UserId)) }()
// Verify the returned bot matches the saved bot, modulo expected changes // Verify the returned bot matches the saved bot, modulo expected changes
require.NotEqual(t, 0, returnedNewBot.CreateAt) require.NotEqual(t, 0, returnedNewBot.CreateAt)
@@ -353,7 +353,7 @@ func testBotStoreSave(t *testing.T, ss store.Store) {
// Verify the actual bot in the database matches the saved bot. // Verify the actual bot in the database matches the saved bot.
actualNewBot, nErr := ss.Bot().Get(bot.UserId, false) actualNewBot, nErr := ss.Bot().Get(bot.UserId, false)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, bot, actualNewBot) require.Equal(t, bot, actualNewBot)
}) })
} }
@@ -364,13 +364,13 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
Username: "existing_bot", Username: "existing_bot",
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(existingBot.UserId)) }()
bot := existingBot.Clone() bot := existingBot.Clone()
bot.Username = "invalid username" bot.Username = "invalid username"
_, err := ss.Bot().Update(bot) _, err := ss.Bot().Update(bot)
require.NotNil(t, err) require.Error(t, err)
var appErr *model.AppError var appErr *model.AppError
require.True(t, errors.As(err, &appErr)) require.True(t, errors.As(err, &appErr))
require.Equal(t, "model.bot.is_valid.username.app_error", appErr.Id) require.Equal(t, "model.bot.is_valid.username.app_error", appErr.Id)
@@ -381,8 +381,8 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
Username: "existing_bot", Username: "existing_bot",
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(existingBot.UserId)) }()
bot := existingBot.Clone() bot := existingBot.Clone()
bot.OwnerId = model.NewId() bot.OwnerId = model.NewId()
@@ -393,7 +393,7 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
bot.DeleteAt = 100000 // Allowed bot.DeleteAt = 100000 // Allowed
returnedBot, err := ss.Bot().Update(bot) returnedBot, err := ss.Bot().Update(bot)
require.Nil(t, err) require.NoError(t, err)
// Verify the returned bot matches the updated bot, modulo expected timestamp changes // Verify the returned bot matches the updated bot, modulo expected timestamp changes
require.Equal(t, existingBot.CreateAt, returnedBot.CreateAt) require.Equal(t, existingBot.CreateAt, returnedBot.CreateAt)
@@ -407,7 +407,7 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
// Verify the actual (now deleted) bot in the database // Verify the actual (now deleted) bot in the database
actualBot, err := ss.Bot().Get(bot.UserId, true) actualBot, err := ss.Bot().Get(bot.UserId, true)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, bot, actualBot) require.Equal(t, bot, actualBot)
}) })
@@ -416,18 +416,18 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
Username: "existing_bot", Username: "existing_bot",
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(existingBot.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(existingBot.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(existingBot.UserId)) }()
existingBot.DeleteAt = 100000 existingBot.DeleteAt = 100000
existingBot, err := ss.Bot().Update(existingBot) existingBot, err := ss.Bot().Update(existingBot)
require.Nil(t, err) require.NoError(t, err)
bot := existingBot.Clone() bot := existingBot.Clone()
bot.DeleteAt = 0 bot.DeleteAt = 0
returnedBot, err := ss.Bot().Update(bot) returnedBot, err := ss.Bot().Update(bot)
require.Nil(t, err) require.NoError(t, err)
// Verify the returned bot matches the updated bot, modulo expected timestamp changes // Verify the returned bot matches the updated bot, modulo expected timestamp changes
require.EqualValues(t, 0, returnedBot.DeleteAt) require.EqualValues(t, 0, returnedBot.DeleteAt)
@@ -435,7 +435,7 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
// Verify the actual bot in the database // Verify the actual bot in the database
actualBot, err := ss.Bot().Get(bot.UserId, false) actualBot, err := ss.Bot().Get(bot.UserId, false)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, bot, actualBot) require.Equal(t, bot, actualBot)
}) })
} }
@@ -445,24 +445,24 @@ func testBotStorePermanentDelete(t *testing.T, ss store.Store) {
Username: "b1", Username: "b1",
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b1.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b1.UserId)) }()
b2, _ := makeBotWithUser(t, ss, &model.Bot{ b2, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b2", Username: "b2",
OwnerId: model.NewId(), OwnerId: model.NewId(),
}) })
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.Bot().PermanentDelete(b2.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b2.UserId)) }() defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }()
t.Run("permanently delete a non-existent bot", func(t *testing.T) { t.Run("permanently delete a non-existent bot", func(t *testing.T) {
err := ss.Bot().PermanentDelete("unknown") err := ss.Bot().PermanentDelete("unknown")
require.Nil(t, err) require.NoError(t, err)
}) })
t.Run("permanently delete bot", func(t *testing.T) { t.Run("permanently delete bot", func(t *testing.T) {
err := ss.Bot().PermanentDelete(b1.UserId) err := ss.Bot().PermanentDelete(b1.UserId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Bot().Get(b1.UserId, false) _, err = ss.Bot().Get(b1.UserId, false)
require.Error(t, err) require.Error(t, err)

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

@@ -32,7 +32,7 @@ func testLogJoinEvent(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, err := ss.Channel().Save(&ch, -1) channel, err := ss.Channel().Save(&ch, -1)
require.Nil(t, err) require.NoError(t, err)
// and a test user // and a test user
user := model.User{ user := model.User{
@@ -41,12 +41,12 @@ func testLogJoinEvent(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
userPtr, err := ss.User().Save(&user) userPtr, err := ss.User().Save(&user)
require.Nil(t, err) require.NoError(t, err)
user = *userPtr user = *userPtr
// log a join event // log a join event
err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()) err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis())
assert.Nil(t, err) assert.NoError(t, err)
} }
func testLogLeaveEvent(t *testing.T, ss store.Store) { func testLogLeaveEvent(t *testing.T, ss store.Store) {
@@ -58,7 +58,7 @@ func testLogLeaveEvent(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, err := ss.Channel().Save(&ch, -1) channel, err := ss.Channel().Save(&ch, -1)
require.Nil(t, err) require.NoError(t, err)
// and a test user // and a test user
user := model.User{ user := model.User{
@@ -67,15 +67,15 @@ func testLogLeaveEvent(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
userPtr, err := ss.User().Save(&user) userPtr, err := ss.User().Save(&user)
require.Nil(t, err) require.NoError(t, err)
user = *userPtr user = *userPtr
// log a join event, followed by a leave event // log a join event, followed by a leave event
err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis()) err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis())
assert.Nil(t, err) assert.NoError(t, err)
err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, model.GetMillis()) err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, model.GetMillis())
assert.Nil(t, err) assert.NoError(t, err)
} }
func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) { func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
@@ -87,7 +87,7 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, err := ss.Channel().Save(ch, -1) channel, err := ss.Channel().Save(ch, -1)
require.Nil(t, err) require.NoError(t, err)
// and a test user // and a test user
user := model.User{ user := model.User{
@@ -96,7 +96,7 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
userPtr, err := ss.User().Save(&user) userPtr, err := ss.User().Save(&user)
require.Nil(t, err) require.NoError(t, err)
user = *userPtr user = *userPtr
// the user was previously in the channel a long time ago, before the export period starts // the user was previously in the channel a long time ago, before the export period starts
@@ -105,24 +105,24 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
leaveTime := model.GetMillis() - 20000 leaveTime := model.GetMillis() - 20000
joinTime := leaveTime - 10000 joinTime := leaveTime - 10000
err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, joinTime) err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, joinTime)
require.Nil(t, err) require.NoError(t, err)
err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, leaveTime) err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, leaveTime)
require.Nil(t, err) require.NoError(t, err)
// log a join event // log a join event
leaveTime = model.GetMillis() leaveTime = model.GetMillis()
joinTime = leaveTime - 10000 joinTime = leaveTime - 10000
err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, joinTime) err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, joinTime)
require.Nil(t, err) require.NoError(t, err)
// case 1: user joins and leaves the channel before the export period begins // case 1: user joins and leaves the channel before the export period begins
channelMembers, err := ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-500, joinTime-100, channel.Id) channelMembers, err := ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-500, joinTime-100, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, channelMembers) assert.Empty(t, channelMembers)
// case 2: user joins the channel after the export period begins, but has not yet left the channel when the export period ends // case 2: user joins the channel after the export period begins, but has not yet left the channel when the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, joinTime+500, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, joinTime+500, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -133,7 +133,7 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
// case 3: user joins the channel before the export period begins, but has not yet left the channel when the export period ends // case 3: user joins the channel before the export period begins, but has not yet left the channel when the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, joinTime+500, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, joinTime+500, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -144,11 +144,11 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
// add a leave time for the user // add a leave time for the user
err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, leaveTime) err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, leaveTime)
require.Nil(t, err) require.NoError(t, err)
// case 4: user joins the channel before the export period begins, but has not yet left the channel when the export period ends // case 4: user joins the channel before the export period begins, but has not yet left the channel when the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, leaveTime-100, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, leaveTime-100, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -159,7 +159,7 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
// case 5: user joins the channel after the export period begins, and leaves the channel before the export period ends // case 5: user joins the channel after the export period begins, and leaves the channel before the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, leaveTime+100, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, leaveTime+100, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -170,7 +170,7 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
// case 6: user has joined and left the channel long before the export period begins // case 6: user has joined and left the channel long before the export period begins
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(leaveTime+100, leaveTime+200, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(leaveTime+100, leaveTime+200, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, channelMembers) assert.Empty(t, channelMembers)
} }
@@ -183,7 +183,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, err := ss.Channel().Save(channel, -1) channel, err := ss.Channel().Save(channel, -1)
require.Nil(t, err) require.NoError(t, err)
// and a test user // and a test user
user := model.User{ user := model.User{
@@ -192,7 +192,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
userPtr, err := ss.User().Save(&user) userPtr, err := ss.User().Save(&user)
require.Nil(t, err) require.NoError(t, err)
user = *userPtr user = *userPtr
// clear any existing ChannelMemberHistory data that might interfere with our test // clear any existing ChannelMemberHistory data that might interfere with our test
@@ -200,7 +200,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
for !tableDataTruncated { for !tableDataTruncated {
var count int64 var count int64
count, err = ss.ChannelMemberHistory().PermanentDeleteBatch(model.GetMillis(), 1000) count, err = ss.ChannelMemberHistory().PermanentDeleteBatch(model.GetMillis(), 1000)
require.Nil(t, err, "Failed to truncate ChannelMemberHistory contents") require.NoError(t, err, "Failed to truncate ChannelMemberHistory contents")
tableDataTruncated = count == int64(0) tableDataTruncated = count == int64(0)
} }
@@ -213,14 +213,14 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
UserId: user.Id, UserId: user.Id,
NotifyProps: model.GetDefaultChannelNotifyProps(), NotifyProps: model.GetDefaultChannelNotifyProps(),
}) })
require.Nil(t, err) require.NoError(t, err)
// in every single case, the user will be included in the export, because ChannelMembers says they were in the channel at some point in // in every single case, the user will be included in the export, because ChannelMembers says they were in the channel at some point in
// the past, even though the time that they were actually in the channel doesn't necessarily overlap with the export period // the past, even though the time that they were actually in the channel doesn't necessarily overlap with the export period
// case 1: user joins and leaves the channel before the export period begins // case 1: user joins and leaves the channel before the export period begins
channelMembers, err := ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-500, joinTime-100, channel.Id) channelMembers, err := ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-500, joinTime-100, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -231,7 +231,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
// case 2: user joins the channel after the export period begins, but has not yet left the channel when the export period ends // case 2: user joins the channel after the export period begins, but has not yet left the channel when the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, joinTime+500, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, joinTime+500, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -242,7 +242,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
// case 3: user joins the channel before the export period begins, but has not yet left the channel when the export period ends // case 3: user joins the channel before the export period begins, but has not yet left the channel when the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, joinTime+500, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, joinTime+500, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -253,7 +253,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
// case 4: user joins the channel before the export period begins, but has not yet left the channel when the export period ends // case 4: user joins the channel before the export period begins, but has not yet left the channel when the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, leaveTime-100, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+100, leaveTime-100, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -264,7 +264,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
// case 5: user joins the channel after the export period begins, and leaves the channel before the export period ends // case 5: user joins the channel after the export period begins, and leaves the channel before the export period ends
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, leaveTime+100, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime-100, leaveTime+100, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -275,7 +275,7 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
// case 6: user has joined and left the channel long before the export period begins // case 6: user has joined and left the channel long before the export period begins
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(leaveTime+100, leaveTime+200, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(leaveTime+100, leaveTime+200, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, channel.Id, channelMembers[0].ChannelId) assert.Equal(t, channel.Id, channelMembers[0].ChannelId)
assert.Equal(t, user.Id, channelMembers[0].UserId) assert.Equal(t, user.Id, channelMembers[0].UserId)
@@ -294,7 +294,7 @@ func testPermanentDeleteBatch(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, err := ss.Channel().Save(channel, -1) channel, err := ss.Channel().Save(channel, -1)
require.Nil(t, err) require.NoError(t, err)
// and two test users // and two test users
user := model.User{ user := model.User{
@@ -303,7 +303,7 @@ func testPermanentDeleteBatch(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
userPtr, err := ss.User().Save(&user) userPtr, err := ss.User().Save(&user)
require.Nil(t, err) require.NoError(t, err)
user = *userPtr user = *userPtr
user2 := model.User{ user2 := model.User{
@@ -312,34 +312,34 @@ func testPermanentDeleteBatch(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user2Ptr, err := ss.User().Save(&user2) user2Ptr, err := ss.User().Save(&user2)
require.Nil(t, err) require.NoError(t, err)
user2 = *user2Ptr user2 = *user2Ptr
// user1 joins and leaves the channel // user1 joins and leaves the channel
leaveTime := model.GetMillis() leaveTime := model.GetMillis()
joinTime := leaveTime - 10000 joinTime := leaveTime - 10000
err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, joinTime) err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, joinTime)
require.Nil(t, err) require.NoError(t, err)
err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, leaveTime) err = ss.ChannelMemberHistory().LogLeaveEvent(user.Id, channel.Id, leaveTime)
require.Nil(t, err) require.NoError(t, err)
// user2 joins the channel but never leaves // user2 joins the channel but never leaves
err = ss.ChannelMemberHistory().LogJoinEvent(user2.Id, channel.Id, joinTime) err = ss.ChannelMemberHistory().LogJoinEvent(user2.Id, channel.Id, joinTime)
require.Nil(t, err) require.NoError(t, err)
// in between the join time and the leave time, both users were members of the channel // in between the join time and the leave time, both users were members of the channel
channelMembers, err := ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+10, leaveTime-10, channel.Id) channelMembers, err := ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+10, leaveTime-10, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 2) assert.Len(t, channelMembers, 2)
// the permanent delete should delete at least one record // the permanent delete should delete at least one record
rowsDeleted, err := ss.ChannelMemberHistory().PermanentDeleteBatch(leaveTime, math.MaxInt64) rowsDeleted, err := ss.ChannelMemberHistory().PermanentDeleteBatch(leaveTime, math.MaxInt64)
require.Nil(t, err) require.NoError(t, err)
assert.NotEqual(t, int64(0), rowsDeleted) assert.NotEqual(t, int64(0), rowsDeleted)
// after the delete, there should be one less member in the channel // after the delete, there should be one less member in the channel
channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+10, leaveTime-10, channel.Id) channelMembers, err = ss.ChannelMemberHistory().GetUsersInChannelDuring(joinTime+10, leaveTime-10, channel.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, channelMembers, 1) assert.Len(t, channelMembers, 1)
assert.Equal(t, user2.Id, channelMembers[0].UserId) assert.Equal(t, user2.Id, channelMembers[0].UserId)
} }

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -30,10 +30,10 @@ func testClusterDiscoveryStore(t *testing.T, ss store.Store) {
} }
err := ss.ClusterDiscovery().Save(discovery) err := ss.ClusterDiscovery().Save(discovery)
require.Nil(t, err) require.NoError(t, err)
err = ss.ClusterDiscovery().Cleanup() err = ss.ClusterDiscovery().Cleanup()
require.Nil(t, err) require.NoError(t, err)
} }
func testClusterDiscoveryStoreDelete(t *testing.T, ss store.Store) { func testClusterDiscoveryStoreDelete(t *testing.T, ss store.Store) {
@@ -44,10 +44,10 @@ func testClusterDiscoveryStoreDelete(t *testing.T, ss store.Store) {
} }
err := ss.ClusterDiscovery().Save(discovery) err := ss.ClusterDiscovery().Save(discovery)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.ClusterDiscovery().Delete(discovery) _, err = ss.ClusterDiscovery().Delete(discovery)
require.Nil(t, err) require.NoError(t, err)
} }
func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) { func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) {
@@ -58,20 +58,20 @@ func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) {
} }
err := ss.ClusterDiscovery().Save(discovery) err := ss.ClusterDiscovery().Save(discovery)
require.Nil(t, err) require.NoError(t, err)
err = ss.ClusterDiscovery().SetLastPingAt(discovery) err = ss.ClusterDiscovery().SetLastPingAt(discovery)
require.Nil(t, err) require.NoError(t, err)
ttime := model.GetMillis() ttime := model.GetMillis()
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
err = ss.ClusterDiscovery().SetLastPingAt(discovery) err = ss.ClusterDiscovery().SetLastPingAt(discovery)
require.Nil(t, err) require.NoError(t, err)
list, err := ss.ClusterDiscovery().GetAll(discovery.Type, "cluster_name_lastPing") list, err := ss.ClusterDiscovery().GetAll(discovery.Type, "cluster_name_lastPing")
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, list, 1) assert.Len(t, list, 1)
require.Less(t, int64(500), list[0].LastPingAt-ttime) require.Less(t, int64(500), list[0].LastPingAt-ttime)
@@ -83,7 +83,7 @@ func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) {
} }
err = ss.ClusterDiscovery().SetLastPingAt(discovery2) err = ss.ClusterDiscovery().SetLastPingAt(discovery2)
require.Nil(t, err) require.NoError(t, err)
} }
func testClusterDiscoveryStoreExists(t *testing.T, ss store.Store) { func testClusterDiscoveryStoreExists(t *testing.T, ss store.Store) {
@@ -94,16 +94,16 @@ func testClusterDiscoveryStoreExists(t *testing.T, ss store.Store) {
} }
err := ss.ClusterDiscovery().Save(discovery) err := ss.ClusterDiscovery().Save(discovery)
require.Nil(t, err) require.NoError(t, err)
val, err := ss.ClusterDiscovery().Exists(discovery) val, err := ss.ClusterDiscovery().Exists(discovery)
require.Nil(t, err) require.NoError(t, err)
assert.True(t, val) assert.True(t, val)
discovery.ClusterName = "cluster_name_Exists2" discovery.ClusterName = "cluster_name_Exists2"
val, err = ss.ClusterDiscovery().Exists(discovery) val, err = ss.ClusterDiscovery().Exists(discovery)
require.Nil(t, err) require.NoError(t, err)
assert.False(t, val) assert.False(t, val)
} }
@@ -115,14 +115,14 @@ func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) {
Hostname: "hostname1", Hostname: "hostname1",
Type: testType1, Type: testType1,
} }
require.Nil(t, ss.ClusterDiscovery().Save(discovery1)) require.NoError(t, ss.ClusterDiscovery().Save(discovery1))
discovery2 := &model.ClusterDiscovery{ discovery2 := &model.ClusterDiscovery{
ClusterName: "cluster_name", ClusterName: "cluster_name",
Hostname: "hostname2", Hostname: "hostname2",
Type: testType1, Type: testType1,
} }
require.Nil(t, ss.ClusterDiscovery().Save(discovery2)) require.NoError(t, ss.ClusterDiscovery().Save(discovery2))
discovery3 := &model.ClusterDiscovery{ discovery3 := &model.ClusterDiscovery{
ClusterName: "cluster_name", ClusterName: "cluster_name",
@@ -131,7 +131,7 @@ func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) {
CreateAt: 1, CreateAt: 1,
LastPingAt: 1, LastPingAt: 1,
} }
require.Nil(t, ss.ClusterDiscovery().Save(discovery3)) require.NoError(t, ss.ClusterDiscovery().Save(discovery3))
testType2 := model.NewId() testType2 := model.NewId()
@@ -140,17 +140,17 @@ func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) {
Hostname: "hostname1", Hostname: "hostname1",
Type: testType2, Type: testType2,
} }
require.Nil(t, ss.ClusterDiscovery().Save(discovery4)) require.NoError(t, ss.ClusterDiscovery().Save(discovery4))
list, err := ss.ClusterDiscovery().GetAll(testType1, "cluster_name") list, err := ss.ClusterDiscovery().GetAll(testType1, "cluster_name")
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, list, 2) assert.Len(t, list, 2)
list, err = ss.ClusterDiscovery().GetAll(testType2, "cluster_name") list, err = ss.ClusterDiscovery().GetAll(testType2, "cluster_name")
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, list, 1) assert.Len(t, list, 1)
list, err = ss.ClusterDiscovery().GetAll(model.NewId(), "cluster_name") list, err = ss.ClusterDiscovery().GetAll(model.NewId(), "cluster_name")
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, list) assert.Empty(t, list)
} }

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

@@ -34,10 +34,10 @@ func testCommandStoreSave(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
_, nErr := ss.Command().Save(&o1) _, nErr := ss.Command().Save(&o1)
require.Nil(t, nErr) require.NoError(t, nErr)
_, err := ss.Command().Save(&o1) _, err := ss.Command().Save(&o1)
require.NotNil(t, err, "shouldn't be able to update from save") require.Error(t, err, "shouldn't be able to update from save")
} }
func testCommandStoreGet(t *testing.T, ss store.Store) { func testCommandStoreGet(t *testing.T, ss store.Store) {
@@ -49,14 +49,14 @@ func testCommandStoreGet(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
r1, nErr := ss.Command().Get(o1.Id) r1, nErr := ss.Command().Get(o1.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command") require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command")
_, err := ss.Command().Get("123") _, err := ss.Command().Get("123")
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
@@ -70,15 +70,15 @@ func testCommandStoreGetByTeam(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
r1, nErr := ss.Command().GetByTeam(o1.TeamId) r1, nErr := ss.Command().GetByTeam(o1.TeamId)
require.Nil(t, nErr) require.NoError(t, nErr)
require.NotEmpty(t, r1, "no command returned") require.NotEmpty(t, r1, "no command returned")
require.Equal(t, r1[0].CreateAt, o1.CreateAt, "invalid returned command") require.Equal(t, r1[0].CreateAt, o1.CreateAt, "invalid returned command")
result, nErr := ss.Command().GetByTeam("123") result, nErr := ss.Command().GetByTeam("123")
require.Nil(t, nErr) require.NoError(t, nErr)
require.Empty(t, result, "no commands should have returned") require.Empty(t, result, "no commands should have returned")
} }
@@ -98,21 +98,21 @@ func testCommandStoreGetByTrigger(t *testing.T, ss store.Store) {
o2.Trigger = "trigger1" o2.Trigger = "trigger1"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
_, nErr = ss.Command().Save(o2) _, nErr = ss.Command().Save(o2)
require.Nil(t, nErr) require.NoError(t, nErr)
var r1 *model.Command var r1 *model.Command
r1, nErr = ss.Command().GetByTrigger(o1.TeamId, o1.Trigger) r1, nErr = ss.Command().GetByTrigger(o1.TeamId, o1.Trigger)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, r1.Id, o1.Id, "invalid returned command") require.Equal(t, r1.Id, o1.Id, "invalid returned command")
nErr = ss.Command().Delete(o1.Id, model.GetMillis()) nErr = ss.Command().Delete(o1.Id, model.GetMillis())
require.Nil(t, nErr) require.NoError(t, nErr)
_, err := ss.Command().GetByTrigger(o1.TeamId, o1.Trigger) _, err := ss.Command().GetByTrigger(o1.TeamId, o1.Trigger)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
@@ -126,17 +126,17 @@ func testCommandStoreDelete(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
r1, nErr := ss.Command().Get(o1.Id) r1, nErr := ss.Command().Get(o1.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command") require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command")
nErr = ss.Command().Delete(o1.Id, model.GetMillis()) nErr = ss.Command().Delete(o1.Id, model.GetMillis())
require.Nil(t, nErr) require.NoError(t, nErr)
_, err := ss.Command().Get(o1.Id) _, err := ss.Command().Get(o1.Id)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
@@ -150,17 +150,17 @@ func testCommandStoreDeleteByTeam(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
r1, nErr := ss.Command().Get(o1.Id) r1, nErr := ss.Command().Get(o1.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command") require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command")
nErr = ss.Command().PermanentDeleteByTeam(o1.TeamId) nErr = ss.Command().PermanentDeleteByTeam(o1.TeamId)
require.Nil(t, nErr) require.NoError(t, nErr)
_, err := ss.Command().Get(o1.Id) _, err := ss.Command().Get(o1.Id)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
@@ -174,17 +174,17 @@ func testCommandStoreDeleteByUser(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
r1, nErr := ss.Command().Get(o1.Id) r1, nErr := ss.Command().Get(o1.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command") require.Equal(t, r1.CreateAt, o1.CreateAt, "invalid returned command")
nErr = ss.Command().PermanentDeleteByUser(o1.CreatorId) nErr = ss.Command().PermanentDeleteByUser(o1.CreatorId)
require.Nil(t, nErr) require.NoError(t, nErr)
_, err := ss.Command().Get(o1.Id) _, err := ss.Command().Get(o1.Id)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr)) require.True(t, errors.As(err, &nfErr))
} }
@@ -198,17 +198,17 @@ func testCommandStoreUpdate(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
o1.Token = model.NewId() o1.Token = model.NewId()
_, nErr = ss.Command().Update(o1) _, nErr = ss.Command().Update(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
o1.URL = "junk" o1.URL = "junk"
_, err := ss.Command().Update(o1) _, err := ss.Command().Update(o1)
require.NotNil(t, err) require.Error(t, err)
} }
func testCommandCount(t *testing.T, ss store.Store) { func testCommandCount(t *testing.T, ss store.Store) {
@@ -220,13 +220,13 @@ func testCommandCount(t *testing.T, ss store.Store) {
o1.Trigger = "trigger" o1.Trigger = "trigger"
o1, nErr := ss.Command().Save(o1) o1, nErr := ss.Command().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
r1, nErr := ss.Command().AnalyticsCommandCount("") r1, nErr := ss.Command().AnalyticsCommandCount("")
require.Nil(t, nErr) require.NoError(t, nErr)
require.NotZero(t, r1, "should be at least 1 command") require.NotZero(t, r1, "should be at least 1 command")
r2, nErr := ss.Command().AnalyticsCommandCount(o1.TeamId) r2, nErr := ss.Command().AnalyticsCommandCount(o1.TeamId)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, r2, int64(1), "should be 1 command") require.Equal(t, r2, int64(1), "should be 1 command")
} }

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

@@ -26,11 +26,11 @@ func testCommandWebhookStore(t *testing.T, ss store.Store) {
h1.UserId = model.NewId() h1.UserId = model.NewId()
h1.ChannelId = model.NewId() h1.ChannelId = model.NewId()
h1, err := cws.Save(h1) h1, err := cws.Save(h1)
require.Nil(t, err) require.NoError(t, err)
var r1 *model.CommandWebhook var r1 *model.CommandWebhook
r1, nErr := cws.Get(h1.Id) r1, nErr := cws.Get(h1.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Equal(t, *r1, *h1, "invalid returned webhook") assert.Equal(t, *r1, *h1, "invalid returned webhook")
_, nErr = cws.Get("123") _, nErr = cws.Get("123")
@@ -43,25 +43,25 @@ func testCommandWebhookStore(t *testing.T, ss store.Store) {
h2.UserId = model.NewId() h2.UserId = model.NewId()
h2.ChannelId = model.NewId() h2.ChannelId = model.NewId()
h2, err = cws.Save(h2) h2, err = cws.Save(h2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = cws.Get(h2.Id) _, nErr = cws.Get(h2.Id)
require.NotNil(t, nErr, "Should have set the status as not found for expired webhook") require.Error(t, nErr, "Should have set the status as not found for expired webhook")
require.True(t, errors.As(nErr, &nfErr), "Should have set the status as not found for expired webhook") require.True(t, errors.As(nErr, &nfErr), "Should have set the status as not found for expired webhook")
cws.Cleanup() cws.Cleanup()
_, nErr = cws.Get(h1.Id) _, nErr = cws.Get(h1.Id)
require.Nil(t, nErr, "Should have no error getting unexpired webhook") require.NoError(t, nErr, "Should have no error getting unexpired webhook")
_, nErr = cws.Get(h2.Id) _, nErr = cws.Get(h2.Id)
require.True(t, errors.As(nErr, &nfErr), "Should have set the status as not found for expired webhook") require.True(t, errors.As(nErr, &nfErr), "Should have set the status as not found for expired webhook")
nErr = cws.TryUse(h1.Id, 1) nErr = cws.TryUse(h1.Id, 1)
require.Nil(t, nErr, "Should be able to use webhook once") require.NoError(t, nErr, "Should be able to use webhook once")
nErr = cws.TryUse(h1.Id, 1) nErr = cws.TryUse(h1.Id, 1)
require.NotNil(t, nErr, "Should be able to use webhook once") require.Error(t, nErr, "Should be able to use webhook once")
var invErr *store.ErrInvalidInput var invErr *store.ErrInvalidInput
require.True(t, errors.As(nErr, &invErr), "Should be able to use webhook once") require.True(t, errors.As(nErr, &invErr), "Should be able to use webhook once")
} }

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

@@ -18,30 +18,30 @@ import (
func cleanupStoreState(t *testing.T, ss store.Store) { func cleanupStoreState(t *testing.T, ss store.Store) {
//remove existing users //remove existing users
allUsers, err := ss.User().GetAll() allUsers, err := ss.User().GetAll()
require.Nilf(t, err, "error cleaning all test users: %v", err) require.NoError(t, err, "error cleaning all test users", err)
for _, u := range allUsers { for _, u := range allUsers {
err = ss.User().PermanentDelete(u.Id) err = ss.User().PermanentDelete(u.Id)
require.Nil(t, err, "failed cleaning up test user %s", u.Username) require.NoError(t, err, "failed cleaning up test user %s", u.Username)
//remove all posts by this user //remove all posts by this user
nErr := ss.Post().PermanentDeleteByUser(u.Id) nErr := ss.Post().PermanentDeleteByUser(u.Id)
require.Nil(t, nErr, "failed cleaning all posts of test user %s", u.Username) require.NoError(t, nErr, "failed cleaning all posts of test user %s", u.Username)
} }
//remove existing channels //remove existing channels
allChannels, nErr := ss.Channel().GetAllChannels(0, 100000, store.ChannelSearchOpts{IncludeDeleted: true}) allChannels, nErr := ss.Channel().GetAllChannels(0, 100000, store.ChannelSearchOpts{IncludeDeleted: true})
require.Nilf(t, nErr, "error cleaning all test channels: %v", nErr) require.NoError(t, nErr, "error cleaning all test channels", nErr)
for _, channel := range *allChannels { for _, channel := range *allChannels {
nErr = ss.Channel().PermanentDelete(channel.Id) nErr = ss.Channel().PermanentDelete(channel.Id)
require.Nil(t, nErr, "failed cleaning up test channel %s", channel.Id) require.NoError(t, nErr, "failed cleaning up test channel %s", channel.Id)
} }
//remove existing teams //remove existing teams
allTeams, nErr := ss.Team().GetAll() allTeams, nErr := ss.Team().GetAll()
require.Nilf(t, nErr, "error cleaning all test teams: %v", nErr) require.NoError(t, nErr, "error cleaning all test teams", nErr)
for _, team := range allTeams { for _, team := range allTeams {
err := ss.Team().PermanentDelete(team.Id) err := ss.Team().PermanentDelete(team.Id)
require.Nil(t, err, "failed cleaning up test team %s", team.Id) require.NoError(t, err, "failed cleaning up test team %s", team.Id)
} }
} }
@@ -62,12 +62,12 @@ func TestComplianceStore(t *testing.T, ss store.Store) {
func testComplianceStore(t *testing.T, ss store.Store) { func testComplianceStore(t *testing.T, ss store.Store) {
compliance1 := &model.Compliance{Desc: "Audit for federal subpoena case #22443", UserId: model.NewId(), Status: model.COMPLIANCE_STATUS_FAILED, StartAt: model.GetMillis() - 1, EndAt: model.GetMillis() + 1, Type: model.COMPLIANCE_TYPE_ADHOC} compliance1 := &model.Compliance{Desc: "Audit for federal subpoena case #22443", UserId: model.NewId(), Status: model.COMPLIANCE_STATUS_FAILED, StartAt: model.GetMillis() - 1, EndAt: model.GetMillis() + 1, Type: model.COMPLIANCE_TYPE_ADHOC}
_, err := ss.Compliance().Save(compliance1) _, err := ss.Compliance().Save(compliance1)
require.Nil(t, err) require.NoError(t, err)
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
compliance2 := &model.Compliance{Desc: "Audit for federal subpoena case #11458", UserId: model.NewId(), Status: model.COMPLIANCE_STATUS_RUNNING, StartAt: model.GetMillis() - 1, EndAt: model.GetMillis() + 1, Type: model.COMPLIANCE_TYPE_ADHOC} compliance2 := &model.Compliance{Desc: "Audit for federal subpoena case #11458", UserId: model.NewId(), Status: model.COMPLIANCE_STATUS_RUNNING, StartAt: model.GetMillis() - 1, EndAt: model.GetMillis() + 1, Type: model.COMPLIANCE_TYPE_ADHOC}
_, err = ss.Compliance().Save(compliance2) _, err = ss.Compliance().Save(compliance2)
require.Nil(t, err) require.NoError(t, err)
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
compliances, _ := ss.Compliance().GetAll(0, 1000) compliances, _ := ss.Compliance().GetAll(0, 1000)
@@ -77,7 +77,7 @@ func testComplianceStore(t *testing.T, ss store.Store) {
compliance2.Status = model.COMPLIANCE_STATUS_FAILED compliance2.Status = model.COMPLIANCE_STATUS_FAILED
_, err = ss.Compliance().Update(compliance2) _, err = ss.Compliance().Update(compliance2)
require.Nil(t, err) require.NoError(t, err)
compliances, _ = ss.Compliance().GetAll(0, 1000) compliances, _ = ss.Compliance().GetAll(0, 1000)
@@ -105,23 +105,23 @@ func testComplianceExport(t *testing.T, ss store.Store) {
t1.Email = MakeEmail() t1.Email = MakeEmail()
t1.Type = model.TEAM_OPEN t1.Type = model.TEAM_OPEN
t1, err := ss.Team().Save(t1) t1, err := ss.Team().Save(t1)
require.Nil(t, err) require.NoError(t, err)
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
u1.Username = model.NewId() u1.Username = model.NewId()
u1, err = ss.User().Save(u1) u1, err = ss.User().Save(u1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u1.Id}, -1) _, nErr := ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u1.Id}, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
u2 := &model.User{} u2 := &model.User{}
u2.Email = MakeEmail() u2.Email = MakeEmail()
u2.Username = model.NewId() u2.Username = model.NewId()
u2, err = ss.User().Save(u2) u2, err = ss.User().Save(u2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u2.Id}, -1) _, nErr = ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u2.Id}, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = t1.Id c1.TeamId = t1.Id
@@ -129,7 +129,7 @@ func testComplianceExport(t *testing.T, ss store.Store) {
c1.Name = "zz" + model.NewId() + "b" c1.Name = "zz" + model.NewId() + "b"
c1.Type = model.CHANNEL_OPEN c1.Type = model.CHANNEL_OPEN
c1, nErr = ss.Channel().Save(c1, -1) c1, nErr = ss.Channel().Save(c1, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
o1 := &model.Post{} o1 := &model.Post{}
o1.ChannelId = c1.Id o1.ChannelId = c1.Id
@@ -137,7 +137,7 @@ func testComplianceExport(t *testing.T, ss store.Store) {
o1.CreateAt = model.GetMillis() o1.CreateAt = model.GetMillis()
o1.Message = "zz" + model.NewId() + "b" o1.Message = "zz" + model.NewId() + "b"
o1, nErr = ss.Post().Save(o1) o1, nErr = ss.Post().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
o1a := &model.Post{} o1a := &model.Post{}
o1a.ChannelId = c1.Id o1a.ChannelId = c1.Id
@@ -145,7 +145,7 @@ func testComplianceExport(t *testing.T, ss store.Store) {
o1a.CreateAt = o1.CreateAt + 10 o1a.CreateAt = o1.CreateAt + 10
o1a.Message = "zz" + model.NewId() + "b" o1a.Message = "zz" + model.NewId() + "b"
_, nErr = ss.Post().Save(o1a) _, nErr = ss.Post().Save(o1a)
require.Nil(t, nErr) require.NoError(t, nErr)
o2 := &model.Post{} o2 := &model.Post{}
o2.ChannelId = c1.Id o2.ChannelId = c1.Id
@@ -153,7 +153,7 @@ func testComplianceExport(t *testing.T, ss store.Store) {
o2.CreateAt = o1.CreateAt + 20 o2.CreateAt = o1.CreateAt + 20
o2.Message = "zz" + model.NewId() + "b" o2.Message = "zz" + model.NewId() + "b"
_, nErr = ss.Post().Save(o2) _, nErr = ss.Post().Save(o2)
require.Nil(t, nErr) require.NoError(t, nErr)
o2a := &model.Post{} o2a := &model.Post{}
o2a.ChannelId = c1.Id o2a.ChannelId = c1.Id
@@ -161,45 +161,45 @@ func testComplianceExport(t *testing.T, ss store.Store) {
o2a.CreateAt = o1.CreateAt + 30 o2a.CreateAt = o1.CreateAt + 30
o2a.Message = "zz" + model.NewId() + "b" o2a.Message = "zz" + model.NewId() + "b"
o2a, nErr = ss.Post().Save(o2a) o2a, nErr = ss.Post().Save(o2a)
require.Nil(t, nErr) require.NoError(t, nErr)
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
cr1 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1} cr1 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1}
cposts, nErr := ss.Compliance().ComplianceExport(cr1) cposts, nErr := ss.Compliance().ComplianceExport(cr1)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Len(t, cposts, 4) assert.Len(t, cposts, 4)
assert.Equal(t, cposts[0].PostId, o1.Id) assert.Equal(t, cposts[0].PostId, o1.Id)
assert.Equal(t, cposts[3].PostId, o2a.Id) assert.Equal(t, cposts[3].PostId, o2a.Id)
cr2 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Emails: u2.Email} cr2 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Emails: u2.Email}
cposts, nErr = ss.Compliance().ComplianceExport(cr2) cposts, nErr = ss.Compliance().ComplianceExport(cr2)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Len(t, cposts, 1) assert.Len(t, cposts, 1)
assert.Equal(t, cposts[0].PostId, o2a.Id) assert.Equal(t, cposts[0].PostId, o2a.Id)
cr3 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Emails: u2.Email + ", " + u1.Email} cr3 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Emails: u2.Email + ", " + u1.Email}
cposts, nErr = ss.Compliance().ComplianceExport(cr3) cposts, nErr = ss.Compliance().ComplianceExport(cr3)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Len(t, cposts, 4) assert.Len(t, cposts, 4)
assert.Equal(t, cposts[0].PostId, o1.Id) assert.Equal(t, cposts[0].PostId, o1.Id)
assert.Equal(t, cposts[3].PostId, o2a.Id) assert.Equal(t, cposts[3].PostId, o2a.Id)
cr4 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Keywords: o2a.Message} cr4 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Keywords: o2a.Message}
cposts, nErr = ss.Compliance().ComplianceExport(cr4) cposts, nErr = ss.Compliance().ComplianceExport(cr4)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Len(t, cposts, 1) assert.Len(t, cposts, 1)
assert.Equal(t, cposts[0].PostId, o2a.Id) assert.Equal(t, cposts[0].PostId, o2a.Id)
cr5 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Keywords: o2a.Message + " " + o1.Message} cr5 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Keywords: o2a.Message + " " + o1.Message}
cposts, nErr = ss.Compliance().ComplianceExport(cr5) cposts, nErr = ss.Compliance().ComplianceExport(cr5)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Len(t, cposts, 2) assert.Len(t, cposts, 2)
assert.Equal(t, cposts[0].PostId, o1.Id) assert.Equal(t, cposts[0].PostId, o1.Id)
cr6 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Emails: u2.Email + ", " + u1.Email, Keywords: o2a.Message + " " + o1.Message} cr6 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o2a.CreateAt + 1, Emails: u2.Email + ", " + u1.Email, Keywords: o2a.Message + " " + o1.Message}
cposts, nErr = ss.Compliance().ComplianceExport(cr6) cposts, nErr = ss.Compliance().ComplianceExport(cr6)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Len(t, cposts, 2) assert.Len(t, cposts, 2)
assert.Equal(t, cposts[0].PostId, o1.Id) assert.Equal(t, cposts[0].PostId, o1.Id)
assert.Equal(t, cposts[1].PostId, o2a.Id) assert.Equal(t, cposts[1].PostId, o2a.Id)
@@ -214,23 +214,23 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
t1.Email = MakeEmail() t1.Email = MakeEmail()
t1.Type = model.TEAM_OPEN t1.Type = model.TEAM_OPEN
t1, err := ss.Team().Save(t1) t1, err := ss.Team().Save(t1)
require.Nil(t, err) require.NoError(t, err)
u1 := &model.User{} u1 := &model.User{}
u1.Email = MakeEmail() u1.Email = MakeEmail()
u1.Username = model.NewId() u1.Username = model.NewId()
u1, err = ss.User().Save(u1) u1, err = ss.User().Save(u1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u1.Id}, -1) _, nErr := ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u1.Id}, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
u2 := &model.User{} u2 := &model.User{}
u2.Email = MakeEmail() u2.Email = MakeEmail()
u2.Username = model.NewId() u2.Username = model.NewId()
u2, err = ss.User().Save(u2) u2, err = ss.User().Save(u2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u2.Id}, -1) _, nErr = ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u2.Id}, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
c1 := &model.Channel{} c1 := &model.Channel{}
c1.TeamId = t1.Id c1.TeamId = t1.Id
@@ -238,17 +238,17 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
c1.Name = "zz" + model.NewId() + "b" c1.Name = "zz" + model.NewId() + "b"
c1.Type = model.CHANNEL_OPEN c1.Type = model.CHANNEL_OPEN
c1, nErr = ss.Channel().Save(c1, -1) c1, nErr = ss.Channel().Save(c1, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
cDM, nErr := ss.Channel().CreateDirectChannel(u1, u2) cDM, nErr := ss.Channel().CreateDirectChannel(u1, u2)
require.Nil(t, nErr) require.NoError(t, nErr)
o1 := &model.Post{} o1 := &model.Post{}
o1.ChannelId = c1.Id o1.ChannelId = c1.Id
o1.UserId = u1.Id o1.UserId = u1.Id
o1.CreateAt = model.GetMillis() o1.CreateAt = model.GetMillis()
o1.Message = "zz" + model.NewId() + "b" o1.Message = "zz" + model.NewId() + "b"
o1, nErr = ss.Post().Save(o1) o1, nErr = ss.Post().Save(o1)
require.Nil(t, nErr) require.NoError(t, nErr)
o1a := &model.Post{} o1a := &model.Post{}
o1a.ChannelId = c1.Id o1a.ChannelId = c1.Id
@@ -256,7 +256,7 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
o1a.CreateAt = o1.CreateAt + 10 o1a.CreateAt = o1.CreateAt + 10
o1a.Message = "zz" + model.NewId() + "b" o1a.Message = "zz" + model.NewId() + "b"
_, nErr = ss.Post().Save(o1a) _, nErr = ss.Post().Save(o1a)
require.Nil(t, nErr) require.NoError(t, nErr)
o2 := &model.Post{} o2 := &model.Post{}
o2.ChannelId = c1.Id o2.ChannelId = c1.Id
@@ -264,7 +264,7 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
o2.CreateAt = o1.CreateAt + 20 o2.CreateAt = o1.CreateAt + 20
o2.Message = "zz" + model.NewId() + "b" o2.Message = "zz" + model.NewId() + "b"
_, nErr = ss.Post().Save(o2) _, nErr = ss.Post().Save(o2)
require.Nil(t, nErr) require.NoError(t, nErr)
o2a := &model.Post{} o2a := &model.Post{}
o2a.ChannelId = c1.Id o2a.ChannelId = c1.Id
@@ -272,7 +272,7 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
o2a.CreateAt = o1.CreateAt + 30 o2a.CreateAt = o1.CreateAt + 30
o2a.Message = "zz" + model.NewId() + "b" o2a.Message = "zz" + model.NewId() + "b"
_, nErr = ss.Post().Save(o2a) _, nErr = ss.Post().Save(o2a)
require.Nil(t, nErr) require.NoError(t, nErr)
o3 := &model.Post{} o3 := &model.Post{}
o3.ChannelId = cDM.Id o3.ChannelId = cDM.Id
@@ -280,13 +280,13 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
o3.CreateAt = o1.CreateAt + 40 o3.CreateAt = o1.CreateAt + 40
o3.Message = "zz" + model.NewId() + "b" o3.Message = "zz" + model.NewId() + "b"
o3, nErr = ss.Post().Save(o3) o3, nErr = ss.Post().Save(o3)
require.Nil(t, nErr) require.NoError(t, nErr)
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
cr1 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o3.CreateAt + 1, Emails: u1.Email} cr1 := &model.Compliance{Desc: "test" + model.NewId(), StartAt: o1.CreateAt - 1, EndAt: o3.CreateAt + 1, Emails: u1.Email}
cposts, nErr := ss.Compliance().ComplianceExport(cr1) cposts, nErr := ss.Compliance().ComplianceExport(cr1)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Len(t, cposts, 4) assert.Len(t, cposts, 4)
assert.Equal(t, cposts[0].PostId, o1.Id) assert.Equal(t, cposts[0].PostId, o1.Id)
assert.Equal(t, cposts[len(cposts)-1].PostId, o3.Id) assert.Equal(t, cposts[len(cposts)-1].PostId, o3.Id)
@@ -298,7 +298,7 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-10, 10) messages, err := ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -309,7 +309,7 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// and two users that are a part of that team // and two users that are a part of that team
user1 := &model.User{ user1 := &model.User{
@@ -317,24 +317,24 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
user2 := &model.User{ user2 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
} }
user2, err = ss.User().Save(user2) user2, err = ss.User().Save(user2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Team().SaveMember(&model.TeamMember{ _, nErr = ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user2.Id, UserId: user2.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// need a public channel // need a public channel
channel := &model.Channel{ channel := &model.Channel{
@@ -344,7 +344,7 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, nErr = ss.Channel().Save(channel, -1) channel, nErr = ss.Channel().Save(channel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 posts twice in the public channel // user1 posts twice in the public channel
post1 := &model.Post{ post1 := &model.Post{
@@ -354,7 +354,7 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "a", Message: "zz" + model.NewId() + "a",
} }
post1, err = ss.Post().Save(post1) post1, err = ss.Post().Save(post1)
require.Nil(t, err) require.NoError(t, err)
post2 := &model.Post{ post2 := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
@@ -363,12 +363,12 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "b", Message: "zz" + model.NewId() + "b",
} }
post2, err = ss.Post().Save(post2) post2, err = ss.Post().Save(post2)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports for both posts that user1 sent // fetch the message exports for both posts that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, err = ss.Compliance().MessageExport(startTime-10, 10) messages, err = ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
for _, v := range messages { for _, v := range messages {
@@ -402,7 +402,7 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-10, 10) messages, err := ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -413,7 +413,7 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// and two users that are a part of that team // and two users that are a part of that team
user1 := &model.User{ user1 := &model.User{
@@ -421,24 +421,24 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
user2 := &model.User{ user2 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
} }
user2, err = ss.User().Save(user2) user2, err = ss.User().Save(user2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Team().SaveMember(&model.TeamMember{ _, nErr = ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user2.Id, UserId: user2.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// need a private channel // need a private channel
channel := &model.Channel{ channel := &model.Channel{
@@ -448,7 +448,7 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
Type: model.CHANNEL_PRIVATE, Type: model.CHANNEL_PRIVATE,
} }
channel, nErr = ss.Channel().Save(channel, -1) channel, nErr = ss.Channel().Save(channel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 posts twice in the private channel // user1 posts twice in the private channel
post1 := &model.Post{ post1 := &model.Post{
@@ -458,7 +458,7 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "a", Message: "zz" + model.NewId() + "a",
} }
post1, err = ss.Post().Save(post1) post1, err = ss.Post().Save(post1)
require.Nil(t, err) require.NoError(t, err)
post2 := &model.Post{ post2 := &model.Post{
ChannelId: channel.Id, ChannelId: channel.Id,
@@ -467,12 +467,12 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "b", Message: "zz" + model.NewId() + "b",
} }
post2, err = ss.Post().Save(post2) post2, err = ss.Post().Save(post2)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports for both posts that user1 sent // fetch the message exports for both posts that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, err = ss.Compliance().MessageExport(startTime-10, 10) messages, err = ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
for _, v := range messages { for _, v := range messages {
@@ -508,7 +508,7 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-10, 10) messages, err := ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -519,7 +519,7 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// and two users that are a part of that team // and two users that are a part of that team
user1 := &model.User{ user1 := &model.User{
@@ -527,28 +527,28 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
user2 := &model.User{ user2 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
} }
user2, err = ss.User().Save(user2) user2, err = ss.User().Save(user2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Team().SaveMember(&model.TeamMember{ _, nErr = ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user2.Id, UserId: user2.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// as well as a DM channel between those users // as well as a DM channel between those users
directMessageChannel, nErr := ss.Channel().CreateDirectChannel(user1, user2) directMessageChannel, nErr := ss.Channel().CreateDirectChannel(user1, user2)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 also sends a DM to user2 // user1 also sends a DM to user2
post := &model.Post{ post := &model.Post{
@@ -558,12 +558,12 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "c", Message: "zz" + model.NewId() + "c",
} }
post, err = ss.Post().Save(post) post, err = ss.Post().Save(post)
require.Nil(t, err) require.NoError(t, err)
// fetch the message export for the post that user1 sent // fetch the message export for the post that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, err = ss.Compliance().MessageExport(startTime-10, 10) messages, err = ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
@@ -589,7 +589,7 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-10, 10) messages, err := ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -600,7 +600,7 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// and three users that are a part of that team // and three users that are a part of that team
user1 := &model.User{ user1 := &model.User{
@@ -608,36 +608,36 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
user2 := &model.User{ user2 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
} }
user2, err = ss.User().Save(user2) user2, err = ss.User().Save(user2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Team().SaveMember(&model.TeamMember{ _, nErr = ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user2.Id, UserId: user2.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
user3 := &model.User{ user3 := &model.User{
Email: MakeEmail(), Email: MakeEmail(),
Username: model.NewId(), Username: model.NewId(),
} }
user3, err = ss.User().Save(user3) user3, err = ss.User().Save(user3)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Team().SaveMember(&model.TeamMember{ _, nErr = ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user3.Id, UserId: user3.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// can't create a group channel directly, because importing app creates an import cycle, so we have to fake it // can't create a group channel directly, because importing app creates an import cycle, so we have to fake it
groupMessageChannel := &model.Channel{ groupMessageChannel := &model.Channel{
@@ -646,7 +646,7 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
Type: model.CHANNEL_GROUP, Type: model.CHANNEL_GROUP,
} }
groupMessageChannel, nErr = ss.Channel().Save(groupMessageChannel, -1) groupMessageChannel, nErr = ss.Channel().Save(groupMessageChannel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 posts in the GM // user1 posts in the GM
post := &model.Post{ post := &model.Post{
@@ -656,12 +656,12 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "c", Message: "zz" + model.NewId() + "c",
} }
post, err = ss.Post().Save(post) post, err = ss.Post().Save(post)
require.Nil(t, err) require.NoError(t, err)
// fetch the message export for the post that user1 sent // fetch the message export for the post that user1 sent
messageExportMap := map[string]model.MessageExport{} messageExportMap := map[string]model.MessageExport{}
messages, err = ss.Compliance().MessageExport(startTime-10, 10) messages, err = ss.Compliance().MessageExport(startTime-10, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
for _, v := range messages { for _, v := range messages {
@@ -686,7 +686,7 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-1, 10) messages, err := ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -697,7 +697,7 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// need a user part of that team // need a user part of that team
user1 := &model.User{ user1 := &model.User{
@@ -705,12 +705,12 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// need a public channel // need a public channel
channel := &model.Channel{ channel := &model.Channel{
@@ -720,7 +720,7 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, nErr = ss.Channel().Save(channel, -1) channel, nErr = ss.Channel().Save(channel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 posts in the public channel // user1 posts in the public channel
post1 := &model.Post{ post1 := &model.Post{
@@ -730,7 +730,7 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "a", Message: "zz" + model.NewId() + "a",
} }
post1, err = ss.Post().Save(post1) post1, err = ss.Post().Save(post1)
require.Nil(t, err) require.NoError(t, err)
//user 1 edits the previous post //user 1 edits the previous post
post1e := &model.Post{} post1e := &model.Post{}
@@ -738,11 +738,11 @@ func testEditExportMessage(t *testing.T, ss store.Store) {
post1e.Message = "edit " + post1.Message post1e.Message = "edit " + post1.Message
post1e, err = ss.Post().Update(post1e, post1) post1e, err = ss.Post().Update(post1e, post1)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, err = ss.Compliance().MessageExport(startTime-1, 10) messages, err = ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
for _, v := range messages { for _, v := range messages {
@@ -779,7 +779,7 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-1, 10) messages, err := ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -790,7 +790,7 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// need a user part of that team // need a user part of that team
user1 := &model.User{ user1 := &model.User{
@@ -798,12 +798,12 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// need a public channel // need a public channel
channel := &model.Channel{ channel := &model.Channel{
@@ -813,7 +813,7 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, nErr = ss.Channel().Save(channel, -1) channel, nErr = ss.Channel().Save(channel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 posts in the public channel // user1 posts in the public channel
post1 := &model.Post{ post1 := &model.Post{
@@ -823,11 +823,11 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "a", Message: "zz" + model.NewId() + "a",
} }
post1, err = ss.Post().Save(post1) post1, err = ss.Post().Save(post1)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, err = ss.Compliance().MessageExport(startTime-1, 10) messages, err = ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
v := messages[0] v := messages[0]
@@ -850,11 +850,11 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) {
post1e.EditAt = postEditTime post1e.EditAt = postEditTime
post1e.Message = "edit " + post1.Message post1e.Message = "edit " + post1.Message
post1e, err = ss.Post().Update(post1e, post1) post1e, err = ss.Post().Update(post1e, post1)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports after edit // fetch the message exports after edit
messages, err = ss.Compliance().MessageExport(postEditTime-1, 10) messages, err = ss.Compliance().MessageExport(postEditTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 2, len(messages)) assert.Equal(t, 2, len(messages))
for _, v := range messages { for _, v := range messages {
@@ -891,7 +891,7 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-1, 10) messages, err := ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -902,7 +902,7 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// need a user part of that team // need a user part of that team
user1 := &model.User{ user1 := &model.User{
@@ -910,12 +910,12 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// need a public channel // need a public channel
channel := &model.Channel{ channel := &model.Channel{
@@ -925,7 +925,7 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, nErr = ss.Channel().Save(channel, -1) channel, nErr = ss.Channel().Save(channel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 posts in the public channel // user1 posts in the public channel
post1 := &model.Post{ post1 := &model.Post{
@@ -935,16 +935,16 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "a", Message: "zz" + model.NewId() + "a",
} }
post1, err = ss.Post().Save(post1) post1, err = ss.Post().Save(post1)
require.Nil(t, err) require.NoError(t, err)
//user 1 deletes the previous post //user 1 deletes the previous post
postDeleteTime := post1.UpdateAt + 1 postDeleteTime := post1.UpdateAt + 1
err = ss.Post().Delete(post1.Id, postDeleteTime, user1.Id) err = ss.Post().Delete(post1.Id, postDeleteTime, user1.Id)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, err = ss.Compliance().MessageExport(startTime-1, 10) messages, err = ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
v := messages[0] v := messages[0]
@@ -957,7 +957,7 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) {
props := map[string]interface{}{} props := map[string]interface{}{}
e := json.Unmarshal([]byte(*v.PostProps), &props) e := json.Unmarshal([]byte(*v.PostProps), &props)
require.Nil(t, e) require.NoError(t, e)
_, ok := props[model.POST_PROPS_DELETE_BY] _, ok := props[model.POST_PROPS_DELETE_BY]
assert.True(t, ok) assert.True(t, ok)
@@ -976,7 +976,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
// get the starting number of message export entries // get the starting number of message export entries
startTime := model.GetMillis() startTime := model.GetMillis()
messages, err := ss.Compliance().MessageExport(startTime-1, 10) messages, err := ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 0, len(messages)) assert.Equal(t, 0, len(messages))
// need a team // need a team
@@ -987,7 +987,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
Type: model.TEAM_OPEN, Type: model.TEAM_OPEN,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
// need a user part of that team // need a user part of that team
user1 := &model.User{ user1 := &model.User{
@@ -995,12 +995,12 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
Username: model.NewId(), Username: model.NewId(),
} }
user1, err = ss.User().Save(user1) user1, err = ss.User().Save(user1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.Team().SaveMember(&model.TeamMember{ _, nErr := ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id, TeamId: team.Id,
UserId: user1.Id, UserId: user1.Id,
}, -1) }, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// need a public channel // need a public channel
channel := &model.Channel{ channel := &model.Channel{
@@ -1010,7 +1010,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
Type: model.CHANNEL_OPEN, Type: model.CHANNEL_OPEN,
} }
channel, nErr = ss.Channel().Save(channel, -1) channel, nErr = ss.Channel().Save(channel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
// user1 posts in the public channel // user1 posts in the public channel
post1 := &model.Post{ post1 := &model.Post{
@@ -1020,11 +1020,11 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
Message: "zz" + model.NewId() + "a", Message: "zz" + model.NewId() + "a",
} }
post1, err = ss.Post().Save(post1) post1, err = ss.Post().Save(post1)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports from the start // fetch the message exports from the start
messages, err = ss.Compliance().MessageExport(startTime-1, 10) messages, err = ss.Compliance().MessageExport(startTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
v := messages[0] v := messages[0]
@@ -1043,11 +1043,11 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
//user 1 deletes the previous post //user 1 deletes the previous post
postDeleteTime := post1.UpdateAt + 1 postDeleteTime := post1.UpdateAt + 1
err = ss.Post().Delete(post1.Id, postDeleteTime, user1.Id) err = ss.Post().Delete(post1.Id, postDeleteTime, user1.Id)
require.Nil(t, err) require.NoError(t, err)
// fetch the message exports after delete // fetch the message exports after delete
messages, err = ss.Compliance().MessageExport(postDeleteTime-1, 10) messages, err = ss.Compliance().MessageExport(postDeleteTime-1, 10)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, 1, len(messages)) assert.Equal(t, 1, len(messages))
v = messages[0] v = messages[0]
@@ -1060,7 +1060,7 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) {
props := map[string]interface{}{} props := map[string]interface{}{}
e := json.Unmarshal([]byte(*v.PostProps), &props) e := json.Unmarshal([]byte(*v.PostProps), &props)
require.Nil(t, e) require.NoError(t, e)
_, ok := props[model.POST_PROPS_DELETE_BY] _, ok := props[model.POST_PROPS_DELETE_BY]
assert.True(t, ok) assert.True(t, ok)

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

@@ -30,7 +30,7 @@ func testEmojiSaveDelete(t *testing.T, ss store.Store) {
} }
_, err := ss.Emoji().Save(emoji1) _, err := ss.Emoji().Save(emoji1)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, emoji1.Id, 26, "should've set id for emoji") assert.Len(t, emoji1.Id, 26, "should've set id for emoji")
@@ -39,16 +39,16 @@ func testEmojiSaveDelete(t *testing.T, ss store.Store) {
Name: emoji1.Name, Name: emoji1.Name,
} }
_, err = ss.Emoji().Save(&emoji2) _, err = ss.Emoji().Save(&emoji2)
require.NotNil(t, err, "shouldn't be able to save emoji with duplicate name") require.Error(t, err, "shouldn't be able to save emoji with duplicate name")
err = ss.Emoji().Delete(emoji1, time.Now().Unix()) err = ss.Emoji().Delete(emoji1, time.Now().Unix())
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Emoji().Save(&emoji2) _, err = ss.Emoji().Save(&emoji2)
require.Nil(t, err, "should be able to save emoji with duplicate name now that original has been deleted") require.NoError(t, err, "should be able to save emoji with duplicate name now that original has been deleted")
err = ss.Emoji().Delete(&emoji2, time.Now().Unix()+1) err = ss.Emoji().Delete(&emoji2, time.Now().Unix()+1)
require.Nil(t, err) require.NoError(t, err)
} }
func testEmojiGet(t *testing.T, ss store.Store) { func testEmojiGet(t *testing.T, ss store.Store) {
@@ -69,24 +69,24 @@ func testEmojiGet(t *testing.T, ss store.Store) {
for i, emoji := range emojis { for i, emoji := range emojis {
data, err := ss.Emoji().Save(&emoji) data, err := ss.Emoji().Save(&emoji)
require.Nil(t, err) require.NoError(t, err)
emojis[i] = *data emojis[i] = *data
} }
defer func() { defer func() {
for _, emoji := range emojis { for _, emoji := range emojis {
err := ss.Emoji().Delete(&emoji, time.Now().Unix()) err := ss.Emoji().Delete(&emoji, time.Now().Unix())
require.Nil(t, err) require.NoError(t, err)
} }
}() }()
for _, emoji := range emojis { for _, emoji := range emojis {
_, err := ss.Emoji().Get(emoji.Id, false) _, err := ss.Emoji().Get(emoji.Id, false)
require.Nilf(t, err, "failed to get emoji with id %v", emoji.Id) require.NoErrorf(t, err, "failed to get emoji with id %v", emoji.Id)
} }
for _, emoji := range emojis { for _, emoji := range emojis {
_, err := ss.Emoji().Get(emoji.Id, true) _, err := ss.Emoji().Get(emoji.Id, true)
require.Nilf(t, err, "failed to get emoji with id %v", emoji.Id) require.NoErrorf(t, err, "failed to get emoji with id %v", emoji.Id)
} }
} }
@@ -108,19 +108,19 @@ func testEmojiGetByName(t *testing.T, ss store.Store) {
for i, emoji := range emojis { for i, emoji := range emojis {
data, err := ss.Emoji().Save(&emoji) data, err := ss.Emoji().Save(&emoji)
require.Nil(t, err) require.NoError(t, err)
emojis[i] = *data emojis[i] = *data
} }
defer func() { defer func() {
for _, emoji := range emojis { for _, emoji := range emojis {
err := ss.Emoji().Delete(&emoji, time.Now().Unix()) err := ss.Emoji().Delete(&emoji, time.Now().Unix())
require.Nil(t, err) require.NoError(t, err)
} }
}() }()
for _, emoji := range emojis { for _, emoji := range emojis {
_, err := ss.Emoji().GetByName(emoji.Name, true) _, err := ss.Emoji().GetByName(emoji.Name, true)
require.Nilf(t, err, "failed to get emoji with name %v", emoji.Name) require.NoErrorf(t, err, "failed to get emoji with name %v", emoji.Name)
} }
} }
@@ -142,38 +142,38 @@ func testEmojiGetMultipleByName(t *testing.T, ss store.Store) {
for i, emoji := range emojis { for i, emoji := range emojis {
data, err := ss.Emoji().Save(&emoji) data, err := ss.Emoji().Save(&emoji)
require.Nil(t, err) require.NoError(t, err)
emojis[i] = *data emojis[i] = *data
} }
defer func() { defer func() {
for _, emoji := range emojis { for _, emoji := range emojis {
err := ss.Emoji().Delete(&emoji, time.Now().Unix()) err := ss.Emoji().Delete(&emoji, time.Now().Unix())
require.Nil(t, err) require.NoError(t, err)
} }
}() }()
t.Run("one emoji", func(t *testing.T) { t.Run("one emoji", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName([]string{emojis[0].Name}) received, err := ss.Emoji().GetMultipleByName([]string{emojis[0].Name})
require.Nilf(t, err, "could not get emoji") require.NoError(t, err, "could not get emoji")
require.Len(t, received, 1, "got incorrect emoji") require.Len(t, received, 1, "got incorrect emoji")
require.Equal(t, *received[0], emojis[0], "got incorrect emoji") require.Equal(t, *received[0], emojis[0], "got incorrect emoji")
}) })
t.Run("multiple emojis", func(t *testing.T) { t.Run("multiple emojis", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName([]string{emojis[0].Name, emojis[1].Name, emojis[2].Name}) received, err := ss.Emoji().GetMultipleByName([]string{emojis[0].Name, emojis[1].Name, emojis[2].Name})
require.Nil(t, err, "could not get emojis") require.NoError(t, err, "could not get emojis")
require.Len(t, received, 3, "got incorrect emojis") require.Len(t, received, 3, "got incorrect emojis")
}) })
t.Run("one nonexistent emoji", func(t *testing.T) { t.Run("one nonexistent emoji", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName([]string{"ab"}) received, err := ss.Emoji().GetMultipleByName([]string{"ab"})
require.Nilf(t, err, "%v, could not get emoji", err) require.NoError(t, err, "could not get emoji", err)
require.Empty(t, received, "got incorrect emoji") require.Empty(t, received, "got incorrect emoji")
}) })
t.Run("multiple emojis with nonexistent names", func(t *testing.T) { t.Run("multiple emojis with nonexistent names", func(t *testing.T) {
received, err := ss.Emoji().GetMultipleByName([]string{emojis[0].Name, emojis[1].Name, emojis[2].Name, "abcd", "1234"}) received, err := ss.Emoji().GetMultipleByName([]string{emojis[0].Name, emojis[1].Name, emojis[2].Name, "abcd", "1234"})
require.Nil(t, err, "could not get emojis") require.NoError(t, err, "could not get emojis")
require.Len(t, received, 3, "got incorrect emojis") require.Len(t, received, 3, "got incorrect emojis")
}) })
} }
@@ -196,18 +196,18 @@ func testEmojiGetList(t *testing.T, ss store.Store) {
for i, emoji := range emojis { for i, emoji := range emojis {
data, err := ss.Emoji().Save(&emoji) data, err := ss.Emoji().Save(&emoji)
require.Nil(t, err) require.NoError(t, err)
emojis[i] = *data emojis[i] = *data
} }
defer func() { defer func() {
for _, emoji := range emojis { for _, emoji := range emojis {
err := ss.Emoji().Delete(&emoji, time.Now().Unix()) err := ss.Emoji().Delete(&emoji, time.Now().Unix())
require.Nil(t, err) require.NoError(t, err)
} }
}() }()
result, err := ss.Emoji().GetList(0, 100, "") result, err := ss.Emoji().GetList(0, 100, "")
require.Nil(t, err) require.NoError(t, err)
for _, emoji := range emojis { for _, emoji := range emojis {
found := false found := false
@@ -223,14 +223,14 @@ func testEmojiGetList(t *testing.T, ss store.Store) {
} }
remojis, err := ss.Emoji().GetList(0, 3, model.EMOJI_SORT_BY_NAME) remojis, err := ss.Emoji().GetList(0, 3, model.EMOJI_SORT_BY_NAME)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, 3, len(remojis)) assert.Equal(t, 3, len(remojis))
assert.Equal(t, emojis[0].Name, remojis[0].Name) assert.Equal(t, emojis[0].Name, remojis[0].Name)
assert.Equal(t, emojis[1].Name, remojis[1].Name) assert.Equal(t, emojis[1].Name, remojis[1].Name)
assert.Equal(t, emojis[2].Name, remojis[2].Name) assert.Equal(t, emojis[2].Name, remojis[2].Name)
remojis, err = ss.Emoji().GetList(1, 2, model.EMOJI_SORT_BY_NAME) remojis, err = ss.Emoji().GetList(1, 2, model.EMOJI_SORT_BY_NAME)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, 2, len(remojis)) assert.Equal(t, 2, len(remojis))
assert.Equal(t, emojis[1].Name, remojis[0].Name) assert.Equal(t, emojis[1].Name, remojis[0].Name)
assert.Equal(t, emojis[2].Name, remojis[1].Name) assert.Equal(t, emojis[2].Name, remojis[1].Name)
@@ -259,20 +259,20 @@ func testEmojiSearch(t *testing.T, ss store.Store) {
for i, emoji := range emojis { for i, emoji := range emojis {
data, err := ss.Emoji().Save(&emoji) data, err := ss.Emoji().Save(&emoji)
require.Nil(t, err) require.NoError(t, err)
emojis[i] = *data emojis[i] = *data
} }
defer func() { defer func() {
for _, emoji := range emojis { for _, emoji := range emojis {
err := ss.Emoji().Delete(&emoji, time.Now().Unix()) err := ss.Emoji().Delete(&emoji, time.Now().Unix())
require.Nil(t, err) require.NoError(t, err)
} }
}() }()
shouldFind := []bool{true, false, false, false} shouldFind := []bool{true, false, false, false}
result, err := ss.Emoji().Search("blargh", true, 100) result, err := ss.Emoji().Search("blargh", true, 100)
require.Nil(t, err) require.NoError(t, err)
for i, emoji := range emojis { for i, emoji := range emojis {
found := false found := false
@@ -288,7 +288,7 @@ func testEmojiSearch(t *testing.T, ss store.Store) {
shouldFind = []bool{true, true, true, false} shouldFind = []bool{true, true, true, false}
result, err = ss.Emoji().Search("blargh", false, 100) result, err = ss.Emoji().Search("blargh", false, 100)
require.Nil(t, err) require.NoError(t, err)
for i, emoji := range emojis { for i, emoji := range emojis {
found := false found := false

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

@@ -36,7 +36,7 @@ func testFileInfoSaveGet(t *testing.T, ss store.Store) {
} }
info, err := ss.FileInfo().Save(info) info, err := ss.FileInfo().Save(info)
require.Nil(t, err) require.NoError(t, err)
require.NotEqual(t, len(info.Id), 0) require.NotEqual(t, len(info.Id), 0)
defer func() { defer func() {
@@ -44,7 +44,7 @@ func testFileInfoSaveGet(t *testing.T, ss store.Store) {
}() }()
rinfo, err := ss.FileInfo().Get(info.Id) rinfo, err := ss.FileInfo().Get(info.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, info.Id, rinfo.Id) require.Equal(t, info.Id, rinfo.Id)
info2, err := ss.FileInfo().Save(&model.FileInfo{ info2, err := ss.FileInfo().Save(&model.FileInfo{
@@ -52,10 +52,10 @@ func testFileInfoSaveGet(t *testing.T, ss store.Store) {
Path: "file.txt", Path: "file.txt",
DeleteAt: 123, DeleteAt: 123,
}) })
require.Nil(t, err) require.NoError(t, err)
_, err = ss.FileInfo().Get(info2.Id) _, err = ss.FileInfo().Get(info2.Id)
assert.NotNil(t, err) assert.Error(t, err)
defer func() { defer func() {
ss.FileInfo().PermanentDelete(info2.Id) ss.FileInfo().PermanentDelete(info2.Id)
@@ -69,14 +69,14 @@ func testFileInfoSaveGetByPath(t *testing.T, ss store.Store) {
} }
info, err := ss.FileInfo().Save(info) info, err := ss.FileInfo().Save(info)
require.Nil(t, err) require.NoError(t, err)
assert.NotEqual(t, len(info.Id), 0) assert.NotEqual(t, len(info.Id), 0)
defer func() { defer func() {
ss.FileInfo().PermanentDelete(info.Id) ss.FileInfo().PermanentDelete(info.Id)
}() }()
rinfo, err := ss.FileInfo().GetByPath(info.Path) rinfo, err := ss.FileInfo().GetByPath(info.Path)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, info.Id, rinfo.Id) assert.Equal(t, info.Id, rinfo.Id)
info2, err := ss.FileInfo().Save(&model.FileInfo{ info2, err := ss.FileInfo().Save(&model.FileInfo{
@@ -84,10 +84,10 @@ func testFileInfoSaveGetByPath(t *testing.T, ss store.Store) {
Path: "file.txt", Path: "file.txt",
DeleteAt: 123, DeleteAt: 123,
}) })
require.Nil(t, err) require.NoError(t, err)
_, err = ss.FileInfo().GetByPath(info2.Id) _, err = ss.FileInfo().GetByPath(info2.Id)
assert.NotNil(t, err) assert.Error(t, err)
defer func() { defer func() {
ss.FileInfo().PermanentDelete(info2.Id) ss.FileInfo().PermanentDelete(info2.Id)
@@ -124,7 +124,7 @@ func testFileInfoGetForPost(t *testing.T, ss store.Store) {
for i, info := range infos { for i, info := range infos {
newInfo, err := ss.FileInfo().Save(info) newInfo, err := ss.FileInfo().Save(info)
require.Nil(t, err) require.NoError(t, err)
infos[i] = newInfo infos[i] = newInfo
defer func(id string) { defer func(id string) {
ss.FileInfo().PermanentDelete(id) ss.FileInfo().PermanentDelete(id)
@@ -205,7 +205,7 @@ func testFileInfoGetForPost(t *testing.T, ss store.Store) {
tc.IncludeDeleted, tc.IncludeDeleted,
tc.AllowFromCache, tc.AllowFromCache,
) )
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, postInfos, tc.ExpectedPosts) assert.Len(t, postInfos, tc.ExpectedPosts)
}) })
@@ -242,7 +242,7 @@ func testFileInfoGetForUser(t *testing.T, ss store.Store) {
for i, info := range infos { for i, info := range infos {
newInfo, err := ss.FileInfo().Save(info) newInfo, err := ss.FileInfo().Save(info)
require.Nil(t, err) require.NoError(t, err)
infos[i] = newInfo infos[i] = newInfo
defer func(id string) { defer func(id string) {
ss.FileInfo().PermanentDelete(id) ss.FileInfo().PermanentDelete(id)
@@ -250,11 +250,11 @@ func testFileInfoGetForUser(t *testing.T, ss store.Store) {
} }
userPosts, err := ss.FileInfo().GetForUser(userId) userPosts, err := ss.FileInfo().GetForUser(userId)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, userPosts, 3) assert.Len(t, userPosts, 3)
userPosts, err = ss.FileInfo().GetForUser(userId2) userPosts, err = ss.FileInfo().GetForUser(userId2)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, userPosts, 1) assert.Len(t, userPosts, 1)
} }
@@ -264,7 +264,7 @@ func testFileInfoGetWithOptions(t *testing.T, ss store.Store) {
post.ChannelId = chId post.ChannelId = chId
post.UserId = user post.UserId = user
_, err := ss.Post().Save(&post) _, err := ss.Post().Save(&post)
require.Nil(t, err) require.NoError(t, err)
return &post return &post
} }
@@ -281,7 +281,7 @@ func testFileInfoGetWithOptions(t *testing.T, ss store.Store) {
fileInfo.PostId = post.Id fileInfo.PostId = post.Id
} }
_, err := ss.FileInfo().Save(&fileInfo) _, err := ss.FileInfo().Save(&fileInfo)
require.Nil(t, err) require.NoError(t, err)
return fileInfo return fileInfo
} }
@@ -306,7 +306,7 @@ func testFileInfoGetWithOptions(t *testing.T, ss store.Store) {
// delete a file // delete a file
_, err := ss.FileInfo().DeleteForPost(file2_2.PostId) _, err := ss.FileInfo().DeleteForPost(file2_2.PostId)
require.Nil(t, err) require.NoError(t, err)
testCases := []struct { testCases := []struct {
Name string Name string
@@ -386,7 +386,7 @@ func testFileInfoGetWithOptions(t *testing.T, ss store.Store) {
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.Name, func(t *testing.T) { t.Run(tc.Name, func(t *testing.T) {
fileInfos, err := ss.FileInfo().GetWithOptions(tc.Page, tc.PerPage, tc.Opt) fileInfos, err := ss.FileInfo().GetWithOptions(tc.Page, tc.PerPage, tc.Opt)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, fileInfos, len(tc.ExpectedFileIds)) require.Len(t, fileInfos, len(tc.ExpectedFileIds))
for i := range tc.ExpectedFileIds { for i := range tc.ExpectedFileIds {
assert.Equal(t, tc.ExpectedFileIds[i], fileInfos[i].Id) assert.Equal(t, tc.ExpectedFileIds[i], fileInfos[i].Id)
@@ -410,26 +410,26 @@ func testFileInfoAttachToPost(t *testing.T, ss store.Store) {
CreatorId: userId, CreatorId: userId,
Path: "file.txt", Path: "file.txt",
}) })
require.Nil(t, err) require.NoError(t, err)
info2, err := ss.FileInfo().Save(&model.FileInfo{ info2, err := ss.FileInfo().Save(&model.FileInfo{
CreatorId: userId, CreatorId: userId,
Path: "file2.txt", Path: "file2.txt",
}) })
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, "", info1.PostId) require.Equal(t, "", info1.PostId)
require.Equal(t, "", info2.PostId) require.Equal(t, "", info2.PostId)
err = ss.FileInfo().AttachToPost(info1.Id, postId, userId) err = ss.FileInfo().AttachToPost(info1.Id, postId, userId)
assert.Nil(t, err) assert.NoError(t, err)
info1.PostId = postId info1.PostId = postId
err = ss.FileInfo().AttachToPost(info2.Id, postId, userId) err = ss.FileInfo().AttachToPost(info2.Id, postId, userId)
assert.Nil(t, err) assert.NoError(t, err)
info2.PostId = postId info2.PostId = postId
data, err := ss.FileInfo().GetForPost(postId, true, false, false) data, err := ss.FileInfo().GetForPost(postId, true, false, false)
require.Nil(t, err) require.NoError(t, err)
expected := []*model.FileInfo{info1, info2} expected := []*model.FileInfo{info1, info2}
sort.Sort(byFileInfoId(expected)) sort.Sort(byFileInfoId(expected))
@@ -445,15 +445,15 @@ func testFileInfoAttachToPost(t *testing.T, ss store.Store) {
CreatorId: userId, CreatorId: userId,
Path: "file.txt", Path: "file.txt",
}) })
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, "", info.PostId) require.Equal(t, "", info.PostId)
err = ss.FileInfo().AttachToPost(info.Id, model.NewId(), userId) err = ss.FileInfo().AttachToPost(info.Id, model.NewId(), userId)
require.Nil(t, err) require.NoError(t, err)
err = ss.FileInfo().AttachToPost(info.Id, postId, userId) err = ss.FileInfo().AttachToPost(info.Id, postId, userId)
require.NotNil(t, err) require.Error(t, err)
}) })
t.Run("should not attach files owned from a different user", func(t *testing.T) { t.Run("should not attach files owned from a different user", func(t *testing.T) {
@@ -464,12 +464,12 @@ func testFileInfoAttachToPost(t *testing.T, ss store.Store) {
CreatorId: model.NewId(), CreatorId: model.NewId(),
Path: "file.txt", Path: "file.txt",
}) })
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, "", info.PostId) require.Equal(t, "", info.PostId)
err = ss.FileInfo().AttachToPost(info.Id, postId, userId) err = ss.FileInfo().AttachToPost(info.Id, postId, userId)
assert.NotNil(t, err) assert.Error(t, err)
}) })
t.Run("should attach files uploaded by nouser", func(t *testing.T) { t.Run("should attach files uploaded by nouser", func(t *testing.T) {
@@ -479,14 +479,14 @@ func testFileInfoAttachToPost(t *testing.T, ss store.Store) {
CreatorId: "nouser", CreatorId: "nouser",
Path: "file.txt", Path: "file.txt",
}) })
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, "", info.PostId) assert.Equal(t, "", info.PostId)
err = ss.FileInfo().AttachToPost(info.Id, postId, model.NewId()) err = ss.FileInfo().AttachToPost(info.Id, postId, model.NewId())
require.Nil(t, err) require.NoError(t, err)
data, err := ss.FileInfo().GetForPost(postId, true, false, false) data, err := ss.FileInfo().GetForPost(postId, true, false, false)
require.Nil(t, err) require.NoError(t, err)
info.PostId = postId info.PostId = postId
assert.EqualValues(t, []*model.FileInfo{info}, data) assert.EqualValues(t, []*model.FileInfo{info}, data)
}) })
@@ -522,7 +522,7 @@ func testFileInfoDeleteForPost(t *testing.T, ss store.Store) {
for i, info := range infos { for i, info := range infos {
newInfo, err := ss.FileInfo().Save(info) newInfo, err := ss.FileInfo().Save(info)
require.Nil(t, err) require.NoError(t, err)
infos[i] = newInfo infos[i] = newInfo
defer func(id string) { defer func(id string) {
ss.FileInfo().PermanentDelete(id) ss.FileInfo().PermanentDelete(id)
@@ -530,10 +530,10 @@ func testFileInfoDeleteForPost(t *testing.T, ss store.Store) {
} }
_, err := ss.FileInfo().DeleteForPost(postId) _, err := ss.FileInfo().DeleteForPost(postId)
require.Nil(t, err) require.NoError(t, err)
infos, err = ss.FileInfo().GetForPost(postId, true, false, false) infos, err = ss.FileInfo().GetForPost(postId, true, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, infos) assert.Empty(t, infos)
} }
@@ -543,10 +543,10 @@ func testFileInfoPermanentDelete(t *testing.T, ss store.Store) {
CreatorId: model.NewId(), CreatorId: model.NewId(),
Path: "file.txt", Path: "file.txt",
}) })
require.Nil(t, err) require.NoError(t, err)
err = ss.FileInfo().PermanentDelete(info.Id) err = ss.FileInfo().PermanentDelete(info.Id)
require.Nil(t, err) require.NoError(t, err)
} }
func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) { func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) {
@@ -558,7 +558,7 @@ func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) {
Path: "file.txt", Path: "file.txt",
CreateAt: 1000, CreateAt: 1000,
}) })
require.Nil(t, err) require.NoError(t, err)
_, err = ss.FileInfo().Save(&model.FileInfo{ _, err = ss.FileInfo().Save(&model.FileInfo{
PostId: postId, PostId: postId,
@@ -566,7 +566,7 @@ func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) {
Path: "file.txt", Path: "file.txt",
CreateAt: 1200, CreateAt: 1200,
}) })
require.Nil(t, err) require.NoError(t, err)
_, err = ss.FileInfo().Save(&model.FileInfo{ _, err = ss.FileInfo().Save(&model.FileInfo{
PostId: postId, PostId: postId,
@@ -574,17 +574,17 @@ func testFileInfoPermanentDeleteBatch(t *testing.T, ss store.Store) {
Path: "file.txt", Path: "file.txt",
CreateAt: 2000, CreateAt: 2000,
}) })
require.Nil(t, err) require.NoError(t, err)
postFiles, err := ss.FileInfo().GetForPost(postId, true, false, false) postFiles, err := ss.FileInfo().GetForPost(postId, true, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, postFiles, 3) assert.Len(t, postFiles, 3)
_, err = ss.FileInfo().PermanentDeleteBatch(1500, 1000) _, err = ss.FileInfo().PermanentDeleteBatch(1500, 1000)
require.Nil(t, err) require.NoError(t, err)
postFiles, err = ss.FileInfo().GetForPost(postId, true, false, false) postFiles, err = ss.FileInfo().GetForPost(postId, true, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, postFiles, 1) assert.Len(t, postFiles, 1)
} }
@@ -597,8 +597,8 @@ func testFileInfoPermanentDeleteByUser(t *testing.T, ss store.Store) {
CreatorId: userId, CreatorId: userId,
Path: "file.txt", Path: "file.txt",
}) })
require.Nil(t, err) require.NoError(t, err)
_, err = ss.FileInfo().PermanentDeleteByUser(userId) _, err = ss.FileInfo().PermanentDeleteByUser(userId)
require.Nil(t, err) require.NoError(t, err)
} }

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -43,12 +43,12 @@ func testJobSaveGet(t *testing.T, ss store.Store) {
} }
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
received, err := ss.Job().Get(job.Id) received, err := ss.Job().Get(job.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, job.Id, received.Id, "received incorrect job after save") require.Equal(t, job.Id, received.Id, "received incorrect job after save")
require.Equal(t, "12345", received.Data["Total"]) require.Equal(t, "12345", received.Data["Total"])
} }
@@ -73,12 +73,12 @@ func testJobGetAllByType(t *testing.T, ss store.Store) {
for _, job := range jobs { for _, job := range jobs {
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllByType(jobType) received, err := ss.Job().GetAllByType(jobType)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, received, 2) require.Len(t, received, 2)
require.ElementsMatch(t, []string{jobs[0].Id, jobs[1].Id}, []string{received[0].Id, received[1].Id}) require.ElementsMatch(t, []string{jobs[0].Id, jobs[1].Id}, []string{received[0].Id, received[1].Id})
} }
@@ -111,18 +111,18 @@ func testJobGetAllByTypePage(t *testing.T, ss store.Store) {
for _, job := range jobs { for _, job := range jobs {
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllByTypePage(jobType, 0, 2) received, err := ss.Job().GetAllByTypePage(jobType, 0, 2)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, received, 2) require.Len(t, received, 2)
require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first") require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first")
require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second") require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second")
received, err = ss.Job().GetAllByTypePage(jobType, 2, 2) received, err = ss.Job().GetAllByTypePage(jobType, 2, 2)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, received, 1) require.Len(t, received, 1)
require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last") require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last")
} }
@@ -151,18 +151,18 @@ func testJobGetAllPage(t *testing.T, ss store.Store) {
for _, job := range jobs { for _, job := range jobs {
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllPage(0, 2) received, err := ss.Job().GetAllPage(0, 2)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, received, 2) require.Len(t, received, 2)
require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first") require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first")
require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second") require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second")
received, err = ss.Job().GetAllPage(2, 2) received, err = ss.Job().GetAllPage(2, 2)
require.Nil(t, err) require.NoError(t, err)
require.NotEmpty(t, received) require.NotEmpty(t, received)
require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last") require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last")
} }
@@ -203,12 +203,12 @@ func testJobGetAllByStatus(t *testing.T, ss store.Store) {
for _, job := range jobs { for _, job := range jobs {
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetAllByStatus(status) received, err := ss.Job().GetAllByStatus(status)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, received, 3) require.Len(t, received, 3)
require.Equal(t, received[0].Id, jobs[1].Id) require.Equal(t, received[0].Id, jobs[1].Id)
require.Equal(t, received[1].Id, jobs[0].Id) require.Equal(t, received[1].Id, jobs[0].Id)
@@ -251,16 +251,16 @@ func testJobStoreGetNewestJobByStatusAndType(t *testing.T, ss store.Store) {
for _, job := range jobs { for _, job := range jobs {
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetNewestJobByStatusAndType(status1, jobType1) received, err := ss.Job().GetNewestJobByStatusAndType(status1, jobType1)
assert.Nil(t, err) assert.NoError(t, err)
assert.EqualValues(t, jobs[0].Id, received.Id) assert.EqualValues(t, jobs[0].Id, received.Id)
received, err = ss.Job().GetNewestJobByStatusAndType(model.NewId(), model.NewId()) received, err = ss.Job().GetNewestJobByStatusAndType(model.NewId(), model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
assert.Nil(t, received) assert.Nil(t, received)
@@ -301,31 +301,31 @@ func testJobStoreGetNewestJobByStatusesAndType(t *testing.T, ss store.Store) {
for _, job := range jobs { for _, job := range jobs {
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
received, err := ss.Job().GetNewestJobByStatusesAndType([]string{status1, status2}, jobType1) received, err := ss.Job().GetNewestJobByStatusesAndType([]string{status1, status2}, jobType1)
assert.Nil(t, err) assert.NoError(t, err)
assert.EqualValues(t, jobs[3].Id, received.Id) assert.EqualValues(t, jobs[3].Id, received.Id)
received, err = ss.Job().GetNewestJobByStatusesAndType([]string{model.NewId(), model.NewId()}, model.NewId()) received, err = ss.Job().GetNewestJobByStatusesAndType([]string{model.NewId(), model.NewId()}, model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
assert.Nil(t, received) assert.Nil(t, received)
received, err = ss.Job().GetNewestJobByStatusesAndType([]string{status2}, jobType2) received, err = ss.Job().GetNewestJobByStatusesAndType([]string{status2}, jobType2)
assert.NotNil(t, err) assert.Error(t, err)
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
assert.Nil(t, received) assert.Nil(t, received)
received, err = ss.Job().GetNewestJobByStatusesAndType([]string{status1}, jobType2) received, err = ss.Job().GetNewestJobByStatusesAndType([]string{status1}, jobType2)
assert.Nil(t, err) assert.NoError(t, err)
assert.EqualValues(t, jobs[2].Id, received.Id) assert.EqualValues(t, jobs[2].Id, received.Id)
received, err = ss.Job().GetNewestJobByStatusesAndType([]string{}, jobType1) received, err = ss.Job().GetNewestJobByStatusesAndType([]string{}, jobType1)
assert.NotNil(t, err) assert.Error(t, err)
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
assert.Nil(t, received) assert.Nil(t, received)
} }
@@ -365,24 +365,24 @@ func testJobStoreGetCountByStatusAndType(t *testing.T, ss store.Store) {
for _, job := range jobs { for _, job := range jobs {
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
} }
count, err := ss.Job().GetCountByStatusAndType(status1, jobType1) count, err := ss.Job().GetCountByStatusAndType(status1, jobType1)
assert.Nil(t, err) assert.NoError(t, err)
assert.EqualValues(t, 2, count) assert.EqualValues(t, 2, count)
count, err = ss.Job().GetCountByStatusAndType(status2, jobType2) count, err = ss.Job().GetCountByStatusAndType(status2, jobType2)
assert.Nil(t, err) assert.NoError(t, err)
assert.EqualValues(t, 0, count) assert.EqualValues(t, 0, count)
count, err = ss.Job().GetCountByStatusAndType(status1, jobType2) count, err = ss.Job().GetCountByStatusAndType(status1, jobType2)
assert.Nil(t, err) assert.NoError(t, err)
assert.EqualValues(t, 1, count) assert.EqualValues(t, 1, count)
count, err = ss.Job().GetCountByStatusAndType(status2, jobType1) count, err = ss.Job().GetCountByStatusAndType(status2, jobType1)
assert.Nil(t, err) assert.NoError(t, err)
assert.EqualValues(t, 1, count) assert.EqualValues(t, 1, count)
} }
@@ -395,7 +395,7 @@ func testJobUpdateOptimistically(t *testing.T, ss store.Store) {
} }
_, err := ss.Job().Save(job) _, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
job.LastActivityAt = model.GetMillis() job.LastActivityAt = model.GetMillis()
@@ -411,11 +411,11 @@ func testJobUpdateOptimistically(t *testing.T, ss store.Store) {
time.Sleep(2 * time.Millisecond) time.Sleep(2 * time.Millisecond)
updated, err = ss.Job().UpdateOptimistically(job, model.JOB_STATUS_PENDING) updated, err = ss.Job().UpdateOptimistically(job, model.JOB_STATUS_PENDING)
require.Nil(t, err) require.NoError(t, err)
require.True(t, updated) require.True(t, updated)
updatedJob, err := ss.Job().Get(job.Id) updatedJob, err := ss.Job().Get(job.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, updatedJob.Type, job.Type) require.Equal(t, updatedJob.Type, job.Type)
require.Equal(t, updatedJob.CreateAt, job.CreateAt) require.Equal(t, updatedJob.CreateAt, job.CreateAt)
@@ -435,7 +435,7 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
var lastUpdateAt int64 var lastUpdateAt int64
received, err := ss.Job().Save(job) received, err := ss.Job().Save(job)
require.Nil(t, err) require.NoError(t, err)
lastUpdateAt = received.LastActivityAt lastUpdateAt = received.LastActivityAt
defer ss.Job().Delete(job.Id) defer ss.Job().Delete(job.Id)
@@ -443,7 +443,7 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
time.Sleep(2 * time.Millisecond) time.Sleep(2 * time.Millisecond)
received, err = ss.Job().UpdateStatus(job.Id, model.JOB_STATUS_PENDING) received, err = ss.Job().UpdateStatus(job.Id, model.JOB_STATUS_PENDING)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, model.JOB_STATUS_PENDING, received.Status) require.Equal(t, model.JOB_STATUS_PENDING, received.Status)
require.Greater(t, received.LastActivityAt, lastUpdateAt) require.Greater(t, received.LastActivityAt, lastUpdateAt)
@@ -452,11 +452,11 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
time.Sleep(2 * time.Millisecond) time.Sleep(2 * time.Millisecond)
updated, err := ss.Job().UpdateStatusOptimistically(job.Id, model.JOB_STATUS_IN_PROGRESS, model.JOB_STATUS_SUCCESS) updated, err := ss.Job().UpdateStatusOptimistically(job.Id, model.JOB_STATUS_IN_PROGRESS, model.JOB_STATUS_SUCCESS)
require.Nil(t, err) require.NoError(t, err)
require.False(t, updated) require.False(t, updated)
received, err = ss.Job().Get(job.Id) received, err = ss.Job().Get(job.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, model.JOB_STATUS_PENDING, received.Status) require.Equal(t, model.JOB_STATUS_PENDING, received.Status)
require.Equal(t, received.LastActivityAt, lastUpdateAt) require.Equal(t, received.LastActivityAt, lastUpdateAt)
@@ -464,12 +464,12 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
time.Sleep(2 * time.Millisecond) time.Sleep(2 * time.Millisecond)
updated, err = ss.Job().UpdateStatusOptimistically(job.Id, model.JOB_STATUS_PENDING, model.JOB_STATUS_IN_PROGRESS) updated, err = ss.Job().UpdateStatusOptimistically(job.Id, model.JOB_STATUS_PENDING, model.JOB_STATUS_IN_PROGRESS)
require.Nil(t, err) require.NoError(t, err)
require.True(t, updated, "should have succeeded") require.True(t, updated, "should have succeeded")
var startAtSet int64 var startAtSet int64
received, err = ss.Job().Get(job.Id) received, err = ss.Job().Get(job.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, model.JOB_STATUS_IN_PROGRESS, received.Status) require.Equal(t, model.JOB_STATUS_IN_PROGRESS, received.Status)
require.NotEqual(t, 0, received.StartAt) require.NotEqual(t, 0, received.StartAt)
require.Greater(t, received.LastActivityAt, lastUpdateAt) require.Greater(t, received.LastActivityAt, lastUpdateAt)
@@ -479,11 +479,11 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
time.Sleep(2 * time.Millisecond) time.Sleep(2 * time.Millisecond)
updated, err = ss.Job().UpdateStatusOptimistically(job.Id, model.JOB_STATUS_IN_PROGRESS, model.JOB_STATUS_SUCCESS) updated, err = ss.Job().UpdateStatusOptimistically(job.Id, model.JOB_STATUS_IN_PROGRESS, model.JOB_STATUS_SUCCESS)
require.Nil(t, err) require.NoError(t, err)
require.True(t, updated, "should have succeeded") require.True(t, updated, "should have succeeded")
received, err = ss.Job().Get(job.Id) received, err = ss.Job().Get(job.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, model.JOB_STATUS_SUCCESS, received.Status) require.Equal(t, model.JOB_STATUS_SUCCESS, received.Status)
require.Equal(t, startAtSet, received.StartAt) require.Equal(t, startAtSet, received.StartAt)
require.Greater(t, received.LastActivityAt, lastUpdateAt) require.Greater(t, received.LastActivityAt, lastUpdateAt)
@@ -491,8 +491,8 @@ func testJobUpdateStatusUpdateStatusOptimistically(t *testing.T, ss store.Store)
func testJobDelete(t *testing.T, ss store.Store) { func testJobDelete(t *testing.T, ss store.Store) {
job, err := ss.Job().Save(&model.Job{Id: model.NewId()}) job, err := ss.Job().Save(&model.Job{Id: model.NewId()})
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Job().Delete(job.Id) _, err = ss.Job().Delete(job.Id)
assert.Nil(t, err) assert.NoError(t, err)
} }

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

@@ -23,15 +23,15 @@ func testLicenseStoreSave(t *testing.T, ss store.Store) {
l1.Bytes = "junk" l1.Bytes = "junk"
_, err := ss.License().Save(&l1) _, err := ss.License().Save(&l1)
require.Nil(t, err, "couldn't save license record") require.NoError(t, err, "couldn't save license record")
_, err = ss.License().Save(&l1) _, err = ss.License().Save(&l1)
require.Nil(t, err, "shouldn't fail on trying to save existing license record") require.NoError(t, err, "shouldn't fail on trying to save existing license record")
l1.Id = "" l1.Id = ""
_, err = ss.License().Save(&l1) _, err = ss.License().Save(&l1)
require.NotNil(t, err, "should fail on invalid license") require.Error(t, err, "should fail on invalid license")
} }
func testLicenseStoreGet(t *testing.T, ss store.Store) { func testLicenseStoreGet(t *testing.T, ss store.Store) {
@@ -40,13 +40,13 @@ func testLicenseStoreGet(t *testing.T, ss store.Store) {
l1.Bytes = "junk" l1.Bytes = "junk"
_, err := ss.License().Save(&l1) _, err := ss.License().Save(&l1)
require.Nil(t, err) require.NoError(t, err)
record, err := ss.License().Get(l1.Id) record, err := ss.License().Get(l1.Id)
require.Nil(t, err, "couldn't get license") require.NoError(t, err, "couldn't get license")
require.Equal(t, record.Bytes, l1.Bytes, "license bytes didn't match") require.Equal(t, record.Bytes, l1.Bytes, "license bytes didn't match")
_, err = ss.License().Get("missing") _, err = ss.License().Get("missing")
require.NotNil(t, err, "should fail on get license") require.Error(t, err, "should fail on get license")
} }

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

@@ -41,7 +41,7 @@ func testLinkMetadataStoreSave(t *testing.T, ss store.Store) {
linkMetadata, err := ss.LinkMetadata().Save(metadata) linkMetadata, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, *metadata, *linkMetadata) assert.Equal(t, *metadata, *linkMetadata)
}) })
@@ -55,7 +55,7 @@ func testLinkMetadataStoreSave(t *testing.T, ss store.Store) {
_, err := ss.LinkMetadata().Save(metadata) _, err := ss.LinkMetadata().Save(metadata)
assert.NotNil(t, err) assert.Error(t, err)
}) })
t.Run("should save with duplicate URL and different timestamp", func(t *testing.T) { t.Run("should save with duplicate URL and different timestamp", func(t *testing.T) {
@@ -67,13 +67,13 @@ func testLinkMetadataStoreSave(t *testing.T, ss store.Store) {
} }
_, err := ss.LinkMetadata().Save(metadata) _, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
metadata.Timestamp = getNextLinkMetadataTimestamp() metadata.Timestamp = getNextLinkMetadataTimestamp()
linkMetadata, err := ss.LinkMetadata().Save(metadata) linkMetadata, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, *metadata, *linkMetadata) assert.Equal(t, *metadata, *linkMetadata)
}) })
@@ -86,13 +86,13 @@ func testLinkMetadataStoreSave(t *testing.T, ss store.Store) {
} }
_, err := ss.LinkMetadata().Save(metadata) _, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
metadata.URL = "http://example.com/another/page" metadata.URL = "http://example.com/another/page"
linkMetadata, err := ss.LinkMetadata().Save(metadata) linkMetadata, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, *metadata, *linkMetadata) assert.Equal(t, *metadata, *linkMetadata)
}) })
@@ -105,18 +105,18 @@ func testLinkMetadataStoreSave(t *testing.T, ss store.Store) {
} }
linkMetadata, err := ss.LinkMetadata().Save(metadata) linkMetadata, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, &model.PostImage{}, linkMetadata.Data) assert.Equal(t, &model.PostImage{}, linkMetadata.Data)
metadata.Data = &model.PostImage{Height: 10, Width: 20} metadata.Data = &model.PostImage{Height: 10, Width: 20}
linkMetadata, err = ss.LinkMetadata().Save(metadata) linkMetadata, err = ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, linkMetadata.Data, &model.PostImage{Height: 10, Width: 20}) assert.Equal(t, linkMetadata.Data, &model.PostImage{Height: 10, Width: 20})
// Should return the original result, not the duplicate one // Should return the original result, not the duplicate one
linkMetadata, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp) linkMetadata, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, &model.PostImage{}, linkMetadata.Data) assert.Equal(t, &model.PostImage{}, linkMetadata.Data)
}) })
} }
@@ -131,11 +131,11 @@ func testLinkMetadataStoreGet(t *testing.T, ss store.Store) {
} }
_, err := ss.LinkMetadata().Save(metadata) _, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
linkMetadata, err := ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp) linkMetadata, err := ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp)
require.Nil(t, err) require.NoError(t, err)
require.IsType(t, metadata, linkMetadata) require.IsType(t, metadata, linkMetadata)
assert.Equal(t, *metadata, *linkMetadata) assert.Equal(t, *metadata, *linkMetadata)
}) })
@@ -149,11 +149,11 @@ func testLinkMetadataStoreGet(t *testing.T, ss store.Store) {
} }
_, err := ss.LinkMetadata().Save(metadata) _, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.LinkMetadata().Get("http://example.com/another_page", metadata.Timestamp) _, err = ss.LinkMetadata().Get("http://example.com/another_page", metadata.Timestamp)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
}) })
@@ -167,11 +167,11 @@ func testLinkMetadataStoreGet(t *testing.T, ss store.Store) {
} }
_, err := ss.LinkMetadata().Save(metadata) _, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.LinkMetadata().Get(metadata.URL, getNextLinkMetadataTimestamp()) _, err = ss.LinkMetadata().Get(metadata.URL, getNextLinkMetadataTimestamp())
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
}) })
@@ -190,13 +190,13 @@ func testLinkMetadataStoreTypes(t *testing.T, ss store.Store) {
} }
received, err := ss.LinkMetadata().Save(metadata) received, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
require.IsType(t, &model.PostImage{}, received.Data) require.IsType(t, &model.PostImage{}, received.Data)
assert.Equal(t, *(metadata.Data.(*model.PostImage)), *(received.Data.(*model.PostImage))) assert.Equal(t, *(metadata.Data.(*model.PostImage)), *(received.Data.(*model.PostImage)))
received, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp) received, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp)
require.Nil(t, err) require.NoError(t, err)
require.IsType(t, &model.PostImage{}, received.Data) require.IsType(t, &model.PostImage{}, received.Data)
assert.Equal(t, *(metadata.Data.(*model.PostImage)), *(received.Data.(*model.PostImage))) assert.Equal(t, *(metadata.Data.(*model.PostImage)), *(received.Data.(*model.PostImage)))
@@ -220,13 +220,13 @@ func testLinkMetadataStoreTypes(t *testing.T, ss store.Store) {
} }
received, err := ss.LinkMetadata().Save(metadata) received, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
require.IsType(t, &opengraph.OpenGraph{}, received.Data) require.IsType(t, &opengraph.OpenGraph{}, received.Data)
assert.Equal(t, *(metadata.Data.(*opengraph.OpenGraph)), *(received.Data.(*opengraph.OpenGraph))) assert.Equal(t, *(metadata.Data.(*opengraph.OpenGraph)), *(received.Data.(*opengraph.OpenGraph)))
received, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp) received, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp)
require.Nil(t, err) require.NoError(t, err)
require.IsType(t, &opengraph.OpenGraph{}, received.Data) require.IsType(t, &opengraph.OpenGraph{}, received.Data)
assert.Equal(t, *(metadata.Data.(*opengraph.OpenGraph)), *(received.Data.(*opengraph.OpenGraph))) assert.Equal(t, *(metadata.Data.(*opengraph.OpenGraph)), *(received.Data.(*opengraph.OpenGraph)))
@@ -241,11 +241,11 @@ func testLinkMetadataStoreTypes(t *testing.T, ss store.Store) {
} }
received, err := ss.LinkMetadata().Save(metadata) received, err := ss.LinkMetadata().Save(metadata)
require.Nil(t, err) require.NoError(t, err)
assert.Nil(t, received.Data) assert.Nil(t, received.Data)
received, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp) received, err = ss.LinkMetadata().Get(metadata.URL, metadata.Timestamp)
require.Nil(t, err) require.NoError(t, err)
require.Nil(t, received.Data) require.Nil(t, received.Data)
}) })

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

@@ -40,18 +40,18 @@ func testOAuthStoreSaveApp(t *testing.T, ss store.Store) {
// Try to save an app that already has an Id // Try to save an app that already has an Id
a1.Id = model.NewId() a1.Id = model.NewId()
_, err := ss.OAuth().SaveApp(&a1) _, err := ss.OAuth().SaveApp(&a1)
require.NotNil(t, err, "Should have failed, cannot add an OAuth app cannot be save with an Id, it has to be updated") require.Error(t, err, "Should have failed, cannot add an OAuth app cannot be save with an Id, it has to be updated")
// Try to save an Invalid App // Try to save an Invalid App
a1.Id = "" a1.Id = ""
_, err = ss.OAuth().SaveApp(&a1) _, err = ss.OAuth().SaveApp(&a1)
require.NotNil(t, err, "Should have failed, app should be invalid cause it doesn' have a name set") require.Error(t, err, "Should have failed, app should be invalid cause it doesn' have a name set")
// Save the app // Save the app
a1.Id = "" a1.Id = ""
a1.Name = "TestApp" + model.NewId() a1.Name = "TestApp" + model.NewId()
_, err = ss.OAuth().SaveApp(&a1) _, err = ss.OAuth().SaveApp(&a1)
require.Nil(t, err) require.NoError(t, err)
} }
func testOAuthStoreGetApp(t *testing.T, ss store.Store) { func testOAuthStoreGetApp(t *testing.T, ss store.Store) {
@@ -61,25 +61,25 @@ func testOAuthStoreGetApp(t *testing.T, ss store.Store) {
a1.CallbackUrls = []string{"https://nowhere.com"} a1.CallbackUrls = []string{"https://nowhere.com"}
a1.Homepage = "https://nowhere.com" a1.Homepage = "https://nowhere.com"
_, err := ss.OAuth().SaveApp(&a1) _, err := ss.OAuth().SaveApp(&a1)
require.Nil(t, err) require.NoError(t, err)
// Lets try to get and app that does not exists // Lets try to get and app that does not exists
_, err = ss.OAuth().GetApp("fake0123456789abcderfgret1") _, err = ss.OAuth().GetApp("fake0123456789abcderfgret1")
require.NotNil(t, err, "Should have failed. App does not exists") require.Error(t, err, "Should have failed. App does not exists")
_, err = ss.OAuth().GetApp(a1.Id) _, err = ss.OAuth().GetApp(a1.Id)
require.Nil(t, err) require.NoError(t, err)
// Lets try and get the app from a user that hasn't created any apps // Lets try and get the app from a user that hasn't created any apps
apps, err := ss.OAuth().GetAppByUser("fake0123456789abcderfgret1", 0, 1000) apps, err := ss.OAuth().GetAppByUser("fake0123456789abcderfgret1", 0, 1000)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, apps, "Should have failed. Fake user hasn't created any apps") assert.Empty(t, apps, "Should have failed. Fake user hasn't created any apps")
_, err = ss.OAuth().GetAppByUser(a1.CreatorId, 0, 1000) _, err = ss.OAuth().GetAppByUser(a1.CreatorId, 0, 1000)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.OAuth().GetApps(0, 1000) _, err = ss.OAuth().GetApps(0, 1000)
require.Nil(t, err) require.NoError(t, err)
} }
func testOAuthStoreUpdateApp(t *testing.T, ss store.Store) { func testOAuthStoreUpdateApp(t *testing.T, ss store.Store) {
@@ -89,7 +89,7 @@ func testOAuthStoreUpdateApp(t *testing.T, ss store.Store) {
a1.CallbackUrls = []string{"https://nowhere.com"} a1.CallbackUrls = []string{"https://nowhere.com"}
a1.Homepage = "https://nowhere.com" a1.Homepage = "https://nowhere.com"
_, err := ss.OAuth().SaveApp(&a1) _, err := ss.OAuth().SaveApp(&a1)
require.Nil(t, err) require.NoError(t, err)
// temporarily save the created app id // temporarily save the created app id
id := a1.Id id := a1.Id
@@ -101,17 +101,17 @@ func testOAuthStoreUpdateApp(t *testing.T, ss store.Store) {
// Lets update the app by removing the name // Lets update the app by removing the name
a1.Name = "" a1.Name = ""
_, err = ss.OAuth().UpdateApp(&a1) _, err = ss.OAuth().UpdateApp(&a1)
require.NotNil(t, err, "Should have failed. App name is not set") require.Error(t, err, "Should have failed. App name is not set")
// Lets not find the app that we are trying to update // Lets not find the app that we are trying to update
a1.Id = "fake0123456789abcderfgret1" a1.Id = "fake0123456789abcderfgret1"
a1.Name = "NewName" a1.Name = "NewName"
_, err = ss.OAuth().UpdateApp(&a1) _, err = ss.OAuth().UpdateApp(&a1)
require.NotNil(t, err, "Should have failed. Not able to find the app") require.Error(t, err, "Should have failed. Not able to find the app")
a1.Id = id a1.Id = id
ua, err := ss.OAuth().UpdateApp(&a1) ua, err := ss.OAuth().UpdateApp(&a1)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, ua.Name, "NewName", "name did not update") require.Equal(t, ua.Name, "NewName", "name did not update")
require.NotEqual(t, ua.CreateAt, 1, "create at should not have updated") require.NotEqual(t, ua.CreateAt, 1, "create at should not have updated")
require.NotEqual(t, ua.CreatorId, "12345678901234567890123456", "creator id should not have updated") require.NotEqual(t, ua.CreatorId, "12345678901234567890123456", "creator id should not have updated")
@@ -124,14 +124,14 @@ func testOAuthStoreSaveAccessData(t *testing.T, ss store.Store) {
// Lets try and save an incomplete access data // Lets try and save an incomplete access data
_, err := ss.OAuth().SaveAccessData(&a1) _, err := ss.OAuth().SaveAccessData(&a1)
require.NotNil(t, err, "Should have failed. Access data needs the token") require.Error(t, err, "Should have failed. Access data needs the token")
a1.Token = model.NewId() a1.Token = model.NewId()
a1.RefreshToken = model.NewId() a1.RefreshToken = model.NewId()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err = ss.OAuth().SaveAccessData(&a1) _, err = ss.OAuth().SaveAccessData(&a1)
require.Nil(t, err) require.NoError(t, err)
} }
func testOAuthUpdateAccessData(t *testing.T, ss store.Store) { func testOAuthUpdateAccessData(t *testing.T, ss store.Store) {
@@ -143,24 +143,24 @@ func testOAuthUpdateAccessData(t *testing.T, ss store.Store) {
a1.ExpiresAt = model.GetMillis() a1.ExpiresAt = model.GetMillis()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAccessData(&a1) _, err := ss.OAuth().SaveAccessData(&a1)
require.Nil(t, err) require.NoError(t, err)
//Try to update to invalid Refresh Token //Try to update to invalid Refresh Token
refreshToken := a1.RefreshToken refreshToken := a1.RefreshToken
a1.RefreshToken = model.NewId() + "123" a1.RefreshToken = model.NewId() + "123"
_, err = ss.OAuth().UpdateAccessData(&a1) _, err = ss.OAuth().UpdateAccessData(&a1)
require.NotNil(t, err, "Should have failed with invalid token") require.Error(t, err, "Should have failed with invalid token")
//Try to update to invalid RedirectUri //Try to update to invalid RedirectUri
a1.RefreshToken = model.NewId() a1.RefreshToken = model.NewId()
a1.RedirectUri = "" a1.RedirectUri = ""
_, err = ss.OAuth().UpdateAccessData(&a1) _, err = ss.OAuth().UpdateAccessData(&a1)
require.NotNil(t, err, "Should have failed with invalid Redirect URI") require.Error(t, err, "Should have failed with invalid Redirect URI")
// Should update fine // Should update fine
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
ra1, err := ss.OAuth().UpdateAccessData(&a1) ra1, err := ss.OAuth().UpdateAccessData(&a1)
require.Nil(t, err) require.NoError(t, err)
require.NotEqual(t, ra1.RefreshToken, refreshToken, "refresh tokens didn't match") require.NotEqual(t, ra1.RefreshToken, refreshToken, "refresh tokens didn't match")
} }
@@ -173,28 +173,28 @@ func testOAuthStoreGetAccessData(t *testing.T, ss store.Store) {
a1.ExpiresAt = model.GetMillis() a1.ExpiresAt = model.GetMillis()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAccessData(&a1) _, err := ss.OAuth().SaveAccessData(&a1)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.OAuth().GetAccessData("invalidToken") _, err = ss.OAuth().GetAccessData("invalidToken")
require.NotNil(t, err, "Should have failed. There is no data with an invalid token") require.Error(t, err, "Should have failed. There is no data with an invalid token")
ra1, err := ss.OAuth().GetAccessData(a1.Token) ra1, err := ss.OAuth().GetAccessData(a1.Token)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, a1.Token, ra1.Token, "tokens didn't match") assert.Equal(t, a1.Token, ra1.Token, "tokens didn't match")
_, err = ss.OAuth().GetPreviousAccessData(a1.UserId, a1.ClientId) _, err = ss.OAuth().GetPreviousAccessData(a1.UserId, a1.ClientId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.OAuth().GetPreviousAccessData("user", "junk") _, err = ss.OAuth().GetPreviousAccessData("user", "junk")
require.Nil(t, err) require.NoError(t, err)
// Try to get the Access data using an invalid refresh token // Try to get the Access data using an invalid refresh token
_, err = ss.OAuth().GetAccessDataByRefreshToken(a1.Token) _, err = ss.OAuth().GetAccessDataByRefreshToken(a1.Token)
require.NotNil(t, err, "Should have failed. There is no data with an invalid token") require.Error(t, err, "Should have failed. There is no data with an invalid token")
// Get the Access Data using the refresh token // Get the Access Data using the refresh token
ra1, err = ss.OAuth().GetAccessDataByRefreshToken(a1.RefreshToken) ra1, err = ss.OAuth().GetAccessDataByRefreshToken(a1.RefreshToken)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, a1.RefreshToken, ra1.RefreshToken, "tokens didn't match") assert.Equal(t, a1.RefreshToken, ra1.RefreshToken, "tokens didn't match")
} }
@@ -206,10 +206,10 @@ func testOAuthStoreRemoveAccessData(t *testing.T, ss store.Store) {
a1.RefreshToken = model.NewId() a1.RefreshToken = model.NewId()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAccessData(&a1) _, err := ss.OAuth().SaveAccessData(&a1)
require.Nil(t, err) require.NoError(t, err)
err = ss.OAuth().RemoveAccessData(a1.Token) err = ss.OAuth().RemoveAccessData(a1.Token)
require.Nil(t, err) require.NoError(t, err)
result, _ := ss.OAuth().GetPreviousAccessData(a1.UserId, a1.ClientId) result, _ := ss.OAuth().GetPreviousAccessData(a1.UserId, a1.ClientId)
require.Nil(t, result, "did not delete access token") require.Nil(t, result, "did not delete access token")
@@ -223,10 +223,10 @@ func testOAuthStoreRemoveAllAccessData(t *testing.T, ss store.Store) {
a1.RefreshToken = model.NewId() a1.RefreshToken = model.NewId()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAccessData(&a1) _, err := ss.OAuth().SaveAccessData(&a1)
require.Nil(t, err) require.NoError(t, err)
err = ss.OAuth().RemoveAllAccessData() err = ss.OAuth().RemoveAllAccessData()
require.Nil(t, err) require.NoError(t, err)
result, _ := ss.OAuth().GetPreviousAccessData(a1.UserId, a1.ClientId) result, _ := ss.OAuth().GetPreviousAccessData(a1.UserId, a1.ClientId)
require.Nil(t, result, "did not delete access token") require.Nil(t, result, "did not delete access token")
@@ -239,7 +239,7 @@ func testOAuthStoreSaveAuthData(t *testing.T, ss store.Store) {
a1.Code = model.NewId() a1.Code = model.NewId()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAuthData(&a1) _, err := ss.OAuth().SaveAuthData(&a1)
require.Nil(t, err) require.NoError(t, err)
} }
func testOAuthStoreGetAuthData(t *testing.T, ss store.Store) { func testOAuthStoreGetAuthData(t *testing.T, ss store.Store) {
@@ -249,10 +249,10 @@ func testOAuthStoreGetAuthData(t *testing.T, ss store.Store) {
a1.Code = model.NewId() a1.Code = model.NewId()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAuthData(&a1) _, err := ss.OAuth().SaveAuthData(&a1)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.OAuth().GetAuthData(a1.Code) _, err = ss.OAuth().GetAuthData(a1.Code)
require.Nil(t, err) require.NoError(t, err)
} }
func testOAuthStoreRemoveAuthData(t *testing.T, ss store.Store) { func testOAuthStoreRemoveAuthData(t *testing.T, ss store.Store) {
@@ -262,13 +262,13 @@ func testOAuthStoreRemoveAuthData(t *testing.T, ss store.Store) {
a1.Code = model.NewId() a1.Code = model.NewId()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAuthData(&a1) _, err := ss.OAuth().SaveAuthData(&a1)
require.Nil(t, err) require.NoError(t, err)
err = ss.OAuth().RemoveAuthData(a1.Code) err = ss.OAuth().RemoveAuthData(a1.Code)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.OAuth().GetAuthData(a1.Code) _, err = ss.OAuth().GetAuthData(a1.Code)
require.NotNil(t, err, "should have errored - auth code removed") require.Error(t, err, "should have errored - auth code removed")
} }
func testOAuthStoreRemoveAuthDataByUser(t *testing.T, ss store.Store) { func testOAuthStoreRemoveAuthDataByUser(t *testing.T, ss store.Store) {
@@ -278,10 +278,10 @@ func testOAuthStoreRemoveAuthDataByUser(t *testing.T, ss store.Store) {
a1.Code = model.NewId() a1.Code = model.NewId()
a1.RedirectUri = "http://example.com" a1.RedirectUri = "http://example.com"
_, err := ss.OAuth().SaveAuthData(&a1) _, err := ss.OAuth().SaveAuthData(&a1)
require.Nil(t, err) require.NoError(t, err)
err = ss.OAuth().PermanentDeleteAuthDataByUser(a1.UserId) err = ss.OAuth().PermanentDeleteAuthDataByUser(a1.UserId)
require.Nil(t, err) require.NoError(t, err)
} }
func testOAuthGetAuthorizedApps(t *testing.T, ss store.Store) { func testOAuthGetAuthorizedApps(t *testing.T, ss store.Store) {
@@ -291,11 +291,11 @@ func testOAuthGetAuthorizedApps(t *testing.T, ss store.Store) {
a1.CallbackUrls = []string{"https://nowhere.com"} a1.CallbackUrls = []string{"https://nowhere.com"}
a1.Homepage = "https://nowhere.com" a1.Homepage = "https://nowhere.com"
_, err := ss.OAuth().SaveApp(&a1) _, err := ss.OAuth().SaveApp(&a1)
require.Nil(t, err) require.NoError(t, err)
// Lets try and get an Authorized app for a user who hasn't authorized it // Lets try and get an Authorized app for a user who hasn't authorized it
apps, err := ss.OAuth().GetAuthorizedApps("fake0123456789abcderfgret1", 0, 1000) apps, err := ss.OAuth().GetAuthorizedApps("fake0123456789abcderfgret1", 0, 1000)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, apps, "Should have failed. Fake user hasn't authorized the app") assert.Empty(t, apps, "Should have failed. Fake user hasn't authorized the app")
// allow the app // allow the app
@@ -305,10 +305,10 @@ func testOAuthGetAuthorizedApps(t *testing.T, ss store.Store) {
p.Name = a1.Id p.Name = a1.Id
p.Value = "true" p.Value = "true"
nErr := ss.Preference().Save(&model.Preferences{p}) nErr := ss.Preference().Save(&model.Preferences{p})
require.Nil(t, nErr) require.NoError(t, nErr)
apps, err = ss.OAuth().GetAuthorizedApps(a1.CreatorId, 0, 1000) apps, err = ss.OAuth().GetAuthorizedApps(a1.CreatorId, 0, 1000)
require.Nil(t, err) require.NoError(t, err)
assert.NotEqual(t, len(apps), 0, "It should have return apps") assert.NotEqual(t, len(apps), 0, "It should have return apps")
} }
@@ -319,7 +319,7 @@ func testOAuthGetAccessDataByUserForApp(t *testing.T, ss store.Store) {
a1.CallbackUrls = []string{"https://nowhere.com"} a1.CallbackUrls = []string{"https://nowhere.com"}
a1.Homepage = "https://nowhere.com" a1.Homepage = "https://nowhere.com"
_, err := ss.OAuth().SaveApp(&a1) _, err := ss.OAuth().SaveApp(&a1)
require.Nil(t, err) require.NoError(t, err)
// allow the app // allow the app
p := model.Preference{} p := model.Preference{}
@@ -328,10 +328,10 @@ func testOAuthGetAccessDataByUserForApp(t *testing.T, ss store.Store) {
p.Name = a1.Id p.Name = a1.Id
p.Value = "true" p.Value = "true"
nErr := ss.Preference().Save(&model.Preferences{p}) nErr := ss.Preference().Save(&model.Preferences{p})
require.Nil(t, nErr) require.NoError(t, nErr)
apps, err := ss.OAuth().GetAuthorizedApps(a1.CreatorId, 0, 1000) apps, err := ss.OAuth().GetAuthorizedApps(a1.CreatorId, 0, 1000)
require.Nil(t, err) require.NoError(t, err)
assert.NotEqual(t, len(apps), 0, "It should have return apps") assert.NotEqual(t, len(apps), 0, "It should have return apps")
// save the token // save the token
@@ -343,10 +343,10 @@ func testOAuthGetAccessDataByUserForApp(t *testing.T, ss store.Store) {
ad1.RedirectUri = "http://example.com" ad1.RedirectUri = "http://example.com"
_, err = ss.OAuth().SaveAccessData(&ad1) _, err = ss.OAuth().SaveAccessData(&ad1)
require.Nil(t, err) require.NoError(t, err)
accessData, err := ss.OAuth().GetAccessDataByUserForApp(a1.CreatorId, a1.Id) accessData, err := ss.OAuth().GetAccessDataByUserForApp(a1.CreatorId, a1.Id)
require.Nil(t, err) require.NoError(t, err)
assert.NotEqual(t, len(accessData), 0, "It should have return access data") assert.NotEqual(t, len(accessData), 0, "It should have return access data")
} }
@@ -357,11 +357,11 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
a1.CallbackUrls = []string{"https://nowhere.com"} a1.CallbackUrls = []string{"https://nowhere.com"}
a1.Homepage = "https://nowhere.com" a1.Homepage = "https://nowhere.com"
_, err := ss.OAuth().SaveApp(&a1) _, err := ss.OAuth().SaveApp(&a1)
require.Nil(t, err) require.NoError(t, err)
// delete a non-existent app // delete a non-existent app
err = ss.OAuth().DeleteApp("fakeclientId") err = ss.OAuth().DeleteApp("fakeclientId")
require.Nil(t, err) require.NoError(t, err)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
@@ -369,7 +369,7 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
s1.IsOAuth = true s1.IsOAuth = true
s1, nErr := ss.Session().Save(s1) s1, nErr := ss.Session().Save(s1)
require.Nil(t, nErr) require.NoError(t, nErr)
ad1 := model.AccessData{} ad1 := model.AccessData{}
ad1.ClientId = a1.Id ad1.ClientId = a1.Id
@@ -379,14 +379,14 @@ func testOAuthStoreDeleteApp(t *testing.T, ss store.Store) {
ad1.RedirectUri = "http://example.com" ad1.RedirectUri = "http://example.com"
_, err = ss.OAuth().SaveAccessData(&ad1) _, err = ss.OAuth().SaveAccessData(&ad1)
require.Nil(t, err) require.NoError(t, err)
err = ss.OAuth().DeleteApp(a1.Id) err = ss.OAuth().DeleteApp(a1.Id)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.Session().Get(s1.Token) _, nErr = ss.Session().Get(s1.Token)
require.NotNil(t, nErr, "should error - session should be deleted") require.Error(t, nErr, "should error - session should be deleted")
_, err = ss.OAuth().GetAccessData(s1.Token) _, err = ss.OAuth().GetAccessData(s1.Token)
require.NotNil(t, err, "should error - access data should be deleted") require.Error(t, err, "should error - access data should be deleted")
} }

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

@@ -39,7 +39,7 @@ func setupKVs(t *testing.T, ss store.Store) (string, func()) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(otherKV) _, err := ss.Plugin().SaveOrUpdate(otherKV)
require.Nil(t, err) require.NoError(t, err)
// otherPluginKV is a key value for another plugin, and used to verify other plugins' keys // otherPluginKV is a key value for another plugin, and used to verify other plugins' keys
// aren't modified unintentionally. // aren't modified unintentionally.
@@ -50,15 +50,15 @@ func setupKVs(t *testing.T, ss store.Store) (string, func()) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err = ss.Plugin().SaveOrUpdate(otherPluginKV) _, err = ss.Plugin().SaveOrUpdate(otherPluginKV)
require.Nil(t, err) require.NoError(t, err)
return pluginId, func() { return pluginId, func() {
actualOtherKV, err := ss.Plugin().Get(otherKV.PluginId, otherKV.Key) actualOtherKV, err := ss.Plugin().Get(otherKV.PluginId, otherKV.Key)
require.Nil(t, err, "failed to find other key value for same plugin") require.NoError(t, err, "failed to find other key value for same plugin")
assert.Equal(t, otherKV, actualOtherKV) assert.Equal(t, otherKV, actualOtherKV)
actualOtherPluginKV, err := ss.Plugin().Get(otherPluginKV.PluginId, otherPluginKV.Key) actualOtherPluginKV, err := ss.Plugin().Get(otherPluginKV.PluginId, otherPluginKV.Key)
require.Nil(t, err, "failed to find other key value from different plugin") require.NoError(t, err, "failed to find other key value from different plugin")
assert.Equal(t, otherPluginKV, actualOtherPluginKV) assert.Equal(t, otherPluginKV, actualOtherPluginKV)
} }
} }
@@ -76,7 +76,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
} }
kv, err := doer(kv) kv, err := doer(kv)
require.NotNil(t, err) require.Error(t, err)
appErr, ok := err.(*model.AppError) appErr, ok := err.(*model.AppError)
require.True(t, ok) require.True(t, ok)
require.Equal(t, "model.plugin_key_value.is_valid.plugin_id.app_error", appErr.Id) require.Equal(t, "model.plugin_key_value.is_valid.plugin_id.app_error", appErr.Id)
@@ -99,7 +99,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
} }
retKV, err := doer(kv) retKV, err := doer(kv)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kv, retKV) assert.Equal(t, kv, retKV)
// SaveOrUpdate returns the kv passed in, so test each field individually for // SaveOrUpdate returns the kv passed in, so test each field individually for
// completeness. It should probably be changed to not bother doing that. // completeness. It should probably be changed to not bother doing that.
@@ -109,7 +109,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
assert.Equal(t, expireAt, kv.ExpireAt) assert.Equal(t, expireAt, kv.ExpireAt)
actualKV, nErr := ss.Plugin().Get(pluginId, key) actualKV, nErr := ss.Plugin().Get(pluginId, key)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Equal(t, kv, actualKV) assert.Equal(t, kv, actualKV)
}) })
@@ -129,7 +129,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
} }
retKV, err := doer(kv) retKV, err := doer(kv)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kv, retKV) assert.Equal(t, kv, retKV)
// SaveOrUpdate returns the kv passed in, so test each field individually for // SaveOrUpdate returns the kv passed in, so test each field individually for
// completeness. It should probably be changed to not bother doing that. // completeness. It should probably be changed to not bother doing that.
@@ -140,7 +140,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
actualKV, nErr := ss.Plugin().Get(pluginId, key) actualKV, nErr := ss.Plugin().Get(pluginId, key)
_, ok := nErr.(*store.ErrNotFound) _, ok := nErr.(*store.ErrNotFound)
require.NotNil(t, nErr) require.Error(t, nErr)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, actualKV) assert.Nil(t, actualKV)
}) })
@@ -161,13 +161,13 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
} }
_, err := doer(kv) _, err := doer(kv)
require.Nil(t, err) require.NoError(t, err)
newValue := model.NewId() newValue := model.NewId()
kv.Value = []byte(newValue) kv.Value = []byte(newValue)
retKV, err := doer(kv) retKV, err := doer(kv)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kv, retKV) assert.Equal(t, kv, retKV)
// SaveOrUpdate returns the kv passed in, so test each field individually for // SaveOrUpdate returns the kv passed in, so test each field individually for
// completeness. It should probably be changed to not bother doing that. // completeness. It should probably be changed to not bother doing that.
@@ -177,7 +177,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
assert.Equal(t, expireAt, kv.ExpireAt) assert.Equal(t, expireAt, kv.ExpireAt)
actualKV, nErr := ss.Plugin().Get(pluginId, key) actualKV, nErr := ss.Plugin().Get(pluginId, key)
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Equal(t, kv, actualKV) assert.Equal(t, kv, actualKV)
}) })
@@ -197,12 +197,12 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
} }
_, err := doer(kv) _, err := doer(kv)
require.Nil(t, err) require.NoError(t, err)
kv.Value = nil kv.Value = nil
retKV, err := doer(kv) retKV, err := doer(kv)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kv, retKV) assert.Equal(t, kv, retKV)
// SaveOrUpdate returns the kv passed in, so test each field individually for // SaveOrUpdate returns the kv passed in, so test each field individually for
// completeness. It should probably be changed to not bother doing that. // completeness. It should probably be changed to not bother doing that.
@@ -213,7 +213,7 @@ func doTestPluginSaveOrUpdate(t *testing.T, ss store.Store, doer func(kv *model.
actualKV, nErr := ss.Plugin().Get(pluginId, key) actualKV, nErr := ss.Plugin().Get(pluginId, key)
_, ok := nErr.(*store.ErrNotFound) _, ok := nErr.(*store.ErrNotFound)
require.NotNil(t, nErr) require.Error(t, nErr)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, actualKV) assert.Nil(t, actualKV)
}) })
@@ -240,7 +240,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
} }
ok, err := compareAndSet(kv, nil) ok, err := compareAndSet(kv, nil)
require.NotNil(t, err) require.Error(t, err)
assert.False(t, ok) assert.False(t, ok)
appErr, ok := err.(*model.AppError) appErr, ok := err.(*model.AppError)
require.True(t, ok) require.True(t, ok)
@@ -252,11 +252,11 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
t.Helper() t.Helper()
ok, err := compareAndSet(kv, oldValue) ok, err := compareAndSet(kv, oldValue)
require.Nil(t, err) require.NoError(t, err)
require.True(t, ok, "should have succeeded to CompareAndSet") require.True(t, ok, "should have succeeded to CompareAndSet")
actualKV, nErr := ss.Plugin().Get(kv.PluginId, kv.Key) actualKV, nErr := ss.Plugin().Get(kv.PluginId, kv.Key)
require.Nil(t, nErr) require.NoError(t, nErr)
// When tested with KVSetWithOptions, a strict comparison can fail because that // When tested with KVSetWithOptions, a strict comparison can fail because that
// function accepts a relative time and makes its own call to model.GetMillis(), // function accepts a relative time and makes its own call to model.GetMillis(),
@@ -277,17 +277,17 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
t.Helper() t.Helper()
ok, err := compareAndSet(kv, oldValue) ok, err := compareAndSet(kv, oldValue)
require.Nil(t, err) require.NoError(t, err)
require.False(t, ok, "should have failed to CompareAndSet") require.False(t, ok, "should have failed to CompareAndSet")
actualKV, nErr := ss.Plugin().Get(kv.PluginId, kv.Key) actualKV, nErr := ss.Plugin().Get(kv.PluginId, kv.Key)
if existingKV == nil { if existingKV == nil {
require.NotNil(t, nErr) require.Error(t, nErr)
_, ok := nErr.(*store.ErrNotFound) _, ok := nErr.(*store.ErrNotFound)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, actualKV) assert.Nil(t, actualKV)
} else { } else {
require.Nil(t, nErr) require.NoError(t, nErr)
assert.Equal(t, existingKV, actualKV) assert.Equal(t, existingKV, actualKV)
} }
} }
@@ -297,12 +297,12 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
t.Helper() t.Helper()
ok, err := compareAndSet(kv, oldValue) ok, err := compareAndSet(kv, oldValue)
require.Nil(t, err) require.NoError(t, err)
require.True(t, ok, "should have succeeded to CompareAndSet") require.True(t, ok, "should have succeeded to CompareAndSet")
actualKV, nErr := ss.Plugin().Get(kv.PluginId, kv.Key) actualKV, nErr := ss.Plugin().Get(kv.PluginId, kv.Key)
_, ok = nErr.(*store.ErrNotFound) _, ok = nErr.(*store.ErrNotFound)
require.NotNil(t, nErr) require.Error(t, nErr)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, actualKV) assert.Nil(t, actualKV)
} }
@@ -331,7 +331,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
ExpireAt: 1, ExpireAt: 1,
} }
_, err := ss.Plugin().SaveOrUpdate(expiredKV) _, err := ss.Plugin().SaveOrUpdate(expiredKV)
require.Nil(t, err) require.NoError(t, err)
return expiredKV, tearDown return expiredKV, tearDown
}, },
@@ -407,7 +407,7 @@ func doTestPluginCompareAndSet(t *testing.T, ss store.Store, compareAndSet func(
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(existingKV) _, err := ss.Plugin().SaveOrUpdate(existingKV)
require.Nil(t, err) require.NoError(t, err)
return existingKV, tearDown return existingKV, tearDown
} }
@@ -543,7 +543,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
} }
ok, err := ss.Plugin().CompareAndDelete(kv, nil) ok, err := ss.Plugin().CompareAndDelete(kv, nil)
require.NotNil(t, err) require.Error(t, err)
assert.False(t, ok) assert.False(t, ok)
appErr, ok := err.(*model.AppError) appErr, ok := err.(*model.AppError)
require.True(t, ok) require.True(t, ok)
@@ -573,7 +573,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
for description, oldValue := range testCases { for description, oldValue := range testCases {
t.Run(description, func(t *testing.T) { t.Run(description, func(t *testing.T) {
ok, err := ss.Plugin().CompareAndDelete(kv, oldValue) ok, err := ss.Plugin().CompareAndDelete(kv, oldValue)
require.Nil(t, err) require.NoError(t, err)
assert.False(t, ok) assert.False(t, ok)
}) })
} }
@@ -594,7 +594,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
ExpireAt: expireAt, ExpireAt: expireAt,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
testCases := map[string][]byte{ testCases := map[string][]byte{
"given nil old value": nil, "given nil old value": nil,
@@ -605,7 +605,7 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
for description, oldValue := range testCases { for description, oldValue := range testCases {
t.Run(description, func(t *testing.T) { t.Run(description, func(t *testing.T) {
ok, err := ss.Plugin().CompareAndDelete(kv, oldValue) ok, err := ss.Plugin().CompareAndDelete(kv, oldValue)
require.Nil(t, err) require.NoError(t, err)
assert.False(t, ok) assert.False(t, ok)
}) })
} }
@@ -626,12 +626,12 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
ExpireAt: expireAt, ExpireAt: expireAt,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
oldValue := []byte(model.NewId()) oldValue := []byte(model.NewId())
ok, err := ss.Plugin().CompareAndDelete(kv, oldValue) ok, err := ss.Plugin().CompareAndDelete(kv, oldValue)
require.Nil(t, err) require.NoError(t, err)
assert.False(t, ok) assert.False(t, ok)
}) })
@@ -650,12 +650,12 @@ func testPluginCompareAndDelete(t *testing.T, ss store.Store) {
ExpireAt: expireAt, ExpireAt: expireAt,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
oldValue := []byte(value) oldValue := []byte(value)
ok, err := ss.Plugin().CompareAndDelete(kv, oldValue) ok, err := ss.Plugin().CompareAndDelete(kv, oldValue)
require.Nil(t, err) require.NoError(t, err)
assert.True(t, ok) assert.True(t, ok)
}) })
} }
@@ -674,7 +674,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
} }
ok, err := ss.Plugin().SetWithOptions(pluginId, key, []byte(value), options) ok, err := ss.Plugin().SetWithOptions(pluginId, key, []byte(value), options)
require.NotNil(t, err) require.Error(t, err)
assert.False(t, ok) assert.False(t, ok)
appErr, ok := err.(*model.AppError) appErr, ok := err.(*model.AppError)
require.True(t, ok) require.True(t, ok)
@@ -691,7 +691,7 @@ func testPluginSetWithOptions(t *testing.T, ss store.Store) {
options := model.PluginKVSetOptions{} options := model.PluginKVSetOptions{}
ok, err := ss.Plugin().SetWithOptions(pluginId, key, []byte(value), options) ok, err := ss.Plugin().SetWithOptions(pluginId, key, []byte(value), options)
require.NotNil(t, err) require.Error(t, err)
assert.False(t, ok) assert.False(t, ok)
appErr, ok := err.(*model.AppError) appErr, ok := err.(*model.AppError)
require.True(t, ok) require.True(t, ok)
@@ -741,7 +741,7 @@ func testPluginGet(t *testing.T, ss store.Store) {
kv, nErr := ss.Plugin().Get(pluginId, key) kv, nErr := ss.Plugin().Get(pluginId, key)
_, ok := nErr.(*store.ErrNotFound) _, ok := nErr.(*store.ErrNotFound)
require.NotNil(t, nErr) require.Error(t, nErr)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, kv) assert.Nil(t, kv)
}) })
@@ -760,11 +760,11 @@ func testPluginGet(t *testing.T, ss store.Store) {
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
kv, err = ss.Plugin().Get(model.NewId(), key) kv, err = ss.Plugin().Get(model.NewId(), key)
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, kv) assert.Nil(t, kv)
}) })
@@ -783,11 +783,11 @@ func testPluginGet(t *testing.T, ss store.Store) {
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
kv, err = ss.Plugin().Get(pluginId, model.NewId()) kv, err = ss.Plugin().Get(pluginId, model.NewId())
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, kv) assert.Nil(t, kv)
}) })
@@ -806,11 +806,11 @@ func testPluginGet(t *testing.T, ss store.Store) {
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
kv, err = ss.Plugin().Get(pluginId, model.NewId()) kv, err = ss.Plugin().Get(pluginId, model.NewId())
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, kv) assert.Nil(t, kv)
}) })
@@ -829,11 +829,11 @@ func testPluginGet(t *testing.T, ss store.Store) {
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
kv, err = ss.Plugin().Get(pluginId, model.NewId()) kv, err = ss.Plugin().Get(pluginId, model.NewId())
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, kv) assert.Nil(t, kv)
}) })
@@ -852,10 +852,10 @@ func testPluginGet(t *testing.T, ss store.Store) {
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
actualKV, err := ss.Plugin().Get(pluginId, key) actualKV, err := ss.Plugin().Get(pluginId, key)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, kv, actualKV) require.Equal(t, kv, actualKV)
}) })
@@ -873,10 +873,10 @@ func testPluginGet(t *testing.T, ss store.Store) {
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
actualKV, err := ss.Plugin().Get(pluginId, key) actualKV, err := ss.Plugin().Get(pluginId, key)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, kv, actualKV) require.Equal(t, kv, actualKV)
}) })
} }
@@ -889,11 +889,11 @@ func testPluginDelete(t *testing.T, ss store.Store) {
key := model.NewId() key := model.NewId()
err := ss.Plugin().Delete(pluginId, key) err := ss.Plugin().Delete(pluginId, key)
require.Nil(t, err) require.NoError(t, err)
kv, err := ss.Plugin().Get(pluginId, key) kv, err := ss.Plugin().Get(pluginId, key)
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, kv) assert.Nil(t, kv)
}) })
@@ -933,14 +933,14 @@ func testPluginDelete(t *testing.T, ss store.Store) {
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
err = ss.Plugin().Delete(pluginId, key) err = ss.Plugin().Delete(pluginId, key)
require.Nil(t, err) require.NoError(t, err)
kv, err = ss.Plugin().Get(pluginId, key) kv, err = ss.Plugin().Get(pluginId, key)
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, kv) assert.Nil(t, kv)
}) })
@@ -961,11 +961,11 @@ func testPluginDeleteAllForPlugin(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(otherPluginKV) _, err := ss.Plugin().SaveOrUpdate(otherPluginKV)
require.Nil(t, err) require.NoError(t, err)
return pluginId, func() { return pluginId, func() {
actualOtherPluginKV, err := ss.Plugin().Get(otherPluginKV.PluginId, otherPluginKV.Key) actualOtherPluginKV, err := ss.Plugin().Get(otherPluginKV.PluginId, otherPluginKV.Key)
require.Nil(t, err, "failed to find other key value from different plugin") require.NoError(t, err, "failed to find other key value from different plugin")
assert.Equal(t, otherPluginKV, actualOtherPluginKV) assert.Equal(t, otherPluginKV, actualOtherPluginKV)
} }
} }
@@ -975,7 +975,7 @@ func testPluginDeleteAllForPlugin(t *testing.T, ss store.Store) {
defer tearDown() defer tearDown()
err := ss.Plugin().DeleteAllForPlugin(pluginId) err := ss.Plugin().DeleteAllForPlugin(pluginId)
require.Nil(t, err) require.NoError(t, err)
}) })
t.Run("multiple keys to delete", func(t *testing.T) { t.Run("multiple keys to delete", func(t *testing.T) {
@@ -989,7 +989,7 @@ func testPluginDeleteAllForPlugin(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
kv2 := &model.PluginKeyValue{ kv2 := &model.PluginKeyValue{
PluginId: pluginId, PluginId: pluginId,
@@ -998,19 +998,19 @@ func testPluginDeleteAllForPlugin(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err = ss.Plugin().SaveOrUpdate(kv2) _, err = ss.Plugin().SaveOrUpdate(kv2)
require.Nil(t, err) require.NoError(t, err)
err = ss.Plugin().DeleteAllForPlugin(pluginId) err = ss.Plugin().DeleteAllForPlugin(pluginId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Plugin().Get(kv.PluginId, kv.Key) _, err = ss.Plugin().Get(kv.PluginId, kv.Key)
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
_, err = ss.Plugin().Get(kv.PluginId, kv2.Key) _, err = ss.Plugin().Get(kv.PluginId, kv2.Key)
_, ok = err.(*store.ErrNotFound) _, ok = err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
}) })
} }
@@ -1018,7 +1018,7 @@ func testPluginDeleteAllForPlugin(t *testing.T, ss store.Store) {
func testPluginDeleteAllExpired(t *testing.T, ss store.Store) { func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
t.Run("no keys", func(t *testing.T) { t.Run("no keys", func(t *testing.T) {
err := ss.Plugin().DeleteAllExpired() err := ss.Plugin().DeleteAllExpired()
require.Nil(t, err) require.NoError(t, err)
}) })
t.Run("no expiring keys to delete", func(t *testing.T) { t.Run("no expiring keys to delete", func(t *testing.T) {
@@ -1032,7 +1032,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(kvA1) _, err := ss.Plugin().SaveOrUpdate(kvA1)
require.Nil(t, err) require.NoError(t, err)
kvA2 := &model.PluginKeyValue{ kvA2 := &model.PluginKeyValue{
PluginId: pluginIdA, PluginId: pluginIdA,
@@ -1041,7 +1041,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err = ss.Plugin().SaveOrUpdate(kvA2) _, err = ss.Plugin().SaveOrUpdate(kvA2)
require.Nil(t, err) require.NoError(t, err)
kvB1 := &model.PluginKeyValue{ kvB1 := &model.PluginKeyValue{
PluginId: pluginIdB, PluginId: pluginIdB,
@@ -1050,7 +1050,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err = ss.Plugin().SaveOrUpdate(kvB1) _, err = ss.Plugin().SaveOrUpdate(kvB1)
require.Nil(t, err) require.NoError(t, err)
kvB2 := &model.PluginKeyValue{ kvB2 := &model.PluginKeyValue{
PluginId: pluginIdB, PluginId: pluginIdB,
@@ -1059,25 +1059,25 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err = ss.Plugin().SaveOrUpdate(kvB2) _, err = ss.Plugin().SaveOrUpdate(kvB2)
require.Nil(t, err) require.NoError(t, err)
err = ss.Plugin().DeleteAllExpired() err = ss.Plugin().DeleteAllExpired()
require.Nil(t, err) require.NoError(t, err)
actualKVA1, err := ss.Plugin().Get(pluginIdA, kvA1.Key) actualKVA1, err := ss.Plugin().Get(pluginIdA, kvA1.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvA1, actualKVA1) assert.Equal(t, kvA1, actualKVA1)
actualKVA2, err := ss.Plugin().Get(pluginIdA, kvA2.Key) actualKVA2, err := ss.Plugin().Get(pluginIdA, kvA2.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvA2, actualKVA2) assert.Equal(t, kvA2, actualKVA2)
actualKVB1, err := ss.Plugin().Get(pluginIdB, kvB1.Key) actualKVB1, err := ss.Plugin().Get(pluginIdB, kvB1.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvB1, actualKVB1) assert.Equal(t, kvB1, actualKVB1)
actualKVB2, err := ss.Plugin().Get(pluginIdB, kvB2.Key) actualKVB2, err := ss.Plugin().Get(pluginIdB, kvB2.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvB2, actualKVB2) assert.Equal(t, kvB2, actualKVB2)
}) })
@@ -1092,7 +1092,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() + 15*1000, ExpireAt: model.GetMillis() + 15*1000,
} }
_, err := ss.Plugin().SaveOrUpdate(kvA1) _, err := ss.Plugin().SaveOrUpdate(kvA1)
require.Nil(t, err) require.NoError(t, err)
kvA2 := &model.PluginKeyValue{ kvA2 := &model.PluginKeyValue{
PluginId: pluginIdA, PluginId: pluginIdA,
@@ -1101,7 +1101,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() + 15*1000, ExpireAt: model.GetMillis() + 15*1000,
} }
_, err = ss.Plugin().SaveOrUpdate(kvA2) _, err = ss.Plugin().SaveOrUpdate(kvA2)
require.Nil(t, err) require.NoError(t, err)
kvB1 := &model.PluginKeyValue{ kvB1 := &model.PluginKeyValue{
PluginId: pluginIdB, PluginId: pluginIdB,
@@ -1110,7 +1110,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() + 15*1000, ExpireAt: model.GetMillis() + 15*1000,
} }
_, err = ss.Plugin().SaveOrUpdate(kvB1) _, err = ss.Plugin().SaveOrUpdate(kvB1)
require.Nil(t, err) require.NoError(t, err)
kvB2 := &model.PluginKeyValue{ kvB2 := &model.PluginKeyValue{
PluginId: pluginIdB, PluginId: pluginIdB,
@@ -1119,25 +1119,25 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() + 15*1000, ExpireAt: model.GetMillis() + 15*1000,
} }
_, err = ss.Plugin().SaveOrUpdate(kvB2) _, err = ss.Plugin().SaveOrUpdate(kvB2)
require.Nil(t, err) require.NoError(t, err)
err = ss.Plugin().DeleteAllExpired() err = ss.Plugin().DeleteAllExpired()
require.Nil(t, err) require.NoError(t, err)
actualKVA1, err := ss.Plugin().Get(pluginIdA, kvA1.Key) actualKVA1, err := ss.Plugin().Get(pluginIdA, kvA1.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvA1, actualKVA1) assert.Equal(t, kvA1, actualKVA1)
actualKVA2, err := ss.Plugin().Get(pluginIdA, kvA2.Key) actualKVA2, err := ss.Plugin().Get(pluginIdA, kvA2.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvA2, actualKVA2) assert.Equal(t, kvA2, actualKVA2)
actualKVB1, err := ss.Plugin().Get(pluginIdB, kvB1.Key) actualKVB1, err := ss.Plugin().Get(pluginIdB, kvB1.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvB1, actualKVB1) assert.Equal(t, kvB1, actualKVB1)
actualKVB2, err := ss.Plugin().Get(pluginIdB, kvB2.Key) actualKVB2, err := ss.Plugin().Get(pluginIdB, kvB2.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvB2, actualKVB2) assert.Equal(t, kvB2, actualKVB2)
}) })
@@ -1152,7 +1152,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() + 15*1000, ExpireAt: model.GetMillis() + 15*1000,
} }
_, err := ss.Plugin().SaveOrUpdate(kvA1) _, err := ss.Plugin().SaveOrUpdate(kvA1)
require.Nil(t, err) require.NoError(t, err)
expiredKVA2 := &model.PluginKeyValue{ expiredKVA2 := &model.PluginKeyValue{
PluginId: pluginIdA, PluginId: pluginIdA,
@@ -1161,7 +1161,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() - 15*1000, ExpireAt: model.GetMillis() - 15*1000,
} }
_, err = ss.Plugin().SaveOrUpdate(expiredKVA2) _, err = ss.Plugin().SaveOrUpdate(expiredKVA2)
require.Nil(t, err) require.NoError(t, err)
kvB1 := &model.PluginKeyValue{ kvB1 := &model.PluginKeyValue{
PluginId: pluginIdB, PluginId: pluginIdB,
@@ -1170,7 +1170,7 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() + 15*1000, ExpireAt: model.GetMillis() + 15*1000,
} }
_, err = ss.Plugin().SaveOrUpdate(kvB1) _, err = ss.Plugin().SaveOrUpdate(kvB1)
require.Nil(t, err) require.NoError(t, err)
expiredKVB2 := &model.PluginKeyValue{ expiredKVB2 := &model.PluginKeyValue{
PluginId: pluginIdB, PluginId: pluginIdB,
@@ -1179,28 +1179,28 @@ func testPluginDeleteAllExpired(t *testing.T, ss store.Store) {
ExpireAt: model.GetMillis() - 15*1000, ExpireAt: model.GetMillis() - 15*1000,
} }
_, err = ss.Plugin().SaveOrUpdate(expiredKVB2) _, err = ss.Plugin().SaveOrUpdate(expiredKVB2)
require.Nil(t, err) require.NoError(t, err)
err = ss.Plugin().DeleteAllExpired() err = ss.Plugin().DeleteAllExpired()
require.Nil(t, err) require.NoError(t, err)
actualKVA1, err := ss.Plugin().Get(pluginIdA, kvA1.Key) actualKVA1, err := ss.Plugin().Get(pluginIdA, kvA1.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvA1, actualKVA1) assert.Equal(t, kvA1, actualKVA1)
actualKVA2, err := ss.Plugin().Get(pluginIdA, expiredKVA2.Key) actualKVA2, err := ss.Plugin().Get(pluginIdA, expiredKVA2.Key)
_, ok := err.(*store.ErrNotFound) _, ok := err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, actualKVA2) assert.Nil(t, actualKVA2)
actualKVB1, err := ss.Plugin().Get(pluginIdB, kvB1.Key) actualKVB1, err := ss.Plugin().Get(pluginIdB, kvB1.Key)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, kvB1, actualKVB1) assert.Equal(t, kvB1, actualKVB1)
actualKVB2, err := ss.Plugin().Get(pluginIdB, expiredKVB2.Key) actualKVB2, err := ss.Plugin().Get(pluginIdB, expiredKVB2.Key)
_, ok = err.(*store.ErrNotFound) _, ok = err.(*store.ErrNotFound)
require.NotNil(t, err) require.Error(t, err)
assert.True(t, ok) assert.True(t, ok)
assert.Nil(t, actualKVB2) assert.Nil(t, actualKVB2)
}) })
@@ -1214,7 +1214,7 @@ func testPluginList(t *testing.T, ss store.Store) {
// Ignore the pluginId setup by setupKVs // Ignore the pluginId setup by setupKVs
pluginId := model.NewId() pluginId := model.NewId()
keys, err := ss.Plugin().List(pluginId, 0, 100) keys, err := ss.Plugin().List(pluginId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, keys) assert.Empty(t, keys)
}) })
@@ -1232,10 +1232,10 @@ func testPluginList(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
keys, err := ss.Plugin().List(pluginId, 0, 100) keys, err := ss.Plugin().List(pluginId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys, 1) require.Len(t, keys, 1)
assert.Equal(t, kv.Key, keys[0]) assert.Equal(t, kv.Key, keys[0])
}) })
@@ -1257,18 +1257,18 @@ func testPluginList(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
keys = append(keys, key) keys = append(keys, key)
} }
sort.Strings(keys) sort.Strings(keys)
keys1, err := ss.Plugin().List(pluginId, 0, 100) keys1, err := ss.Plugin().List(pluginId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys1, 100) require.Len(t, keys1, 100)
keys2, err := ss.Plugin().List(pluginId, 100, 100) keys2, err := ss.Plugin().List(pluginId, 100, 100)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys2, 50) require.Len(t, keys2, 50)
actualKeys := append(keys1, keys2...) actualKeys := append(keys1, keys2...)
@@ -1307,7 +1307,7 @@ func testPluginList(t *testing.T, ss store.Store) {
ExpireAt: expireAt, ExpireAt: expireAt,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
if expireAt == 0 || expireAt > now { if expireAt == 0 || expireAt > now {
keys = append(keys, key) keys = append(keys, key)
@@ -1318,11 +1318,11 @@ func testPluginList(t *testing.T, ss store.Store) {
sort.Strings(keys) sort.Strings(keys)
keys1, err := ss.Plugin().List(pluginId, 0, 100) keys1, err := ss.Plugin().List(pluginId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys1, 100) require.Len(t, keys1, 100)
keys2, err := ss.Plugin().List(pluginId, 100, 100) keys2, err := ss.Plugin().List(pluginId, 100, 100)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys2, 35) require.Len(t, keys2, 35)
actualKeys := append(keys1, keys2...) actualKeys := append(keys1, keys2...)
@@ -1348,7 +1348,7 @@ func testPluginList(t *testing.T, ss store.Store) {
ExpireAt: 0, ExpireAt: 0,
} }
_, err := ss.Plugin().SaveOrUpdate(kv) _, err := ss.Plugin().SaveOrUpdate(kv)
require.Nil(t, err) require.NoError(t, err)
keys = append(keys, key) keys = append(keys, key)
} }
@@ -1356,19 +1356,19 @@ func testPluginList(t *testing.T, ss store.Store) {
t.Run("default limit", func(t *testing.T) { t.Run("default limit", func(t *testing.T) {
keys1, err := ss.Plugin().List(pluginId, 0, 0) keys1, err := ss.Plugin().List(pluginId, 0, 0)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys1, 10) require.Len(t, keys1, 10)
}) })
t.Run("offset 0, limit 1", func(t *testing.T) { t.Run("offset 0, limit 1", func(t *testing.T) {
keys2, err := ss.Plugin().List(pluginId, 0, 1) keys2, err := ss.Plugin().List(pluginId, 0, 1)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys2, 1) require.Len(t, keys2, 1)
}) })
t.Run("offset 1, limit 1", func(t *testing.T) { t.Run("offset 1, limit 1", func(t *testing.T) {
keys2, err := ss.Plugin().List(pluginId, 1, 1) keys2, err := ss.Plugin().List(pluginId, 1, 1)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, keys2, 1) require.Len(t, keys2, 1)
}) })
}) })

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -43,7 +43,7 @@ func testPreferenceSave(t *testing.T, ss store.Store) {
}, },
} }
err := ss.Preference().Save(&preferences) err := ss.Preference().Save(&preferences)
require.Nil(t, err, "saving preference returned error") require.NoError(t, err, "saving preference returned error")
for _, preference := range preferences { for _, preference := range preferences {
data, _ := ss.Preference().Get(preference.UserId, preference.Category, preference.Name) data, _ := ss.Preference().Get(preference.UserId, preference.Category, preference.Name)
@@ -53,7 +53,7 @@ func testPreferenceSave(t *testing.T, ss store.Store) {
preferences[0].Value = "value2a" preferences[0].Value = "value2a"
preferences[1].Value = "value2b" preferences[1].Value = "value2b"
err = ss.Preference().Save(&preferences) err = ss.Preference().Save(&preferences)
require.Nil(t, err, "saving preference returned error") require.NoError(t, err, "saving preference returned error")
for _, preference := range preferences { for _, preference := range preferences {
data, _ := ss.Preference().Get(preference.UserId, preference.Category, preference.Name) data, _ := ss.Preference().Get(preference.UserId, preference.Category, preference.Name)
@@ -90,15 +90,15 @@ func testPreferenceGet(t *testing.T, ss store.Store) {
} }
err := ss.Preference().Save(&preferences) err := ss.Preference().Save(&preferences)
require.Nil(t, err) require.NoError(t, err)
data, err := ss.Preference().Get(userId, category, name) data, err := ss.Preference().Get(userId, category, name)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, preferences[0].ToJson(), data.ToJson(), "got incorrect preference") require.Equal(t, preferences[0].ToJson(), data.ToJson(), "got incorrect preference")
// make sure getting a missing preference fails // make sure getting a missing preference fails
_, err = ss.Preference().Get(model.NewId(), model.NewId(), model.NewId()) _, err = ss.Preference().Get(model.NewId(), model.NewId(), model.NewId())
require.NotNil(t, err, "no error on getting a missing preference") require.Error(t, err, "no error on getting a missing preference")
} }
func testPreferenceGetCategory(t *testing.T, ss store.Store) { func testPreferenceGetCategory(t *testing.T, ss store.Store) {
@@ -133,10 +133,10 @@ func testPreferenceGetCategory(t *testing.T, ss store.Store) {
} }
err := ss.Preference().Save(&preferences) err := ss.Preference().Save(&preferences)
require.Nil(t, err) require.NoError(t, err)
preferencesByCategory, err := ss.Preference().GetCategory(userId, category) preferencesByCategory, err := ss.Preference().GetCategory(userId, category)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, 2, len(preferencesByCategory), "got the wrong number of preferences") require.Equal(t, 2, len(preferencesByCategory), "got the wrong number of preferences")
require.True( require.True(
t, t,
@@ -146,7 +146,7 @@ func testPreferenceGetCategory(t *testing.T, ss store.Store) {
// make sure getting a missing preference category doesn't fail // make sure getting a missing preference category doesn't fail
preferencesByCategory, err = ss.Preference().GetCategory(model.NewId(), model.NewId()) preferencesByCategory, err = ss.Preference().GetCategory(model.NewId(), model.NewId())
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, 0, len(preferencesByCategory), "shouldn't have got any preferences") require.Equal(t, 0, len(preferencesByCategory), "shouldn't have got any preferences")
} }
@@ -182,10 +182,10 @@ func testPreferenceGetAll(t *testing.T, ss store.Store) {
} }
err := ss.Preference().Save(&preferences) err := ss.Preference().Save(&preferences)
require.Nil(t, err) require.NoError(t, err)
result, err := ss.Preference().GetAll(userId) result, err := ss.Preference().GetAll(userId)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, 3, len(result), "got the wrong number of preferences") require.Equal(t, 3, len(result), "got the wrong number of preferences")
for i := 0; i < 3; i++ { for i := 0; i < 3; i++ {
@@ -226,10 +226,10 @@ func testPreferenceDeleteByUser(t *testing.T, ss store.Store) {
} }
err := ss.Preference().Save(&preferences) err := ss.Preference().Save(&preferences)
require.Nil(t, err) require.NoError(t, err)
err = ss.Preference().PermanentDeleteByUser(userId) err = ss.Preference().PermanentDeleteByUser(userId)
require.Nil(t, err) require.NoError(t, err)
} }
func testPreferenceDelete(t *testing.T, ss store.Store) { func testPreferenceDelete(t *testing.T, ss store.Store) {
@@ -241,16 +241,16 @@ func testPreferenceDelete(t *testing.T, ss store.Store) {
} }
err := ss.Preference().Save(&model.Preferences{preference}) err := ss.Preference().Save(&model.Preferences{preference})
require.Nil(t, err) require.NoError(t, err)
preferences, err := ss.Preference().GetAll(preference.UserId) preferences, err := ss.Preference().GetAll(preference.UserId)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, preferences, 1, "should've returned 1 preference") assert.Len(t, preferences, 1, "should've returned 1 preference")
err = ss.Preference().Delete(preference.UserId, preference.Category, preference.Name) err = ss.Preference().Delete(preference.UserId, preference.Category, preference.Name)
require.Nil(t, err) require.NoError(t, err)
preferences, err = ss.Preference().GetAll(preference.UserId) preferences, err = ss.Preference().GetAll(preference.UserId)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preferences") assert.Empty(t, preferences, "should've returned no preferences")
} }
@@ -273,17 +273,17 @@ func testPreferenceDeleteCategory(t *testing.T, ss store.Store) {
} }
err := ss.Preference().Save(&model.Preferences{preference1, preference2}) err := ss.Preference().Save(&model.Preferences{preference1, preference2})
require.Nil(t, err) require.NoError(t, err)
preferences, err := ss.Preference().GetAll(userId) preferences, err := ss.Preference().GetAll(userId)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, preferences, 2, "should've returned 2 preferences") assert.Len(t, preferences, 2, "should've returned 2 preferences")
err = ss.Preference().DeleteCategory(userId, category) err = ss.Preference().DeleteCategory(userId, category)
require.Nil(t, err) require.NoError(t, err)
preferences, err = ss.Preference().GetAll(userId) preferences, err = ss.Preference().GetAll(userId)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preferences") assert.Empty(t, preferences, "should've returned no preferences")
} }
@@ -308,25 +308,25 @@ func testPreferenceDeleteCategoryAndName(t *testing.T, ss store.Store) {
} }
err := ss.Preference().Save(&model.Preferences{preference1, preference2}) err := ss.Preference().Save(&model.Preferences{preference1, preference2})
require.Nil(t, err) require.NoError(t, err)
preferences, err := ss.Preference().GetAll(userId) preferences, err := ss.Preference().GetAll(userId)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, preferences, 1, "should've returned 1 preference") assert.Len(t, preferences, 1, "should've returned 1 preference")
preferences, err = ss.Preference().GetAll(userId2) preferences, err = ss.Preference().GetAll(userId2)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, preferences, 1, "should've returned 1 preference") assert.Len(t, preferences, 1, "should've returned 1 preference")
err = ss.Preference().DeleteCategoryAndName(category, name) err = ss.Preference().DeleteCategoryAndName(category, name)
require.Nil(t, err) require.NoError(t, err)
preferences, err = ss.Preference().GetAll(userId) preferences, err = ss.Preference().GetAll(userId)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preference") assert.Empty(t, preferences, "should've returned no preference")
preferences, err = ss.Preference().GetAll(userId2) preferences, err = ss.Preference().GetAll(userId2)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, preferences, "should've returned no preference") assert.Empty(t, preferences, "should've returned no preference")
} }
@@ -340,7 +340,7 @@ func testPreferenceCleanupFlagsBatch(t *testing.T, ss store.Store) {
o1.Message = "zz" + model.NewId() + "AAAAAAAAAAA" o1.Message = "zz" + model.NewId() + "AAAAAAAAAAA"
o1.CreateAt = 1000 o1.CreateAt = 1000
o1, err := ss.Post().Save(o1) o1, err := ss.Post().Save(o1)
require.Nil(t, err) require.NoError(t, err)
preference1 := model.Preference{ preference1 := model.Preference{
UserId: userId, UserId: userId,
@@ -357,14 +357,14 @@ func testPreferenceCleanupFlagsBatch(t *testing.T, ss store.Store) {
} }
nErr := ss.Preference().Save(&model.Preferences{preference1, preference2}) nErr := ss.Preference().Save(&model.Preferences{preference1, preference2})
require.Nil(t, nErr) require.NoError(t, nErr)
_, nErr = ss.Preference().CleanupFlagsBatch(10000) _, nErr = ss.Preference().CleanupFlagsBatch(10000)
assert.Nil(t, nErr) assert.NoError(t, nErr)
_, nErr = ss.Preference().Get(userId, category, preference1.Name) _, nErr = ss.Preference().Get(userId, category, preference1.Name)
assert.Nil(t, nErr) assert.NoError(t, nErr)
_, nErr = ss.Preference().Get(userId, category, preference2.Name) _, nErr = ss.Preference().Get(userId, category, preference2.Name)
assert.NotNil(t, nErr) assert.Error(t, nErr)
} }

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

@@ -31,7 +31,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err) require.NoError(t, err)
firstUpdateAt := post.UpdateAt firstUpdateAt := post.UpdateAt
reaction1 := &model.Reaction{ reaction1 := &model.Reaction{
@@ -42,7 +42,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
time.Sleep(time.Millisecond) time.Sleep(time.Millisecond)
reaction, nErr := ss.Reaction().Save(reaction1) reaction, nErr := ss.Reaction().Save(reaction1)
require.Nil(t, nErr) require.NoError(t, nErr)
saved := reaction saved := reaction
assert.Equal(t, saved.UserId, reaction1.UserId, "should've saved reaction user_id and returned it") assert.Equal(t, saved.UserId, reaction1.UserId, "should've saved reaction user_id and returned it")
@@ -53,7 +53,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
var secondUpdateAt int64 var secondUpdateAt int64
postList, err := ss.Post().Get(reaction1.PostId, false, false, false) postList, err := ss.Post().Get(reaction1.PostId, false, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.True(t, postList.Posts[post.Id].HasReactions, "should've set HasReactions = true on post") assert.True(t, postList.Posts[post.Id].HasReactions, "should've set HasReactions = true on post")
assert.NotEqual(t, postList.Posts[post.Id].UpdateAt, firstUpdateAt, "should've marked post as updated when HasReactions changed") assert.NotEqual(t, postList.Posts[post.Id].UpdateAt, firstUpdateAt, "should've marked post as updated when HasReactions changed")
@@ -63,7 +63,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
} }
_, nErr = ss.Reaction().Save(reaction1) _, nErr = ss.Reaction().Save(reaction1)
assert.Nil(t, nErr, "should've allowed saving a duplicate reaction") assert.NoError(t, nErr, "should've allowed saving a duplicate reaction")
// different user // different user
reaction2 := &model.Reaction{ reaction2 := &model.Reaction{
@@ -74,10 +74,10 @@ func testReactionSave(t *testing.T, ss store.Store) {
time.Sleep(time.Millisecond) time.Sleep(time.Millisecond)
_, nErr = ss.Reaction().Save(reaction2) _, nErr = ss.Reaction().Save(reaction2)
require.Nil(t, nErr) require.NoError(t, nErr)
postList, err = ss.Post().Get(reaction2.PostId, false, false, false) postList, err = ss.Post().Get(reaction2.PostId, false, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.NotEqual(t, postList.Posts[post.Id].UpdateAt, secondUpdateAt, "should've marked post as updated even if HasReactions doesn't change") assert.NotEqual(t, postList.Posts[post.Id].UpdateAt, secondUpdateAt, "should've marked post as updated even if HasReactions doesn't change")
@@ -88,7 +88,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
EmojiName: reaction1.EmojiName, EmojiName: reaction1.EmojiName,
} }
_, nErr = ss.Reaction().Save(reaction3) _, nErr = ss.Reaction().Save(reaction3)
require.Nil(t, nErr) require.NoError(t, nErr)
// different emoji // different emoji
reaction4 := &model.Reaction{ reaction4 := &model.Reaction{
@@ -97,7 +97,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
EmojiName: model.NewId(), EmojiName: model.NewId(),
} }
_, nErr = ss.Reaction().Save(reaction4) _, nErr = ss.Reaction().Save(reaction4)
require.Nil(t, nErr) require.NoError(t, nErr)
// invalid reaction // invalid reaction
reaction5 := &model.Reaction{ reaction5 := &model.Reaction{
@@ -105,7 +105,7 @@ func testReactionSave(t *testing.T, ss store.Store) {
PostId: reaction1.PostId, PostId: reaction1.PostId,
} }
_, nErr = ss.Reaction().Save(reaction5) _, nErr = ss.Reaction().Save(reaction5)
require.NotNil(t, nErr, "should've failed for invalid reaction") require.Error(t, nErr, "should've failed for invalid reaction")
} }
@@ -115,7 +115,7 @@ func testReactionDelete(t *testing.T, ss store.Store) {
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err) require.NoError(t, err)
reaction := &model.Reaction{ reaction := &model.Reaction{
UserId: model.NewId(), UserId: model.NewId(),
@@ -124,23 +124,23 @@ func testReactionDelete(t *testing.T, ss store.Store) {
} }
_, nErr := ss.Reaction().Save(reaction) _, nErr := ss.Reaction().Save(reaction)
require.Nil(t, nErr) require.NoError(t, nErr)
result, err := ss.Post().Get(reaction.PostId, false, false, false) result, err := ss.Post().Get(reaction.PostId, false, false, false)
require.Nil(t, err) require.NoError(t, err)
firstUpdateAt := result.Posts[post.Id].UpdateAt firstUpdateAt := result.Posts[post.Id].UpdateAt
_, nErr = ss.Reaction().Delete(reaction) _, nErr = ss.Reaction().Delete(reaction)
require.Nil(t, nErr) require.NoError(t, nErr)
reactions, rErr := ss.Reaction().GetForPost(post.Id, false) reactions, rErr := ss.Reaction().GetForPost(post.Id, false)
require.Nil(t, rErr) require.NoError(t, rErr)
assert.Empty(t, reactions, "should've deleted reaction") assert.Empty(t, reactions, "should've deleted reaction")
postList, err := ss.Post().Get(post.Id, false, false, false) postList, err := ss.Post().Get(post.Id, false, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.False(t, postList.Posts[post.Id].HasReactions, "should've set HasReactions = false on post") assert.False(t, postList.Posts[post.Id].HasReactions, "should've set HasReactions = false on post")
assert.NotEqual(t, postList.Posts[post.Id].UpdateAt, firstUpdateAt, "should mark post as updated after deleting reactions") assert.NotEqual(t, postList.Posts[post.Id].UpdateAt, firstUpdateAt, "should mark post as updated after deleting reactions")
@@ -151,7 +151,7 @@ func testReactionDelete(t *testing.T, ss store.Store) {
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err) require.NoError(t, err)
reaction := &model.Reaction{ reaction := &model.Reaction{
UserId: model.NewId(), UserId: model.NewId(),
@@ -160,19 +160,19 @@ func testReactionDelete(t *testing.T, ss store.Store) {
} }
savedReaction, nErr := ss.Reaction().Save(reaction) savedReaction, nErr := ss.Reaction().Save(reaction)
require.Nil(t, nErr) require.NoError(t, nErr)
updateAt := savedReaction.UpdateAt updateAt := savedReaction.UpdateAt
_, nErr = ss.Reaction().Delete(savedReaction) _, nErr = ss.Reaction().Delete(savedReaction)
require.Nil(t, nErr) require.NoError(t, nErr)
// add same reaction back and ensure update_at is set // add same reaction back and ensure update_at is set
_, nErr = ss.Reaction().Save(savedReaction) _, nErr = ss.Reaction().Save(savedReaction)
require.Nil(t, nErr) require.NoError(t, nErr)
reactions, err := ss.Reaction().GetForPost(post.Id, false) reactions, err := ss.Reaction().GetForPost(post.Id, false)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, reactions, 1) assert.Len(t, reactions, 1)
assert.GreaterOrEqual(t, reactions[0].UpdateAt, updateAt) assert.GreaterOrEqual(t, reactions[0].UpdateAt, updateAt)
@@ -209,7 +209,7 @@ func testReactionGetForPost(t *testing.T, ss store.Store) {
for _, reaction := range reactions { for _, reaction := range reactions {
_, err := ss.Reaction().Save(reaction) _, err := ss.Reaction().Save(reaction)
require.Nil(t, err) require.NoError(t, err)
} }
// save and delete an additional reaction to test soft deletion // save and delete an additional reaction to test soft deletion
@@ -219,12 +219,12 @@ func testReactionGetForPost(t *testing.T, ss store.Store) {
EmojiName: "grin", EmojiName: "grin",
} }
savedTmp, err := ss.Reaction().Save(temp) savedTmp, err := ss.Reaction().Save(temp)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Reaction().Delete(savedTmp) _, err = ss.Reaction().Delete(savedTmp)
require.Nil(t, err) require.NoError(t, err)
returned, err := ss.Reaction().GetForPost(postId, false) returned, err := ss.Reaction().GetForPost(postId, false)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, returned, 3, "should've returned 3 reactions") require.Len(t, returned, 3, "should've returned 3 reactions")
for _, reaction := range reactions { for _, reaction := range reactions {
@@ -247,7 +247,7 @@ func testReactionGetForPost(t *testing.T, ss store.Store) {
// Should return cached item // Should return cached item
returned, err = ss.Reaction().GetForPost(postId, true) returned, err = ss.Reaction().GetForPost(postId, true)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, returned, 3, "should've returned 3 reactions") require.Len(t, returned, 3, "should've returned 3 reactions")
for _, reaction := range reactions { for _, reaction := range reactions {
@@ -276,17 +276,17 @@ func testReactionDeleteAllWithEmojiName(t *testing.T, ss store.Store, s SqlStore
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err1) require.NoError(t, err1)
post2, err2 := ss.Post().Save(&model.Post{ post2, err2 := ss.Post().Save(&model.Post{
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err2) require.NoError(t, err2)
post3, err3 := ss.Post().Save(&model.Post{ post3, err3 := ss.Post().Save(&model.Post{
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err3) require.NoError(t, err3)
userId := model.NewId() userId := model.NewId()
@@ -320,7 +320,7 @@ func testReactionDeleteAllWithEmojiName(t *testing.T, ss store.Store, s SqlStore
for _, reaction := range reactions { for _, reaction := range reactions {
_, err := ss.Reaction().Save(reaction) _, err := ss.Reaction().Save(reaction)
require.Nil(t, err) require.NoError(t, err)
} }
// make at least one Reaction record contain NULL for Update and DeleteAt to simulate post schema upgrade case. // make at least one Reaction record contain NULL for Update and DeleteAt to simulate post schema upgrade case.
@@ -336,17 +336,17 @@ func testReactionDeleteAllWithEmojiName(t *testing.T, ss store.Store, s SqlStore
"PostId": post.Id, "PostId": post.Id,
"EmojiName": emojiToDelete, "EmojiName": emojiToDelete,
}) })
require.Nil(t, err) require.NoError(t, err)
rowsAffected, err := sqlResult.RowsAffected() rowsAffected, err := sqlResult.RowsAffected()
require.Nil(t, err) require.NoError(t, err)
require.NotZero(t, rowsAffected) require.NotZero(t, rowsAffected)
err = ss.Reaction().DeleteAllWithEmojiName(emojiToDelete) err = ss.Reaction().DeleteAllWithEmojiName(emojiToDelete)
require.Nil(t, err) require.NoError(t, err)
// check that the reactions were deleted // check that the reactions were deleted
returned, err := ss.Reaction().GetForPost(post.Id, false) returned, err := ss.Reaction().GetForPost(post.Id, false)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, returned, 1, "should've only removed reactions with emoji name") require.Len(t, returned, 1, "should've only removed reactions with emoji name")
for _, reaction := range returned { for _, reaction := range returned {
@@ -354,24 +354,24 @@ func testReactionDeleteAllWithEmojiName(t *testing.T, ss store.Store, s SqlStore
} }
returned, err = ss.Reaction().GetForPost(post2.Id, false) returned, err = ss.Reaction().GetForPost(post2.Id, false)
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, returned, 1, "should've only removed reactions with emoji name") assert.Len(t, returned, 1, "should've only removed reactions with emoji name")
returned, err = ss.Reaction().GetForPost(post3.Id, false) returned, err = ss.Reaction().GetForPost(post3.Id, false)
require.Nil(t, err) require.NoError(t, err)
assert.Empty(t, returned, "should've only removed reactions with emoji name") assert.Empty(t, returned, "should've only removed reactions with emoji name")
// check that the posts are updated // check that the posts are updated
postList, err := ss.Post().Get(post.Id, false, false, false) postList, err := ss.Post().Get(post.Id, false, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.True(t, postList.Posts[post.Id].HasReactions, "post should still have reactions") assert.True(t, postList.Posts[post.Id].HasReactions, "post should still have reactions")
postList, err = ss.Post().Get(post2.Id, false, false, false) postList, err = ss.Post().Get(post2.Id, false, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.True(t, postList.Posts[post2.Id].HasReactions, "post should still have reactions") assert.True(t, postList.Posts[post2.Id].HasReactions, "post should still have reactions")
postList, err = ss.Post().Get(post3.Id, false, false, false) postList, err = ss.Post().Get(post3.Id, false, false, false)
require.Nil(t, err) require.NoError(t, err)
assert.False(t, postList.Posts[post3.Id].HasReactions, "post shouldn't have reactions any more") assert.False(t, postList.Posts[post3.Id].HasReactions, "post shouldn't have reactions any more")
} }
@@ -381,7 +381,7 @@ func testReactionStorePermanentDeleteBatch(t *testing.T, ss store.Store) {
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err1) require.NoError(t, err1)
reactions := []*model.Reaction{ reactions := []*model.Reaction{
{ {
@@ -415,22 +415,22 @@ func testReactionStorePermanentDeleteBatch(t *testing.T, ss store.Store) {
for _, reaction := range reactions { for _, reaction := range reactions {
var nErr error var nErr error
lastReaction, nErr = ss.Reaction().Save(reaction) lastReaction, nErr = ss.Reaction().Save(reaction)
require.Nil(t, nErr) require.NoError(t, nErr)
} }
returned, err := ss.Reaction().GetForPost(post.Id, false) returned, err := ss.Reaction().GetForPost(post.Id, false)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, returned, 4, "expected 4 reactions") require.Len(t, returned, 4, "expected 4 reactions")
_, err = ss.Reaction().PermanentDeleteBatch(1800, 1000) _, err = ss.Reaction().PermanentDeleteBatch(1800, 1000)
require.Nil(t, err) require.NoError(t, err)
// This is to force a clear of the cache. // This is to force a clear of the cache.
_, err = ss.Reaction().Delete(lastReaction) _, err = ss.Reaction().Delete(lastReaction)
require.Nil(t, err) require.NoError(t, err)
returned, err = ss.Reaction().GetForPost(post.Id, false) returned, err = ss.Reaction().GetForPost(post.Id, false)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, returned, 1, "expected 1 reaction. Got: %v", len(returned)) require.Len(t, returned, 1, "expected 1 reaction. Got: %v", len(returned))
} }
@@ -477,12 +477,12 @@ func testReactionBulkGetForPosts(t *testing.T, ss store.Store) {
for _, reaction := range reactions { for _, reaction := range reactions {
_, err := ss.Reaction().Save(reaction) _, err := ss.Reaction().Save(reaction)
require.Nil(t, err) require.NoError(t, err)
} }
postIds := []string{postId, post2Id, post3Id} postIds := []string{postId, post2Id, post3Id}
returned, err := ss.Reaction().BulkGetForPosts(postIds) returned, err := ss.Reaction().BulkGetForPosts(postIds)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, returned, 5, "should've returned 5 reactions") require.Len(t, returned, 5, "should've returned 5 reactions")
post4IdFound := false post4IdFound := false
@@ -506,7 +506,7 @@ func testReactionDeadlock(t *testing.T, ss store.Store) {
ChannelId: model.NewId(), ChannelId: model.NewId(),
UserId: model.NewId(), UserId: model.NewId(),
}) })
require.Nil(t, err) require.NoError(t, err)
reaction1 := &model.Reaction{ reaction1 := &model.Reaction{
UserId: model.NewId(), UserId: model.NewId(),
@@ -514,7 +514,7 @@ func testReactionDeadlock(t *testing.T, ss store.Store) {
EmojiName: model.NewId(), EmojiName: model.NewId(),
} }
_, nErr := ss.Reaction().Save(reaction1) _, nErr := ss.Reaction().Save(reaction1)
require.Nil(t, nErr) require.NoError(t, nErr)
// different user // different user
reaction2 := &model.Reaction{ reaction2 := &model.Reaction{
@@ -523,7 +523,7 @@ func testReactionDeadlock(t *testing.T, ss store.Store) {
EmojiName: reaction1.EmojiName, EmojiName: reaction1.EmojiName,
} }
_, nErr = ss.Reaction().Save(reaction2) _, nErr = ss.Reaction().Save(reaction2)
require.Nil(t, nErr) require.NoError(t, nErr)
// different post // different post
reaction3 := &model.Reaction{ reaction3 := &model.Reaction{
@@ -532,7 +532,7 @@ func testReactionDeadlock(t *testing.T, ss store.Store) {
EmojiName: reaction1.EmojiName, EmojiName: reaction1.EmojiName,
} }
_, nErr = ss.Reaction().Save(reaction3) _, nErr = ss.Reaction().Save(reaction3)
require.Nil(t, nErr) require.NoError(t, nErr)
// different emoji // different emoji
reaction4 := &model.Reaction{ reaction4 := &model.Reaction{
@@ -541,7 +541,7 @@ func testReactionDeadlock(t *testing.T, ss store.Store) {
EmojiName: model.NewId(), EmojiName: model.NewId(),
} }
_, nErr = ss.Reaction().Save(reaction4) _, nErr = ss.Reaction().Save(reaction4)
require.Nil(t, nErr) require.NoError(t, nErr)
var wg sync.WaitGroup var wg sync.WaitGroup
wg.Add(2) wg.Add(2)
@@ -549,14 +549,14 @@ func testReactionDeadlock(t *testing.T, ss store.Store) {
go func() { go func() {
defer wg.Done() defer wg.Done()
err := ss.Reaction().DeleteAllWithEmojiName(reaction1.EmojiName) err := ss.Reaction().DeleteAllWithEmojiName(reaction1.EmojiName)
require.Nil(t, err) require.NoError(t, err)
}() }()
// 2nd tx // 2nd tx
go func() { go func() {
defer wg.Done() defer wg.Done()
_, err := ss.Reaction().Delete(reaction2) _, err := ss.Reaction().Delete(reaction2)
require.Nil(t, err) require.NoError(t, err)
}() }()
wg.Wait() wg.Wait()
} }

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

@@ -41,7 +41,7 @@ func testRoleStoreSave(t *testing.T, ss store.Store) {
} }
d1, err := ss.Role().Save(r1) d1, err := ss.Role().Save(r1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
assert.Equal(t, r1.Name, d1.Name) assert.Equal(t, r1.Name, d1.Name)
assert.Equal(t, r1.DisplayName, d1.DisplayName) assert.Equal(t, r1.DisplayName, d1.DisplayName)
@@ -57,7 +57,7 @@ func testRoleStoreSave(t *testing.T, ss store.Store) {
} }
d2, err := ss.Role().Save(d1) d2, err := ss.Role().Save(d1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d2.Id, 26) assert.Len(t, d2.Id, 26)
assert.Equal(t, r1.Name, d2.Name) assert.Equal(t, r1.Name, d2.Name)
assert.Equal(t, r1.DisplayName, d2.DisplayName) assert.Equal(t, r1.DisplayName, d2.DisplayName)
@@ -80,7 +80,7 @@ func testRoleStoreSave(t *testing.T, ss store.Store) {
} }
_, err = ss.Role().Save(r3) _, err = ss.Role().Save(r3)
assert.NotNil(t, err) assert.Error(t, err)
// Try saving one with a duplicate "name" field. // Try saving one with a duplicate "name" field.
r4 := &model.Role{ r4 := &model.Role{
@@ -96,12 +96,12 @@ func testRoleStoreSave(t *testing.T, ss store.Store) {
} }
_, err = ss.Role().Save(r4) _, err = ss.Role().Save(r4)
assert.NotNil(t, err) assert.Error(t, err)
} }
func testRoleStoreGetAll(t *testing.T, ss store.Store) { func testRoleStoreGetAll(t *testing.T, ss store.Store) {
prev, err := ss.Role().GetAll() prev, err := ss.Role().GetAll()
require.Nil(t, err) require.NoError(t, err)
prevCount := len(prev) prevCount := len(prev)
// Save a role to test with. // Save a role to test with.
@@ -118,7 +118,7 @@ func testRoleStoreGetAll(t *testing.T, ss store.Store) {
} }
_, err = ss.Role().Save(r1) _, err = ss.Role().Save(r1)
require.Nil(t, err) require.NoError(t, err)
r2 := &model.Role{ r2 := &model.Role{
Name: model.NewId(), Name: model.NewId(),
@@ -132,10 +132,10 @@ func testRoleStoreGetAll(t *testing.T, ss store.Store) {
SchemeManaged: false, SchemeManaged: false,
} }
_, err = ss.Role().Save(r2) _, err = ss.Role().Save(r2)
require.Nil(t, err) require.NoError(t, err)
data, err := ss.Role().GetAll() data, err := ss.Role().GetAll()
require.Nil(t, err) require.NoError(t, err)
assert.Len(t, data, prevCount+2) assert.Len(t, data, prevCount+2)
} }
@@ -154,12 +154,12 @@ func testRoleStoreGet(t *testing.T, ss store.Store) {
} }
d1, err := ss.Role().Save(r1) d1, err := ss.Role().Save(r1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
// Get a valid role // Get a valid role
d2, err := ss.Role().Get(d1.Id) d2, err := ss.Role().Get(d1.Id)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, d1.Id, d2.Id) assert.Equal(t, d1.Id, d2.Id)
assert.Equal(t, r1.Name, d2.Name) assert.Equal(t, r1.Name, d2.Name)
assert.Equal(t, r1.DisplayName, d2.DisplayName) assert.Equal(t, r1.DisplayName, d2.DisplayName)
@@ -169,7 +169,7 @@ func testRoleStoreGet(t *testing.T, ss store.Store) {
// Get an invalid role // Get an invalid role
_, err = ss.Role().Get(model.NewId()) _, err = ss.Role().Get(model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
} }
func testRoleStoreGetByName(t *testing.T, ss store.Store) { func testRoleStoreGetByName(t *testing.T, ss store.Store) {
@@ -187,12 +187,12 @@ func testRoleStoreGetByName(t *testing.T, ss store.Store) {
} }
d1, err := ss.Role().Save(r1) d1, err := ss.Role().Save(r1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
// Get a valid role // Get a valid role
d2, err := ss.Role().GetByName(d1.Name) d2, err := ss.Role().GetByName(d1.Name)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, d1.Id, d2.Id) assert.Equal(t, d1.Id, d2.Id)
assert.Equal(t, r1.Name, d2.Name) assert.Equal(t, r1.Name, d2.Name)
assert.Equal(t, r1.DisplayName, d2.DisplayName) assert.Equal(t, r1.DisplayName, d2.DisplayName)
@@ -202,7 +202,7 @@ func testRoleStoreGetByName(t *testing.T, ss store.Store) {
// Get an invalid role // Get an invalid role
_, err = ss.Role().GetByName(model.NewId()) _, err = ss.Role().GetByName(model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
} }
func testRoleStoreGetByNames(t *testing.T, ss store.Store) { func testRoleStoreGetByNames(t *testing.T, ss store.Store) {
@@ -242,21 +242,21 @@ func testRoleStoreGetByNames(t *testing.T, ss store.Store) {
} }
d1, err := ss.Role().Save(r1) d1, err := ss.Role().Save(r1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
d2, err := ss.Role().Save(r2) d2, err := ss.Role().Save(r2)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d2.Id, 26) assert.Len(t, d2.Id, 26)
d3, err := ss.Role().Save(r3) d3, err := ss.Role().Save(r3)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d3.Id, 26) assert.Len(t, d3.Id, 26)
// Get two valid roles. // Get two valid roles.
n4 := []string{r1.Name, r2.Name} n4 := []string{r1.Name, r2.Name}
roles4, err := ss.Role().GetByNames(n4) roles4, err := ss.Role().GetByNames(n4)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, roles4, 2) assert.Len(t, roles4, 2)
assert.Contains(t, roles4, d1) assert.Contains(t, roles4, d1)
assert.Contains(t, roles4, d2) assert.Contains(t, roles4, d2)
@@ -265,13 +265,13 @@ func testRoleStoreGetByNames(t *testing.T, ss store.Store) {
// Get two invalid roles. // Get two invalid roles.
n5 := []string{model.NewId(), model.NewId()} n5 := []string{model.NewId(), model.NewId()}
roles5, err := ss.Role().GetByNames(n5) roles5, err := ss.Role().GetByNames(n5)
assert.Nil(t, err) assert.NoError(t, err)
assert.Empty(t, roles5) assert.Empty(t, roles5)
// Get one valid one and one invalid one. // Get one valid one and one invalid one.
n6 := []string{r1.Name, model.NewId()} n6 := []string{r1.Name, model.NewId()}
roles6, err := ss.Role().GetByNames(n6) roles6, err := ss.Role().GetByNames(n6)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, roles6, 1) assert.Len(t, roles6, 1)
assert.Contains(t, roles6, d1) assert.Contains(t, roles6, d1)
assert.NotContains(t, roles6, d2) assert.NotContains(t, roles6, d2)
@@ -293,29 +293,29 @@ func testRoleStoreDelete(t *testing.T, ss store.Store) {
} }
d1, err := ss.Role().Save(r1) d1, err := ss.Role().Save(r1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
// Check the role is there. // Check the role is there.
_, err = ss.Role().Get(d1.Id) _, err = ss.Role().Get(d1.Id)
assert.Nil(t, err) assert.NoError(t, err)
// Delete the role. // Delete the role.
_, err = ss.Role().Delete(d1.Id) _, err = ss.Role().Delete(d1.Id)
assert.Nil(t, err) assert.NoError(t, err)
// Check the role is deleted there. // Check the role is deleted there.
d2, err := ss.Role().Get(d1.Id) d2, err := ss.Role().Get(d1.Id)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, d2.DeleteAt) assert.NotZero(t, d2.DeleteAt)
d3, err := ss.Role().GetByName(d1.Name) d3, err := ss.Role().GetByName(d1.Name)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, d3.DeleteAt) assert.NotZero(t, d3.DeleteAt)
// Try and delete a role that does not exist. // Try and delete a role that does not exist.
_, err = ss.Role().Delete(model.NewId()) _, err = ss.Role().Delete(model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
} }
func testRoleStorePermanentDeleteAll(t *testing.T, ss store.Store) { func testRoleStorePermanentDeleteAll(t *testing.T, ss store.Store) {
@@ -344,19 +344,19 @@ func testRoleStorePermanentDeleteAll(t *testing.T, ss store.Store) {
} }
_, err := ss.Role().Save(r1) _, err := ss.Role().Save(r1)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Role().Save(r2) _, err = ss.Role().Save(r2)
require.Nil(t, err) require.NoError(t, err)
roles, err := ss.Role().GetByNames([]string{r1.Name, r2.Name}) roles, err := ss.Role().GetByNames([]string{r1.Name, r2.Name})
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, roles, 2) assert.Len(t, roles, 2)
err = ss.Role().PermanentDeleteAll() err = ss.Role().PermanentDeleteAll()
assert.Nil(t, err) assert.NoError(t, err)
roles, err = ss.Role().GetByNames([]string{r1.Name, r2.Name}) roles, err = ss.Role().GetByNames([]string{r1.Name, r2.Name})
assert.Nil(t, err) assert.NoError(t, err)
assert.Empty(t, roles) assert.Empty(t, roles)
} }
@@ -370,7 +370,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SCHEME_SCOPE_TEAM,
} }
teamScheme1, err := ss.Scheme().Save(teamScheme1) teamScheme1, err := ss.Scheme().Save(teamScheme1)
require.Nil(t, err) require.NoError(t, err)
defer ss.Scheme().Delete(teamScheme1.Id) defer ss.Scheme().Delete(teamScheme1.Id)
teamScheme2 := &model.Scheme{ teamScheme2 := &model.Scheme{
@@ -380,7 +380,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SCHEME_SCOPE_TEAM,
} }
teamScheme2, err = ss.Scheme().Save(teamScheme2) teamScheme2, err = ss.Scheme().Save(teamScheme2)
require.Nil(t, err) require.NoError(t, err)
defer ss.Scheme().Delete(teamScheme2.Id) defer ss.Scheme().Delete(teamScheme2.Id)
channelScheme1 := &model.Scheme{ channelScheme1 := &model.Scheme{
@@ -390,7 +390,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SCHEME_SCOPE_CHANNEL,
} }
channelScheme1, err = ss.Scheme().Save(channelScheme1) channelScheme1, err = ss.Scheme().Save(channelScheme1)
require.Nil(t, err) require.NoError(t, err)
defer ss.Scheme().Delete(channelScheme1.Id) defer ss.Scheme().Delete(channelScheme1.Id)
channelScheme2 := &model.Scheme{ channelScheme2 := &model.Scheme{
@@ -400,7 +400,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SCHEME_SCOPE_CHANNEL,
} }
channelScheme2, err = ss.Scheme().Save(channelScheme2) channelScheme2, err = ss.Scheme().Save(channelScheme2)
require.Nil(t, err) require.NoError(t, err)
defer ss.Scheme().Delete(channelScheme1.Id) defer ss.Scheme().Delete(channelScheme1.Id)
team1 := &model.Team{ team1 := &model.Team{
@@ -411,7 +411,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
SchemeId: &teamScheme1.Id, SchemeId: &teamScheme1.Id,
} }
team1, err = ss.Team().Save(team1) team1, err = ss.Team().Save(team1)
require.Nil(t, err) require.NoError(t, err)
defer ss.Team().PermanentDelete(team1.Id) defer ss.Team().PermanentDelete(team1.Id)
team2 := &model.Team{ team2 := &model.Team{
@@ -422,7 +422,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
SchemeId: &teamScheme2.Id, SchemeId: &teamScheme2.Id,
} }
team2, err = ss.Team().Save(team2) team2, err = ss.Team().Save(team2)
require.Nil(t, err) require.NoError(t, err)
defer ss.Team().PermanentDelete(team2.Id) defer ss.Team().PermanentDelete(team2.Id)
channel1 := &model.Channel{ channel1 := &model.Channel{
@@ -433,7 +433,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
SchemeId: &channelScheme1.Id, SchemeId: &channelScheme1.Id,
} }
channel1, nErr := ss.Channel().Save(channel1, -1) channel1, nErr := ss.Channel().Save(channel1, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
defer ss.Channel().Delete(channel1.Id, 0) defer ss.Channel().Delete(channel1.Id, 0)
channel2 := &model.Channel{ channel2 := &model.Channel{
@@ -444,13 +444,13 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
SchemeId: &channelScheme2.Id, SchemeId: &channelScheme2.Id,
} }
channel2, nErr = ss.Channel().Save(channel2, -1) channel2, nErr = ss.Channel().Save(channel2, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
defer ss.Channel().Delete(channel2.Id, 0) defer ss.Channel().Delete(channel2.Id, 0)
t.Run("ChannelRolesUnderTeamRole", func(t *testing.T) { t.Run("ChannelRolesUnderTeamRole", func(t *testing.T) {
t.Run("guest role for the right team's channels are returned", func(t *testing.T) { t.Run("guest role for the right team's channels are returned", func(t *testing.T) {
actualRoles, err := ss.Role().ChannelRolesUnderTeamRole(teamScheme1.DefaultChannelGuestRole) actualRoles, err := ss.Role().ChannelRolesUnderTeamRole(teamScheme1.DefaultChannelGuestRole)
require.Nil(t, err) require.NoError(t, err)
var actualRoleNames []string var actualRoleNames []string
for _, role := range actualRoles { for _, role := range actualRoles {
@@ -463,7 +463,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
t.Run("user role for the right team's channels are returned", func(t *testing.T) { t.Run("user role for the right team's channels are returned", func(t *testing.T) {
actualRoles, err := ss.Role().ChannelRolesUnderTeamRole(teamScheme1.DefaultChannelUserRole) actualRoles, err := ss.Role().ChannelRolesUnderTeamRole(teamScheme1.DefaultChannelUserRole)
require.Nil(t, err) require.NoError(t, err)
var actualRoleNames []string var actualRoleNames []string
for _, role := range actualRoles { for _, role := range actualRoles {
@@ -476,7 +476,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
t.Run("admin role for the right team's channels are returned", func(t *testing.T) { t.Run("admin role for the right team's channels are returned", func(t *testing.T) {
actualRoles, err := ss.Role().ChannelRolesUnderTeamRole(teamScheme1.DefaultChannelAdminRole) actualRoles, err := ss.Role().ChannelRolesUnderTeamRole(teamScheme1.DefaultChannelAdminRole)
require.Nil(t, err) require.NoError(t, err)
var actualRoleNames []string var actualRoleNames []string
for _, role := range actualRoles { for _, role := range actualRoles {
@@ -491,7 +491,7 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) {
t.Run("AllChannelSchemeRoles", func(t *testing.T) { t.Run("AllChannelSchemeRoles", func(t *testing.T) {
t.Run("guest role for the right team's channels are returned", func(t *testing.T) { t.Run("guest role for the right team's channels are returned", func(t *testing.T) {
actualRoles, err := ss.Role().AllChannelSchemeRoles() actualRoles, err := ss.Role().AllChannelSchemeRoles()
require.Nil(t, err) require.NoError(t, err)
var actualRoleNames []string var actualRoleNames []string
for _, role := range actualRoles { for _, role := range actualRoles {
@@ -524,7 +524,7 @@ func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *t
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SCHEME_SCOPE_TEAM,
} }
teamScheme, err := ss.Scheme().Save(teamScheme) teamScheme, err := ss.Scheme().Save(teamScheme)
require.Nil(t, err) require.NoError(t, err)
defer ss.Scheme().Delete(teamScheme.Id) defer ss.Scheme().Delete(teamScheme.Id)
channelScheme := &model.Scheme{ channelScheme := &model.Scheme{
@@ -534,7 +534,7 @@ func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *t
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SCHEME_SCOPE_CHANNEL,
} }
channelScheme, err = ss.Scheme().Save(channelScheme) channelScheme, err = ss.Scheme().Save(channelScheme)
require.Nil(t, err) require.NoError(t, err)
defer ss.Scheme().Delete(channelScheme.Id) defer ss.Scheme().Delete(channelScheme.Id)
team := &model.Team{ team := &model.Team{
@@ -545,7 +545,7 @@ func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *t
SchemeId: &teamScheme.Id, SchemeId: &teamScheme.Id,
} }
team, err = ss.Team().Save(team) team, err = ss.Team().Save(team)
require.Nil(t, err) require.NoError(t, err)
defer ss.Team().PermanentDelete(team.Id) defer ss.Team().PermanentDelete(team.Id)
channel := &model.Channel{ channel := &model.Channel{
@@ -556,42 +556,42 @@ func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *t
SchemeId: &channelScheme.Id, SchemeId: &channelScheme.Id,
} }
channel, nErr := ss.Channel().Save(channel, -1) channel, nErr := ss.Channel().Save(channel, -1)
require.Nil(t, nErr) require.NoError(t, nErr)
defer ss.Channel().Delete(channel.Id, 0) defer ss.Channel().Delete(channel.Id, 0)
channelSchemeUserRole, err := ss.Role().GetByName(channelScheme.DefaultChannelUserRole) channelSchemeUserRole, err := ss.Role().GetByName(channelScheme.DefaultChannelUserRole)
require.Nil(t, err) require.NoError(t, err)
channelSchemeUserRole.Permissions = []string{} channelSchemeUserRole.Permissions = []string{}
_, err = ss.Role().Save(channelSchemeUserRole) _, err = ss.Role().Save(channelSchemeUserRole)
require.Nil(t, err) require.NoError(t, err)
teamSchemeUserRole, err := ss.Role().GetByName(teamScheme.DefaultChannelUserRole) teamSchemeUserRole, err := ss.Role().GetByName(teamScheme.DefaultChannelUserRole)
require.Nil(t, err) require.NoError(t, err)
teamSchemeUserRole.Permissions = []string{model.PERMISSION_UPLOAD_FILE.Id} teamSchemeUserRole.Permissions = []string{model.PERMISSION_UPLOAD_FILE.Id}
_, err = ss.Role().Save(teamSchemeUserRole) _, err = ss.Role().Save(teamSchemeUserRole)
require.Nil(t, err) require.NoError(t, err)
// get the channel scheme user role again and ensure that it has the permission inherited from the team // get the channel scheme user role again and ensure that it has the permission inherited from the team
// scheme user role // scheme user role
roleMapBefore, err := ss.Role().ChannelHigherScopedPermissions([]string{channelSchemeUserRole.Name}) roleMapBefore, err := ss.Role().ChannelHigherScopedPermissions([]string{channelSchemeUserRole.Name})
require.Nil(t, err) require.NoError(t, err)
// blank-out the guest role to simulate an old team scheme, ensure it's blank // blank-out the guest role to simulate an old team scheme, ensure it's blank
result, sqlErr := s.GetMaster().Exec(fmt.Sprintf("UPDATE Schemes SET DefaultChannelGuestRole = '' WHERE Id = '%s'", teamScheme.Id)) result, sqlErr := s.GetMaster().Exec(fmt.Sprintf("UPDATE Schemes SET DefaultChannelGuestRole = '' WHERE Id = '%s'", teamScheme.Id))
require.Nil(t, sqlErr) require.NoError(t, sqlErr)
rows, serr := result.RowsAffected() rows, serr := result.RowsAffected()
require.Nil(t, serr) require.NoError(t, serr)
require.Equal(t, int64(1), rows) require.Equal(t, int64(1), rows)
teamScheme, err = ss.Scheme().Get(teamScheme.Id) teamScheme, err = ss.Scheme().Get(teamScheme.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, "", teamScheme.DefaultChannelGuestRole) require.Equal(t, "", teamScheme.DefaultChannelGuestRole)
// trigger a cache clear // trigger a cache clear
_, err = ss.Role().Save(channelSchemeUserRole) _, err = ss.Role().Save(channelSchemeUserRole)
require.Nil(t, err) require.NoError(t, err)
roleMapAfter, err := ss.Role().ChannelHigherScopedPermissions([]string{channelSchemeUserRole.Name}) roleMapAfter, err := ss.Role().ChannelHigherScopedPermissions([]string{channelSchemeUserRole.Name})
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, len(roleMapBefore), len(roleMapAfter)) require.Equal(t, len(roleMapBefore), len(roleMapAfter))
} }

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

@@ -91,7 +91,7 @@ func testSchemeStoreSave(t *testing.T, ss store.Store) {
// Check all fields saved correctly. // Check all fields saved correctly.
d1, err := ss.Scheme().Save(s1) d1, err := ss.Scheme().Save(s1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
assert.Equal(t, s1.DisplayName, d1.DisplayName) assert.Equal(t, s1.DisplayName, d1.DisplayName)
assert.Equal(t, s1.Name, d1.Name) assert.Equal(t, s1.Name, d1.Name)
@@ -109,32 +109,32 @@ func testSchemeStoreSave(t *testing.T, ss store.Store) {
// Check the default roles were created correctly. // Check the default roles were created correctly.
role1, err := ss.Role().GetByName(d1.DefaultTeamAdminRole) role1, err := ss.Role().GetByName(d1.DefaultTeamAdminRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role1.Permissions, []string{"delete_others_posts"}) assert.Equal(t, role1.Permissions, []string{"delete_others_posts"})
assert.True(t, role1.SchemeManaged) assert.True(t, role1.SchemeManaged)
role2, err := ss.Role().GetByName(d1.DefaultTeamUserRole) role2, err := ss.Role().GetByName(d1.DefaultTeamUserRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role2.Permissions, []string{"view_team", "add_user_to_team"}) assert.Equal(t, role2.Permissions, []string{"view_team", "add_user_to_team"})
assert.True(t, role2.SchemeManaged) assert.True(t, role2.SchemeManaged)
role3, err := ss.Role().GetByName(d1.DefaultChannelAdminRole) role3, err := ss.Role().GetByName(d1.DefaultChannelAdminRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role3.Permissions, []string{"manage_public_channel_members", "manage_private_channel_members"}) assert.Equal(t, role3.Permissions, []string{"manage_public_channel_members", "manage_private_channel_members"})
assert.True(t, role3.SchemeManaged) assert.True(t, role3.SchemeManaged)
role4, err := ss.Role().GetByName(d1.DefaultChannelUserRole) role4, err := ss.Role().GetByName(d1.DefaultChannelUserRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role4.Permissions, []string{"read_channel", "create_post"}) assert.Equal(t, role4.Permissions, []string{"read_channel", "create_post"})
assert.True(t, role4.SchemeManaged) assert.True(t, role4.SchemeManaged)
role5, err := ss.Role().GetByName(d1.DefaultTeamGuestRole) role5, err := ss.Role().GetByName(d1.DefaultTeamGuestRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role5.Permissions, []string{"view_team"}) assert.Equal(t, role5.Permissions, []string{"view_team"})
assert.True(t, role5.SchemeManaged) assert.True(t, role5.SchemeManaged)
role6, err := ss.Role().GetByName(d1.DefaultChannelGuestRole) role6, err := ss.Role().GetByName(d1.DefaultChannelGuestRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role6.Permissions, []string{"read_channel", "create_post"}) assert.Equal(t, role6.Permissions, []string{"read_channel", "create_post"})
assert.True(t, role6.SchemeManaged) assert.True(t, role6.SchemeManaged)
@@ -142,7 +142,7 @@ func testSchemeStoreSave(t *testing.T, ss store.Store) {
d1.Description = model.NewId() d1.Description = model.NewId()
d2, err := ss.Scheme().Save(d1) d2, err := ss.Scheme().Save(d1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, d1.Id, d2.Id) assert.Equal(t, d1.Id, d2.Id)
assert.Equal(t, s1.DisplayName, d2.DisplayName) assert.Equal(t, s1.DisplayName, d2.DisplayName)
assert.Equal(t, s1.Name, d2.Name) assert.Equal(t, s1.Name, d2.Name)
@@ -168,7 +168,7 @@ func testSchemeStoreSave(t *testing.T, ss store.Store) {
} }
_, err = ss.Scheme().Save(s3) _, err = ss.Scheme().Save(s3)
assert.NotNil(t, err) assert.Error(t, err)
} }
func testSchemeStoreGet(t *testing.T, ss store.Store) { func testSchemeStoreGet(t *testing.T, ss store.Store) {
@@ -181,12 +181,12 @@ func testSchemeStoreGet(t *testing.T, ss store.Store) {
} }
d1, err := ss.Scheme().Save(s1) d1, err := ss.Scheme().Save(s1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
// Get a valid scheme // Get a valid scheme
d2, err := ss.Scheme().Get(d1.Id) d2, err := ss.Scheme().Get(d1.Id)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, d1.Id, d2.Id) assert.Equal(t, d1.Id, d2.Id)
assert.Equal(t, s1.DisplayName, d2.DisplayName) assert.Equal(t, s1.DisplayName, d2.DisplayName)
assert.Equal(t, s1.Name, d2.Name) assert.Equal(t, s1.Name, d2.Name)
@@ -204,7 +204,7 @@ func testSchemeStoreGet(t *testing.T, ss store.Store) {
// Get an invalid scheme // Get an invalid scheme
_, err = ss.Scheme().Get(model.NewId()) _, err = ss.Scheme().Get(model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
} }
func testSchemeStoreGetByName(t *testing.T, ss store.Store) { func testSchemeStoreGetByName(t *testing.T, ss store.Store) {
@@ -217,12 +217,12 @@ func testSchemeStoreGetByName(t *testing.T, ss store.Store) {
} }
d1, err := ss.Scheme().Save(s1) d1, err := ss.Scheme().Save(s1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
// Get a valid scheme // Get a valid scheme
d2, err := ss.Scheme().GetByName(d1.Name) d2, err := ss.Scheme().GetByName(d1.Name)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, d1.Id, d2.Id) assert.Equal(t, d1.Id, d2.Id)
assert.Equal(t, s1.DisplayName, d2.DisplayName) assert.Equal(t, s1.DisplayName, d2.DisplayName)
assert.Equal(t, s1.Name, d2.Name) assert.Equal(t, s1.Name, d2.Name)
@@ -240,7 +240,7 @@ func testSchemeStoreGetByName(t *testing.T, ss store.Store) {
// Get an invalid scheme // Get an invalid scheme
_, err = ss.Scheme().GetByName(model.NewId()) _, err = ss.Scheme().GetByName(model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
} }
func testSchemeStoreGetAllPage(t *testing.T, ss store.Store) { func testSchemeStoreGetAllPage(t *testing.T, ss store.Store) {
@@ -274,15 +274,15 @@ func testSchemeStoreGetAllPage(t *testing.T, ss store.Store) {
for _, scheme := range schemes { for _, scheme := range schemes {
_, err := ss.Scheme().Save(scheme) _, err := ss.Scheme().Save(scheme)
require.Nil(t, err) require.NoError(t, err)
} }
s1, err := ss.Scheme().GetAllPage("", 0, 2) s1, err := ss.Scheme().GetAllPage("", 0, 2)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, s1, 2) assert.Len(t, s1, 2)
s2, err := ss.Scheme().GetAllPage("", 2, 2) s2, err := ss.Scheme().GetAllPage("", 2, 2)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, s2, 2) assert.Len(t, s2, 2)
assert.NotEqual(t, s1[0].DisplayName, s2[0].DisplayName) assert.NotEqual(t, s1[0].DisplayName, s2[0].DisplayName)
assert.NotEqual(t, s1[0].DisplayName, s2[1].DisplayName) assert.NotEqual(t, s1[0].DisplayName, s2[1].DisplayName)
@@ -294,14 +294,14 @@ func testSchemeStoreGetAllPage(t *testing.T, ss store.Store) {
assert.NotEqual(t, s1[1].Name, s2[1].Name) assert.NotEqual(t, s1[1].Name, s2[1].Name)
s3, err := ss.Scheme().GetAllPage("team", 0, 1000) s3, err := ss.Scheme().GetAllPage("team", 0, 1000)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, len(s3)) assert.NotZero(t, len(s3))
for _, s := range s3 { for _, s := range s3 {
assert.Equal(t, "team", s.Scope) assert.Equal(t, "team", s.Scope)
} }
s4, err := ss.Scheme().GetAllPage("channel", 0, 1000) s4, err := ss.Scheme().GetAllPage("channel", 0, 1000)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, len(s4)) assert.NotZero(t, len(s4))
for _, s := range s4 { for _, s := range s4 {
assert.Equal(t, "channel", s.Scope) assert.Equal(t, "channel", s.Scope)
@@ -319,7 +319,7 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
// Check all fields saved correctly. // Check all fields saved correctly.
d1, err := ss.Scheme().Save(s1) d1, err := ss.Scheme().Save(s1)
assert.Nil(t, err) assert.NoError(t, err)
assert.Len(t, d1.Id, 26) assert.Len(t, d1.Id, 26)
assert.Equal(t, s1.DisplayName, d1.DisplayName) assert.Equal(t, s1.DisplayName, d1.DisplayName)
assert.Equal(t, s1.Name, d1.Name) assert.Equal(t, s1.Name, d1.Name)
@@ -337,68 +337,68 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
// Check the default roles were created correctly. // Check the default roles were created correctly.
role1, err := ss.Role().GetByName(d1.DefaultTeamAdminRole) role1, err := ss.Role().GetByName(d1.DefaultTeamAdminRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role1.Permissions, []string{"delete_others_posts"}) assert.Equal(t, role1.Permissions, []string{"delete_others_posts"})
assert.True(t, role1.SchemeManaged) assert.True(t, role1.SchemeManaged)
role2, err := ss.Role().GetByName(d1.DefaultTeamUserRole) role2, err := ss.Role().GetByName(d1.DefaultTeamUserRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role2.Permissions, []string{"view_team", "add_user_to_team"}) assert.Equal(t, role2.Permissions, []string{"view_team", "add_user_to_team"})
assert.True(t, role2.SchemeManaged) assert.True(t, role2.SchemeManaged)
role3, err := ss.Role().GetByName(d1.DefaultChannelAdminRole) role3, err := ss.Role().GetByName(d1.DefaultChannelAdminRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role3.Permissions, []string{"manage_public_channel_members", "manage_private_channel_members"}) assert.Equal(t, role3.Permissions, []string{"manage_public_channel_members", "manage_private_channel_members"})
assert.True(t, role3.SchemeManaged) assert.True(t, role3.SchemeManaged)
role4, err := ss.Role().GetByName(d1.DefaultChannelUserRole) role4, err := ss.Role().GetByName(d1.DefaultChannelUserRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role4.Permissions, []string{"read_channel", "create_post"}) assert.Equal(t, role4.Permissions, []string{"read_channel", "create_post"})
assert.True(t, role4.SchemeManaged) assert.True(t, role4.SchemeManaged)
role5, err := ss.Role().GetByName(d1.DefaultTeamGuestRole) role5, err := ss.Role().GetByName(d1.DefaultTeamGuestRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role5.Permissions, []string{"view_team"}) assert.Equal(t, role5.Permissions, []string{"view_team"})
assert.True(t, role5.SchemeManaged) assert.True(t, role5.SchemeManaged)
role6, err := ss.Role().GetByName(d1.DefaultChannelGuestRole) role6, err := ss.Role().GetByName(d1.DefaultChannelGuestRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, role6.Permissions, []string{"read_channel", "create_post"}) assert.Equal(t, role6.Permissions, []string{"read_channel", "create_post"})
assert.True(t, role6.SchemeManaged) assert.True(t, role6.SchemeManaged)
// Delete the scheme. // Delete the scheme.
d2, err := ss.Scheme().Delete(d1.Id) d2, err := ss.Scheme().Delete(d1.Id)
require.Nil(t, err) require.NoError(t, err)
assert.NotZero(t, d2.DeleteAt) assert.NotZero(t, d2.DeleteAt)
// Check that the roles are deleted too. // Check that the roles are deleted too.
role7, err := ss.Role().GetByName(d1.DefaultTeamAdminRole) role7, err := ss.Role().GetByName(d1.DefaultTeamAdminRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, role7.DeleteAt) assert.NotZero(t, role7.DeleteAt)
role8, err := ss.Role().GetByName(d1.DefaultTeamUserRole) role8, err := ss.Role().GetByName(d1.DefaultTeamUserRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, role8.DeleteAt) assert.NotZero(t, role8.DeleteAt)
role9, err := ss.Role().GetByName(d1.DefaultChannelAdminRole) role9, err := ss.Role().GetByName(d1.DefaultChannelAdminRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, role9.DeleteAt) assert.NotZero(t, role9.DeleteAt)
role10, err := ss.Role().GetByName(d1.DefaultChannelUserRole) role10, err := ss.Role().GetByName(d1.DefaultChannelUserRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, role10.DeleteAt) assert.NotZero(t, role10.DeleteAt)
role11, err := ss.Role().GetByName(d1.DefaultTeamGuestRole) role11, err := ss.Role().GetByName(d1.DefaultTeamGuestRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, role11.DeleteAt) assert.NotZero(t, role11.DeleteAt)
role12, err := ss.Role().GetByName(d1.DefaultChannelGuestRole) role12, err := ss.Role().GetByName(d1.DefaultChannelGuestRole)
assert.Nil(t, err) assert.NoError(t, err)
assert.NotZero(t, role12.DeleteAt) assert.NotZero(t, role12.DeleteAt)
// Try deleting a scheme that does not exist. // Try deleting a scheme that does not exist.
_, err = ss.Scheme().Delete(model.NewId()) _, err = ss.Scheme().Delete(model.NewId())
assert.NotNil(t, err) assert.Error(t, err)
// Try deleting a team scheme that's in use. // Try deleting a team scheme that's in use.
s4 := &model.Scheme{ s4 := &model.Scheme{
@@ -408,7 +408,7 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
Scope: model.SCHEME_SCOPE_TEAM, Scope: model.SCHEME_SCOPE_TEAM,
} }
d4, err := ss.Scheme().Save(s4) d4, err := ss.Scheme().Save(s4)
assert.Nil(t, err) assert.NoError(t, err)
t4 := &model.Team{ t4 := &model.Team{
Name: "xx" + model.NewId(), Name: "xx" + model.NewId(),
@@ -418,13 +418,13 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
SchemeId: &d4.Id, SchemeId: &d4.Id,
} }
t4, err = ss.Team().Save(t4) t4, err = ss.Team().Save(t4)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Scheme().Delete(d4.Id) _, err = ss.Scheme().Delete(d4.Id)
assert.Nil(t, err) assert.NoError(t, err)
t5, err := ss.Team().Get(t4.Id) t5, err := ss.Team().Get(t4.Id)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, "", *t5.SchemeId) assert.Equal(t, "", *t5.SchemeId)
// Try deleting a channel scheme that's in use. // Try deleting a channel scheme that's in use.
@@ -435,7 +435,7 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
Scope: model.SCHEME_SCOPE_CHANNEL, Scope: model.SCHEME_SCOPE_CHANNEL,
} }
d5, err := ss.Scheme().Save(s5) d5, err := ss.Scheme().Save(s5)
assert.Nil(t, err) assert.NoError(t, err)
c5 := &model.Channel{ c5 := &model.Channel{
TeamId: model.NewId(), TeamId: model.NewId(),
@@ -445,13 +445,13 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) {
SchemeId: &d5.Id, SchemeId: &d5.Id,
} }
c5, nErr := ss.Channel().Save(c5, -1) c5, nErr := ss.Channel().Save(c5, -1)
assert.Nil(t, nErr) assert.NoError(t, nErr)
_, err = ss.Scheme().Delete(d5.Id) _, err = ss.Scheme().Delete(d5.Id)
assert.Nil(t, err) assert.NoError(t, err)
c6, nErr := ss.Channel().Get(c5.Id, true) c6, nErr := ss.Channel().Get(c5.Id, true)
assert.Nil(t, nErr) assert.NoError(t, nErr)
assert.Equal(t, "", *c6.SchemeId) assert.Equal(t, "", *c6.SchemeId)
} }
@@ -471,32 +471,32 @@ func testSchemeStorePermanentDeleteAll(t *testing.T, ss store.Store) {
} }
s1, err := ss.Scheme().Save(s1) s1, err := ss.Scheme().Save(s1)
require.Nil(t, err) require.NoError(t, err)
s2, err = ss.Scheme().Save(s2) s2, err = ss.Scheme().Save(s2)
require.Nil(t, err) require.NoError(t, err)
err = ss.Scheme().PermanentDeleteAll() err = ss.Scheme().PermanentDeleteAll()
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.Scheme().Get(s1.Id) _, err = ss.Scheme().Get(s1.Id)
assert.NotNil(t, err) assert.Error(t, err)
_, err = ss.Scheme().Get(s2.Id) _, err = ss.Scheme().Get(s2.Id)
assert.NotNil(t, err) assert.Error(t, err)
schemes, err := ss.Scheme().GetAllPage("", 0, 100000) schemes, err := ss.Scheme().GetAllPage("", 0, 100000)
assert.Nil(t, err) assert.NoError(t, err)
assert.Empty(t, schemes) assert.Empty(t, schemes)
} }
func testSchemeStoreCountByScope(t *testing.T, ss store.Store) { func testSchemeStoreCountByScope(t *testing.T, ss store.Store) {
testCounts := func(expectedTeamCount, expectedChannelCount int) { testCounts := func(expectedTeamCount, expectedChannelCount int) {
actualCount, err := ss.Scheme().CountByScope(model.SCHEME_SCOPE_TEAM) actualCount, err := ss.Scheme().CountByScope(model.SCHEME_SCOPE_TEAM)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(expectedTeamCount), actualCount) require.Equal(t, int64(expectedTeamCount), actualCount)
actualCount, err = ss.Scheme().CountByScope(model.SCHEME_SCOPE_CHANNEL) actualCount, err = ss.Scheme().CountByScope(model.SCHEME_SCOPE_CHANNEL)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(expectedChannelCount), actualCount) require.Equal(t, int64(expectedChannelCount), actualCount)
} }
@@ -507,11 +507,11 @@ func testSchemeStoreCountByScope(t *testing.T, ss store.Store) {
Description: model.NewId(), Description: model.NewId(),
Scope: scope, Scope: scope,
}) })
require.Nil(t, err) require.NoError(t, err)
} }
err := ss.Scheme().PermanentDeleteAll() err := ss.Scheme().PermanentDeleteAll()
require.Nil(t, err) require.NoError(t, err)
createScheme(model.SCHEME_SCOPE_CHANNEL) createScheme(model.SCHEME_SCOPE_CHANNEL)
createScheme(model.SCHEME_SCOPE_TEAM) createScheme(model.SCHEME_SCOPE_TEAM)
@@ -532,17 +532,17 @@ func testCountWithoutPermission(t *testing.T, ss store.Store) {
Description: model.NewId(), Description: model.NewId(),
Scope: scope, Scope: scope,
}) })
require.Nil(t, err) require.NoError(t, err)
return scheme return scheme
} }
getRoles := func(scheme *model.Scheme) (channelUser, channelGuest *model.Role) { getRoles := func(scheme *model.Scheme) (channelUser, channelGuest *model.Role) {
var err error var err error
channelUser, err = ss.Role().GetByName(scheme.DefaultChannelUserRole) channelUser, err = ss.Role().GetByName(scheme.DefaultChannelUserRole)
require.Nil(t, err) require.NoError(t, err)
require.NotNil(t, channelUser) require.NotNil(t, channelUser)
channelGuest, err = ss.Role().GetByName(scheme.DefaultChannelGuestRole) channelGuest, err = ss.Role().GetByName(scheme.DefaultChannelGuestRole)
require.Nil(t, err) require.NoError(t, err)
require.NotNil(t, channelGuest) require.NotNil(t, channelGuest)
return return
} }
@@ -573,11 +573,11 @@ func testCountWithoutPermission(t *testing.T, ss store.Store) {
} }
teamUserCount, err := ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeUser) teamUserCount, err := ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeUser)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(0), teamUserCount) require.Equal(t, int64(0), teamUserCount)
teamGuestCount, err := ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeGuest) teamGuestCount, err := ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeGuest)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(0), teamGuestCount) require.Equal(t, int64(0), teamGuestCount)
var tests = []struct { var tests = []struct {
@@ -604,7 +604,7 @@ func testCountWithoutPermission(t *testing.T, ss store.Store) {
roleMatched = true roleMatched = true
role.Permissions = []string{} role.Permissions = []string{}
_, err = ss.Role().Save(role) _, err = ss.Role().Save(role)
require.Nil(t, err) require.NoError(t, err)
} }
} }
require.True(t, roleMatched) require.True(t, roleMatched)
@@ -614,19 +614,19 @@ func testCountWithoutPermission(t *testing.T, ss store.Store) {
removePermission(test.removePermissionFromRole) removePermission(test.removePermissionFromRole)
count, err := ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeUser) count, err := ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeUser)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(test.expectTeamSchemeChannelUserCount), count) require.Equal(t, int64(test.expectTeamSchemeChannelUserCount), count)
count, err = ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeGuest) count, err = ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_TEAM, perm, model.RoleScopeChannel, model.RoleTypeGuest)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(test.expectTeamSchemeChannelGuestCount), count) require.Equal(t, int64(test.expectTeamSchemeChannelGuestCount), count)
count, err = ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_CHANNEL, perm, model.RoleScopeChannel, model.RoleTypeUser) count, err = ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_CHANNEL, perm, model.RoleScopeChannel, model.RoleTypeUser)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(test.expectChannelSchemeChannelUserCount), count) require.Equal(t, int64(test.expectChannelSchemeChannelUserCount), count)
count, err = ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_CHANNEL, perm, model.RoleScopeChannel, model.RoleTypeGuest) count, err = ss.Scheme().CountWithoutPermission(model.SCHEME_SCOPE_CHANNEL, perm, model.RoleScopeChannel, model.RoleTypeGuest)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, int64(test.expectChannelSchemeChannelGuestCount), count) require.Equal(t, int64(test.expectChannelSchemeChannelGuestCount), count)
} }
} }

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

@@ -42,7 +42,7 @@ func testSessionStoreSave(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
_, err := ss.Session().Save(s1) _, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
} }
func testSessionGet(t *testing.T, ss store.Store) { func testSessionGet(t *testing.T, ss store.Store) {
@@ -50,27 +50,27 @@ func testSessionGet(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = s1.UserId s2.UserId = s1.UserId
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
s3.UserId = s1.UserId s3.UserId = s1.UserId
s3.ExpiresAt = 1 s3.ExpiresAt = 1
s3, err = ss.Session().Save(s3) s3, err = ss.Session().Save(s3)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
data, err := ss.Session().GetSessions(s1.UserId) data, err := ss.Session().GetSessions(s1.UserId)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, data, 3, "should match len") require.Len(t, data, 3, "should match len")
} }
@@ -80,7 +80,7 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
s1.ExpiresAt = model.GetMillis() + 10000 s1.ExpiresAt = model.GetMillis() + 10000
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = s1.UserId s2.UserId = s1.UserId
@@ -88,7 +88,7 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
s2.ExpiresAt = model.GetMillis() + 10000 s2.ExpiresAt = model.GetMillis() + 10000
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
s3.UserId = s1.UserId s3.UserId = s1.UserId
@@ -96,10 +96,10 @@ func testSessionGetWithDeviceId(t *testing.T, ss store.Store) {
s3.DeviceId = model.NewId() s3.DeviceId = model.NewId()
s3, err = ss.Session().Save(s3) s3, err = ss.Session().Save(s3)
require.Nil(t, err) require.NoError(t, err)
data, err := ss.Session().GetSessionsWithActiveDeviceIds(s1.UserId) data, err := ss.Session().GetSessionsWithActiveDeviceIds(s1.UserId)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, data, 1, "should match len") require.Len(t, data, 1, "should match len")
} }
@@ -108,17 +108,17 @@ func testSessionRemove(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
removeErr := ss.Session().Remove(s1.Id) removeErr := ss.Session().Remove(s1.Id)
require.Nil(t, removeErr) require.NoError(t, removeErr)
_, err = ss.Session().Get(s1.Id) _, err = ss.Session().Get(s1.Id)
require.NotNil(t, err, "should have been removed") require.Error(t, err, "should have been removed")
} }
func testSessionRemoveAll(t *testing.T, ss store.Store) { func testSessionRemoveAll(t *testing.T, ss store.Store) {
@@ -126,17 +126,17 @@ func testSessionRemoveAll(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
removeErr := ss.Session().RemoveAllSessions() removeErr := ss.Session().RemoveAllSessions()
require.Nil(t, removeErr) require.NoError(t, removeErr)
_, err = ss.Session().Get(s1.Id) _, err = ss.Session().Get(s1.Id)
require.NotNil(t, err, "should have been removed") require.Error(t, err, "should have been removed")
} }
func testSessionRemoveByUser(t *testing.T, ss store.Store) { func testSessionRemoveByUser(t *testing.T, ss store.Store) {
@@ -144,17 +144,17 @@ func testSessionRemoveByUser(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
deleteErr := ss.Session().PermanentDeleteSessionsByUser(s1.UserId) deleteErr := ss.Session().PermanentDeleteSessionsByUser(s1.UserId)
require.Nil(t, deleteErr) require.NoError(t, deleteErr)
_, err = ss.Session().Get(s1.Id) _, err = ss.Session().Get(s1.Id)
require.NotNil(t, err, "should have been removed") require.Error(t, err, "should have been removed")
} }
func testSessionRemoveToken(t *testing.T, ss store.Store) { func testSessionRemoveToken(t *testing.T, ss store.Store) {
@@ -162,20 +162,20 @@ func testSessionRemoveToken(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, session.Id, s1.Id, "should match") require.Equal(t, session.Id, s1.Id, "should match")
removeErr := ss.Session().Remove(s1.Token) removeErr := ss.Session().Remove(s1.Token)
require.Nil(t, removeErr) require.NoError(t, removeErr)
_, err = ss.Session().Get(s1.Id) _, err = ss.Session().Get(s1.Id)
require.NotNil(t, err, "should have been removed") require.Error(t, err, "should have been removed")
data, err := ss.Session().GetSessions(s1.UserId) data, err := ss.Session().GetSessions(s1.UserId)
require.Nil(t, err) require.NoError(t, err)
require.Empty(t, data, "should match len") require.Empty(t, data, "should match len")
} }
@@ -184,19 +184,19 @@ func testSessionUpdateDeviceId(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s1.Id, model.PUSH_NOTIFY_APPLE+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s1.Id, model.PUSH_NOTIFY_APPLE+":1234567890", s1.ExpiresAt)
require.Nil(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = model.NewId() s2.UserId = model.NewId()
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s2.Id, model.PUSH_NOTIFY_APPLE+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s2.Id, model.PUSH_NOTIFY_APPLE+":1234567890", s1.ExpiresAt)
require.Nil(t, err) require.NoError(t, err)
} }
func testSessionUpdateDeviceId2(t *testing.T, ss store.Store) { func testSessionUpdateDeviceId2(t *testing.T, ss store.Store) {
@@ -204,19 +204,19 @@ func testSessionUpdateDeviceId2(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s1.Id, model.PUSH_NOTIFY_APPLE_REACT_NATIVE+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s1.Id, model.PUSH_NOTIFY_APPLE_REACT_NATIVE+":1234567890", s1.ExpiresAt)
require.Nil(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = model.NewId() s2.UserId = model.NewId()
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Session().UpdateDeviceId(s2.Id, model.PUSH_NOTIFY_APPLE_REACT_NATIVE+":1234567890", s1.ExpiresAt) _, err = ss.Session().UpdateDeviceId(s2.Id, model.PUSH_NOTIFY_APPLE_REACT_NATIVE+":1234567890", s1.ExpiresAt)
require.Nil(t, err) require.NoError(t, err)
} }
func testSessionStoreUpdateExpiresAt(t *testing.T, ss store.Store) { func testSessionStoreUpdateExpiresAt(t *testing.T, ss store.Store) {
@@ -224,13 +224,13 @@ func testSessionStoreUpdateExpiresAt(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
err = ss.Session().UpdateExpiresAt(s1.Id, 1234567890) err = ss.Session().UpdateExpiresAt(s1.Id, 1234567890)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.EqualValues(t, session.ExpiresAt, 1234567890, "ExpiresAt not updated correctly") require.EqualValues(t, session.ExpiresAt, 1234567890, "ExpiresAt not updated correctly")
} }
@@ -239,13 +239,13 @@ func testSessionStoreUpdateLastActivityAt(t *testing.T, ss store.Store) {
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
err = ss.Session().UpdateLastActivityAt(s1.Id, 1234567890) err = ss.Session().UpdateLastActivityAt(s1.Id, 1234567890)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.EqualValues(t, session.LastActivityAt, 1234567890, "LastActivityAt not updated correctly") require.EqualValues(t, session.LastActivityAt, 1234567890, "LastActivityAt not updated correctly")
} }
@@ -255,10 +255,10 @@ func testSessionCount(t *testing.T, ss store.Store) {
s1.ExpiresAt = model.GetMillis() + 100000 s1.ExpiresAt = model.GetMillis() + 100000
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
count, err := ss.Session().AnalyticsSessionCount() count, err := ss.Session().AnalyticsSessionCount()
require.Nil(t, err) require.NoError(t, err)
require.NotZero(t, count, "should have at least 1 session") require.NotZero(t, count, "should have at least 1 session")
} }
@@ -270,48 +270,48 @@ func testSessionCleanup(t *testing.T, ss store.Store) {
s1.ExpiresAt = 0 // never expires s1.ExpiresAt = 0 // never expires
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = s1.UserId s2.UserId = s1.UserId
s2.ExpiresAt = now + 1000000 // expires in the future s2.ExpiresAt = now + 1000000 // expires in the future
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
s3.UserId = model.NewId() s3.UserId = model.NewId()
s3.ExpiresAt = 1 // expired s3.ExpiresAt = 1 // expired
s3, err = ss.Session().Save(s3) s3, err = ss.Session().Save(s3)
require.Nil(t, err) require.NoError(t, err)
s4 := &model.Session{} s4 := &model.Session{}
s4.UserId = model.NewId() s4.UserId = model.NewId()
s4.ExpiresAt = 2 // expired s4.ExpiresAt = 2 // expired
s4, err = ss.Session().Save(s4) s4, err = ss.Session().Save(s4)
require.Nil(t, err) require.NoError(t, err)
ss.Session().Cleanup(now, 1) ss.Session().Cleanup(now, 1)
_, err = ss.Session().Get(s1.Id) _, err = ss.Session().Get(s1.Id)
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.Session().Get(s2.Id) _, err = ss.Session().Get(s2.Id)
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.Session().Get(s3.Id) _, err = ss.Session().Get(s3.Id)
assert.NotNil(t, err) assert.Error(t, err)
_, err = ss.Session().Get(s4.Id) _, err = ss.Session().Get(s4.Id)
assert.NotNil(t, err) assert.Error(t, err)
removeErr := ss.Session().Remove(s1.Id) removeErr := ss.Session().Remove(s1.Id)
require.Nil(t, removeErr) require.NoError(t, removeErr)
removeErr = ss.Session().Remove(s2.Id) removeErr = ss.Session().Remove(s2.Id)
require.Nil(t, removeErr) require.NoError(t, removeErr)
} }
func testGetSessionsExpired(t *testing.T, ss store.Store) { func testGetSessionsExpired(t *testing.T, ss store.Store) {
@@ -319,49 +319,49 @@ func testGetSessionsExpired(t *testing.T, ss store.Store) {
// Clear existing sessions. // Clear existing sessions.
err := ss.Session().RemoveAllSessions() err := ss.Session().RemoveAllSessions()
require.Nil(t, err) require.NoError(t, err)
s1 := &model.Session{} s1 := &model.Session{}
s1.UserId = model.NewId() s1.UserId = model.NewId()
s1.DeviceId = model.NewId() s1.DeviceId = model.NewId()
s1.ExpiresAt = 0 // never expires s1.ExpiresAt = 0 // never expires
s1, err = ss.Session().Save(s1) s1, err = ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = model.NewId() s2.UserId = model.NewId()
s2.DeviceId = model.NewId() s2.DeviceId = model.NewId()
s2.ExpiresAt = now - TenMinutes // expired within threshold s2.ExpiresAt = now - TenMinutes // expired within threshold
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
s3 := &model.Session{} s3 := &model.Session{}
s3.UserId = model.NewId() s3.UserId = model.NewId()
s3.DeviceId = model.NewId() s3.DeviceId = model.NewId()
s3.ExpiresAt = now - (TenMinutes * 100) // expired outside threshold s3.ExpiresAt = now - (TenMinutes * 100) // expired outside threshold
s3, err = ss.Session().Save(s3) s3, err = ss.Session().Save(s3)
require.Nil(t, err) require.NoError(t, err)
s4 := &model.Session{} s4 := &model.Session{}
s4.UserId = model.NewId() s4.UserId = model.NewId()
s4.ExpiresAt = now - TenMinutes // expired within threshold, but not mobile s4.ExpiresAt = now - TenMinutes // expired within threshold, but not mobile
s4, err = ss.Session().Save(s4) s4, err = ss.Session().Save(s4)
require.Nil(t, err) require.NoError(t, err)
s5 := &model.Session{} s5 := &model.Session{}
s5.UserId = model.NewId() s5.UserId = model.NewId()
s5.DeviceId = model.NewId() s5.DeviceId = model.NewId()
s5.ExpiresAt = now + (TenMinutes * 100000) // not expired s5.ExpiresAt = now + (TenMinutes * 100000) // not expired
s5, err = ss.Session().Save(s5) s5, err = ss.Session().Save(s5)
require.Nil(t, err) require.NoError(t, err)
sessions, err := ss.Session().GetSessionsExpired(TenMinutes*2, true, true) // mobile only sessions, err := ss.Session().GetSessionsExpired(TenMinutes*2, true, true) // mobile only
require.Nil(t, err) require.NoError(t, err)
require.Len(t, sessions, 1) require.Len(t, sessions, 1)
require.Equal(t, s2.Id, sessions[0].Id) require.Equal(t, s2.Id, sessions[0].Id)
sessions, err = ss.Session().GetSessionsExpired(TenMinutes*2, false, true) // all client types sessions, err = ss.Session().GetSessionsExpired(TenMinutes*2, false, true) // all client types
require.Nil(t, err) require.NoError(t, err)
require.Len(t, sessions, 2) require.Len(t, sessions, 2)
expected := []string{s2.Id, s4.Id} expected := []string{s2.Id, s4.Id}
for _, sess := range sessions { for _, sess := range sessions {
@@ -375,21 +375,21 @@ func testUpdateExpiredNotify(t *testing.T, ss store.Store) {
s1.DeviceId = model.NewId() s1.DeviceId = model.NewId()
s1.ExpiresAt = model.GetMillis() + TenMinutes s1.ExpiresAt = model.GetMillis() + TenMinutes
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
session, err := ss.Session().Get(s1.Id) session, err := ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.False(t, session.ExpiredNotify) require.False(t, session.ExpiredNotify)
err = ss.Session().UpdateExpiredNotify(session.Id, true) err = ss.Session().UpdateExpiredNotify(session.Id, true)
require.Nil(t, err) require.NoError(t, err)
session, err = ss.Session().Get(s1.Id) session, err = ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.True(t, session.ExpiredNotify) require.True(t, session.ExpiredNotify)
err = ss.Session().UpdateExpiredNotify(session.Id, false) err = ss.Session().UpdateExpiredNotify(session.Id, false)
require.Nil(t, err) require.NoError(t, err)
session, err = ss.Session().Get(s1.Id) session, err = ss.Session().Get(s1.Id)
require.Nil(t, err) require.NoError(t, err)
require.False(t, session.ExpiredNotify) require.False(t, session.ExpiredNotify)
} }

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

@@ -19,40 +19,40 @@ func TestStatusStore(t *testing.T, ss store.Store) {
func testStatusStore(t *testing.T, ss store.Store) { func testStatusStore(t *testing.T, ss store.Store) {
status := &model.Status{UserId: model.NewId(), Status: model.STATUS_ONLINE, Manual: false, LastActivityAt: 0, ActiveChannel: ""} status := &model.Status{UserId: model.NewId(), Status: model.STATUS_ONLINE, Manual: false, LastActivityAt: 0, ActiveChannel: ""}
require.Nil(t, ss.Status().SaveOrUpdate(status)) require.NoError(t, ss.Status().SaveOrUpdate(status))
status.LastActivityAt = 10 status.LastActivityAt = 10
_, err := ss.Status().Get(status.UserId) _, err := ss.Status().Get(status.UserId)
require.Nil(t, err) require.NoError(t, err)
status2 := &model.Status{UserId: model.NewId(), Status: model.STATUS_AWAY, Manual: false, LastActivityAt: 0, ActiveChannel: ""} status2 := &model.Status{UserId: model.NewId(), Status: model.STATUS_AWAY, Manual: false, LastActivityAt: 0, ActiveChannel: ""}
require.Nil(t, ss.Status().SaveOrUpdate(status2)) require.NoError(t, ss.Status().SaveOrUpdate(status2))
status3 := &model.Status{UserId: model.NewId(), Status: model.STATUS_OFFLINE, Manual: false, LastActivityAt: 0, ActiveChannel: ""} status3 := &model.Status{UserId: model.NewId(), Status: model.STATUS_OFFLINE, Manual: false, LastActivityAt: 0, ActiveChannel: ""}
require.Nil(t, ss.Status().SaveOrUpdate(status3)) require.NoError(t, ss.Status().SaveOrUpdate(status3))
statuses, err := ss.Status().GetByIds([]string{status.UserId, "junk"}) statuses, err := ss.Status().GetByIds([]string{status.UserId, "junk"})
require.Nil(t, err) require.NoError(t, err)
require.Len(t, statuses, 1, "should only have 1 status") require.Len(t, statuses, 1, "should only have 1 status")
err = ss.Status().ResetAll() err = ss.Status().ResetAll()
require.Nil(t, err) require.NoError(t, err)
statusParameter, err := ss.Status().Get(status.UserId) statusParameter, err := ss.Status().Get(status.UserId)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, statusParameter.Status, model.STATUS_OFFLINE, "should be offline") require.Equal(t, statusParameter.Status, model.STATUS_OFFLINE, "should be offline")
err = ss.Status().UpdateLastActivityAt(status.UserId, 10) err = ss.Status().UpdateLastActivityAt(status.UserId, 10)
require.Nil(t, err) require.NoError(t, err)
} }
func testActiveUserCount(t *testing.T, ss store.Store) { func testActiveUserCount(t *testing.T, ss store.Store) {
status := &model.Status{UserId: model.NewId(), Status: model.STATUS_ONLINE, Manual: false, LastActivityAt: model.GetMillis(), ActiveChannel: ""} status := &model.Status{UserId: model.NewId(), Status: model.STATUS_ONLINE, Manual: false, LastActivityAt: model.GetMillis(), ActiveChannel: ""}
require.Nil(t, ss.Status().SaveOrUpdate(status)) require.NoError(t, ss.Status().SaveOrUpdate(status))
count, err := ss.Status().GetTotalActiveUsersCount() count, err := ss.Status().GetTotalActiveUsersCount()
require.Nil(t, err) require.NoError(t, err)
require.True(t, count > 0, "expected count > 0, got %d", count) require.True(t, count > 0, "expected count > 0, got %d", count)
} }

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

@@ -27,7 +27,7 @@ func TestSystemStore(t *testing.T, ss store.Store) {
func testSystemStore(t *testing.T, ss store.Store) { func testSystemStore(t *testing.T, ss store.Store) {
system := &model.System{Name: model.NewId(), Value: "value"} system := &model.System{Name: model.NewId(), Value: "value"}
err := ss.System().Save(system) err := ss.System().Save(system)
require.Nil(t, err) require.NoError(t, err)
systems, _ := ss.System().Get() systems, _ := ss.System().Get()
@@ -35,7 +35,7 @@ func testSystemStore(t *testing.T, ss store.Store) {
system.Value = "value2" system.Value = "value2"
err = ss.System().Update(system) err = ss.System().Update(system)
require.Nil(t, err) require.NoError(t, err)
systems2, _ := ss.System().Get() systems2, _ := ss.System().Get()
require.Equal(t, system.Value, systems2[system.Name]) require.Equal(t, system.Value, systems2[system.Name])
@@ -48,38 +48,38 @@ func testSystemStoreSaveOrUpdate(t *testing.T, ss store.Store) {
system := &model.System{Name: model.NewId(), Value: "value"} system := &model.System{Name: model.NewId(), Value: "value"}
err := ss.System().SaveOrUpdate(system) err := ss.System().SaveOrUpdate(system)
require.Nil(t, err) require.NoError(t, err)
system.Value = "value2" system.Value = "value2"
err = ss.System().SaveOrUpdate(system) err = ss.System().SaveOrUpdate(system)
require.Nil(t, err) require.NoError(t, err)
} }
func testSystemStoreSaveOrUpdateWithWarnMetricHandling(t *testing.T, ss store.Store) { func testSystemStoreSaveOrUpdateWithWarnMetricHandling(t *testing.T, ss store.Store) {
system := &model.System{Name: model.NewId(), Value: "value"} system := &model.System{Name: model.NewId(), Value: "value"}
err := ss.System().SaveOrUpdateWithWarnMetricHandling(system) err := ss.System().SaveOrUpdateWithWarnMetricHandling(system)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.System().GetByName(model.SYSTEM_WARN_METRIC_LAST_RUN_TIMESTAMP_KEY) _, err = ss.System().GetByName(model.SYSTEM_WARN_METRIC_LAST_RUN_TIMESTAMP_KEY)
assert.NotNil(t, err) assert.Error(t, err)
system.Name = "warn_metric_number_of_active_users_100" system.Name = "warn_metric_number_of_active_users_100"
system.Value = model.WARN_METRIC_STATUS_RUNONCE system.Value = model.WARN_METRIC_STATUS_RUNONCE
err = ss.System().SaveOrUpdateWithWarnMetricHandling(system) err = ss.System().SaveOrUpdateWithWarnMetricHandling(system)
require.Nil(t, err) require.NoError(t, err)
val1, nerr := ss.System().GetByName(model.SYSTEM_WARN_METRIC_LAST_RUN_TIMESTAMP_KEY) val1, nerr := ss.System().GetByName(model.SYSTEM_WARN_METRIC_LAST_RUN_TIMESTAMP_KEY)
assert.Nil(t, nerr) assert.NoError(t, nerr)
system.Name = "warn_metric_number_of_active_users_100" system.Name = "warn_metric_number_of_active_users_100"
system.Value = model.WARN_METRIC_STATUS_ACK system.Value = model.WARN_METRIC_STATUS_ACK
err = ss.System().SaveOrUpdateWithWarnMetricHandling(system) err = ss.System().SaveOrUpdateWithWarnMetricHandling(system)
require.Nil(t, err) require.NoError(t, err)
val2, nerr := ss.System().GetByName(model.SYSTEM_WARN_METRIC_LAST_RUN_TIMESTAMP_KEY) val2, nerr := ss.System().GetByName(model.SYSTEM_WARN_METRIC_LAST_RUN_TIMESTAMP_KEY)
assert.Nil(t, nerr) assert.NoError(t, nerr)
assert.Equal(t, val1, val2) assert.Equal(t, val1, val2)
} }
@@ -88,33 +88,33 @@ func testSystemStorePermanentDeleteByName(t *testing.T, ss store.Store) {
s2 := &model.System{Name: model.NewId(), Value: "value"} s2 := &model.System{Name: model.NewId(), Value: "value"}
err := ss.System().Save(s1) err := ss.System().Save(s1)
require.Nil(t, err) require.NoError(t, err)
err = ss.System().Save(s2) err = ss.System().Save(s2)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.System().GetByName(s1.Name) _, err = ss.System().GetByName(s1.Name)
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.System().GetByName(s2.Name) _, err = ss.System().GetByName(s2.Name)
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.System().PermanentDeleteByName(s1.Name) _, err = ss.System().PermanentDeleteByName(s1.Name)
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.System().GetByName(s1.Name) _, err = ss.System().GetByName(s1.Name)
assert.NotNil(t, err) assert.Error(t, err)
_, err = ss.System().GetByName(s2.Name) _, err = ss.System().GetByName(s2.Name)
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.System().PermanentDeleteByName(s2.Name) _, err = ss.System().PermanentDeleteByName(s2.Name)
assert.Nil(t, err) assert.NoError(t, err)
_, err = ss.System().GetByName(s1.Name) _, err = ss.System().GetByName(s1.Name)
assert.NotNil(t, err) assert.Error(t, err)
_, err = ss.System().GetByName(s2.Name) _, err = ss.System().GetByName(s2.Name)
assert.NotNil(t, err) assert.Error(t, err)
} }
func testInsertIfExists(t *testing.T, ss store.Store) { func testInsertIfExists(t *testing.T, ss store.Store) {
@@ -122,13 +122,13 @@ func testInsertIfExists(t *testing.T, ss store.Store) {
s1 := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "somekey"} s1 := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "somekey"}
s2, err := ss.System().InsertIfExists(s1) s2, err := ss.System().InsertIfExists(s1)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, s1.Value, s2.Value) assert.Equal(t, s1.Value, s2.Value)
s1New := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "anotherKey"} s1New := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "anotherKey"}
s3, err := ss.System().InsertIfExists(s1New) s3, err := ss.System().InsertIfExists(s1New)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, s1.Value, s3.Value) assert.Equal(t, s1.Value, s3.Value)
}) })
@@ -141,7 +141,7 @@ func testInsertIfExists(t *testing.T, ss store.Store) {
s1 := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "firstKey"} s1 := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "firstKey"}
var err error var err error
s2, err = ss.System().InsertIfExists(s1) s2, err = ss.System().InsertIfExists(s1)
require.Nil(t, err) require.NoError(t, err)
}() }()
go func() { go func() {
@@ -149,7 +149,7 @@ func testInsertIfExists(t *testing.T, ss store.Store) {
s1 := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "secondKey"} s1 := &model.System{Name: model.SYSTEM_CLUSTER_ENCRYPTION_KEY, Value: "secondKey"}
var err error var err error
s3, err = ss.System().InsertIfExists(s1) s3, err = ss.System().InsertIfExists(s1)
require.Nil(t, err) require.NoError(t, err)
}() }()
wg.Wait() wg.Wait()
assert.Equal(t, s2.Value, s3.Value) assert.Equal(t, s2.Value, s3.Value)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -36,12 +36,12 @@ func testSaveTermsOfService(t *testing.T, ss store.Store) {
u1.Username = model.NewId() u1.Username = model.NewId()
u1.Email = MakeEmail() u1.Email = MakeEmail()
u1.Nickname = model.NewId() u1.Nickname = model.NewId()
_, appErr := ss.User().Save(&u1) _, err := ss.User().Save(&u1)
require.Nil(t, appErr) require.NoError(t, err)
termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id} termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id}
savedTermsOfService, err := ss.TermsOfService().Save(termsOfService) savedTermsOfService, err := ss.TermsOfService().Save(termsOfService)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, savedTermsOfService.Id, 26, "Id should have been populated") require.Len(t, savedTermsOfService.Id, 26, "Id should have been populated")
@@ -55,15 +55,15 @@ func testGetLatestTermsOfService(t *testing.T, ss store.Store) {
u1.Username = model.NewId() u1.Username = model.NewId()
u1.Email = MakeEmail() u1.Email = MakeEmail()
u1.Nickname = model.NewId() u1.Nickname = model.NewId()
_, appErr := ss.User().Save(&u1) _, err := ss.User().Save(&u1)
require.Nil(t, appErr) require.NoError(t, err)
termsOfService := &model.TermsOfService{Text: "terms of service 2", UserId: u1.Id} termsOfService := &model.TermsOfService{Text: "terms of service 2", UserId: u1.Id}
_, err := ss.TermsOfService().Save(termsOfService) _, err = ss.TermsOfService().Save(termsOfService)
require.Nil(t, err) require.NoError(t, err)
fetchedTermsOfService, err := ss.TermsOfService().GetLatest(true) fetchedTermsOfService, err := ss.TermsOfService().GetLatest(true)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, termsOfService.Text, fetchedTermsOfService.Text) assert.Equal(t, termsOfService.Text, fetchedTermsOfService.Text)
assert.Equal(t, termsOfService.UserId, fetchedTermsOfService.UserId) assert.Equal(t, termsOfService.UserId, fetchedTermsOfService.UserId)
} }
@@ -75,18 +75,18 @@ func testGetTermsOfService(t *testing.T, ss store.Store) {
u1.Username = model.NewId() u1.Username = model.NewId()
u1.Email = MakeEmail() u1.Email = MakeEmail()
u1.Nickname = model.NewId() u1.Nickname = model.NewId()
_, appErr := ss.User().Save(&u1) _, err := ss.User().Save(&u1)
require.Nil(t, appErr) require.NoError(t, err)
termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id} termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id}
_, err := ss.TermsOfService().Save(termsOfService) _, err = ss.TermsOfService().Save(termsOfService)
require.Nil(t, err) require.NoError(t, err)
r1, err := ss.TermsOfService().Get("an_invalid_id", true) r1, err := ss.TermsOfService().Get("an_invalid_id", true)
assert.NotNil(t, err) assert.Error(t, err)
assert.Nil(t, r1) assert.Nil(t, r1)
receivedTermsOfService, err := ss.TermsOfService().Get(termsOfService.Id, true) receivedTermsOfService, err := ss.TermsOfService().Get(termsOfService.Id, true)
assert.Nil(t, err) assert.NoError(t, err)
assert.Equal(t, "terms of service", receivedTermsOfService.Text) assert.Equal(t, "terms of service", receivedTermsOfService.Text)
} }

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

@@ -27,7 +27,7 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
} }
u, err := ss.User().Save(&u1) u, err := ss.User().Save(&u1)
require.Nil(t, err) require.NoError(t, err)
c, err2 := ss.Channel().Save(&model.Channel{ c, err2 := ss.Channel().Save(&model.Channel{
DisplayName: model.NewId(), DisplayName: model.NewId(),
@@ -73,7 +73,7 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
o1 := olist.Posts[olist.Order[0]] o1 := olist.Posts[olist.Order[0]]
newPosts = append([]*model.Post{o1}, newPosts...) newPosts = append([]*model.Post{o1}, newPosts...)
require.Nil(t, err3, "couldn't save item") require.NoError(t, err3, "couldn't save item")
require.Equal(t, -1, errIdx) require.Equal(t, -1, errIdx)
require.Len(t, newPosts, 4) require.Len(t, newPosts, 4)
require.Equal(t, int64(2), newPosts[0].ReplyCount) require.Equal(t, int64(2), newPosts[0].ReplyCount)
@@ -86,7 +86,7 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
t.Run("Save replies creates a thread", func(t *testing.T) { t.Run("Save replies creates a thread", func(t *testing.T) {
newPosts := makeSomePosts() newPosts := makeSomePosts()
thread, err := ss.Thread().Get(newPosts[0].Id) thread, err := ss.Thread().Get(newPosts[0].Id)
require.Nil(t, err, "couldn't get thread") require.NoError(t, err, "couldn't get thread")
require.NotNil(t, thread) require.NotNil(t, thread)
require.Equal(t, int64(2), thread.ReplyCount) require.Equal(t, int64(2), thread.ReplyCount)
require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId}, thread.Participants) require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId}, thread.Participants)
@@ -98,10 +98,10 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
o5.Message = "zz" + model.NewId() + "b" o5.Message = "zz" + model.NewId() + "b"
_, _, err = ss.Post().SaveMultiple([]*model.Post{&o5}) _, _, err = ss.Post().SaveMultiple([]*model.Post{&o5})
require.Nil(t, err, "couldn't save item") require.NoError(t, err, "couldn't save item")
thread, err = ss.Thread().Get(newPosts[0].Id) thread, err = ss.Thread().Get(newPosts[0].Id)
require.Nil(t, err, "couldn't get thread") require.NoError(t, err, "couldn't get thread")
require.NotNil(t, thread) require.NotNil(t, thread)
require.Equal(t, int64(3), thread.ReplyCount) require.Equal(t, int64(3), thread.ReplyCount)
require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId, o5.UserId}, thread.Participants) require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId, o5.UserId}, thread.Participants)
@@ -110,16 +110,16 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
t.Run("Delete a reply updates count on a thread", func(t *testing.T) { t.Run("Delete a reply updates count on a thread", func(t *testing.T) {
newPosts := makeSomePosts() newPosts := makeSomePosts()
thread, err := ss.Thread().Get(newPosts[0].Id) thread, err := ss.Thread().Get(newPosts[0].Id)
require.Nil(t, err, "couldn't get thread") require.NoError(t, err, "couldn't get thread")
require.NotNil(t, thread) require.NotNil(t, thread)
require.Equal(t, int64(2), thread.ReplyCount) require.Equal(t, int64(2), thread.ReplyCount)
require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId}, thread.Participants) require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId}, thread.Participants)
err = ss.Post().Delete(newPosts[1].Id, 1234, model.NewId()) err = ss.Post().Delete(newPosts[1].Id, 1234, model.NewId())
require.Nil(t, err, "couldn't delete post") require.NoError(t, err, "couldn't delete post")
thread, err = ss.Thread().Get(newPosts[0].Id) thread, err = ss.Thread().Get(newPosts[0].Id)
require.Nil(t, err, "couldn't get thread") require.NoError(t, err, "couldn't get thread")
require.NotNil(t, thread) require.NotNil(t, thread)
require.Equal(t, int64(1), thread.ReplyCount) require.Equal(t, int64(1), thread.ReplyCount)
require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId}, thread.Participants) require.ElementsMatch(t, model.StringArray{newPosts[0].UserId, newPosts[1].UserId}, thread.Participants)
@@ -139,13 +139,13 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
replyPost.RootId = rootPost.RootId replyPost.RootId = rootPost.RootId
newPosts, _, err := ss.Post().SaveMultiple([]*model.Post{&rootPost, &replyPost}) newPosts, _, err := ss.Post().SaveMultiple([]*model.Post{&rootPost, &replyPost})
require.Nil(t, err) require.NoError(t, err)
thread1, err := ss.Thread().Get(newPosts[0].RootId) thread1, err := ss.Thread().Get(newPosts[0].RootId)
require.Nil(t, err) require.NoError(t, err)
rrootPost, err := ss.Post().GetSingle(rootPost.Id) rrootPost, err := ss.Post().GetSingle(rootPost.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, rrootPost.UpdateAt, rootPost.UpdateAt) require.Equal(t, rrootPost.UpdateAt, rootPost.UpdateAt)
replyPost2 := model.Post{} replyPost2 := model.Post{}
@@ -161,14 +161,14 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
replyPost3.RootId = rootPost.Id replyPost3.RootId = rootPost.Id
_, _, err = ss.Post().SaveMultiple([]*model.Post{&replyPost2, &replyPost3}) _, _, err = ss.Post().SaveMultiple([]*model.Post{&replyPost2, &replyPost3})
require.Nil(t, err) require.NoError(t, err)
rrootPost2, err := ss.Post().GetSingle(rootPost.Id) rrootPost2, err := ss.Post().GetSingle(rootPost.Id)
require.Nil(t, err) require.NoError(t, err)
require.Greater(t, rrootPost2.UpdateAt, rrootPost.UpdateAt) require.Greater(t, rrootPost2.UpdateAt, rrootPost.UpdateAt)
thread2, err := ss.Thread().Get(rootPost.Id) thread2, err := ss.Thread().Get(rootPost.Id)
require.Nil(t, err) require.NoError(t, err)
require.Greater(t, thread2.LastReplyAt, thread1.LastReplyAt) require.Greater(t, thread2.LastReplyAt, thread1.LastReplyAt)
}) })
@@ -186,18 +186,18 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
replyPost.RootId = rootPost.RootId replyPost.RootId = rootPost.RootId
newPosts, _, err := ss.Post().SaveMultiple([]*model.Post{&rootPost, &replyPost}) newPosts, _, err := ss.Post().SaveMultiple([]*model.Post{&rootPost, &replyPost})
require.Nil(t, err) require.NoError(t, err)
thread1, err := ss.Thread().Get(newPosts[0].RootId) thread1, err := ss.Thread().Get(newPosts[0].RootId)
require.Nil(t, err) require.NoError(t, err)
require.EqualValues(t, thread1.ReplyCount, 2) require.EqualValues(t, thread1.ReplyCount, 2)
require.Len(t, thread1.Participants, 2) require.Len(t, thread1.Participants, 2)
err = ss.Post().Delete(replyPost.Id, 123, model.NewId()) err = ss.Post().Delete(replyPost.Id, 123, model.NewId())
require.Nil(t, err) require.NoError(t, err)
thread2, err := ss.Thread().Get(rootPost.RootId) thread2, err := ss.Thread().Get(rootPost.RootId)
require.Nil(t, err) require.NoError(t, err)
require.EqualValues(t, thread2.ReplyCount, 1) require.EqualValues(t, thread2.ReplyCount, 1)
require.Len(t, thread2.Participants, 2) require.Len(t, thread2.Participants, 2)
}) })
@@ -209,7 +209,7 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
rootPost.Message = "zz" + model.NewId() + "b" rootPost.Message = "zz" + model.NewId() + "b"
newPosts1, _, err := ss.Post().SaveMultiple([]*model.Post{&rootPost}) newPosts1, _, err := ss.Post().SaveMultiple([]*model.Post{&rootPost})
require.Nil(t, err) require.NoError(t, err)
replyPost := model.Post{} replyPost := model.Post{}
replyPost.ChannelId = rootPost.ChannelId replyPost.ChannelId = rootPost.ChannelId
@@ -218,15 +218,15 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
replyPost.RootId = newPosts1[0].Id replyPost.RootId = newPosts1[0].Id
_, _, err = ss.Post().SaveMultiple([]*model.Post{&replyPost}) _, _, err = ss.Post().SaveMultiple([]*model.Post{&replyPost})
require.Nil(t, err) require.NoError(t, err)
thread1, err := ss.Thread().Get(newPosts1[0].Id) thread1, err := ss.Thread().Get(newPosts1[0].Id)
require.Nil(t, err) require.NoError(t, err)
require.EqualValues(t, thread1.ReplyCount, 1) require.EqualValues(t, thread1.ReplyCount, 1)
require.Len(t, thread1.Participants, 2) require.Len(t, thread1.Participants, 2)
err = ss.Post().PermanentDeleteByUser(rootPost.UserId) err = ss.Post().PermanentDeleteByUser(rootPost.UserId)
require.Nil(t, err) require.NoError(t, err)
thread2, _ := ss.Thread().Get(rootPost.Id) thread2, _ := ss.Thread().Get(rootPost.Id)
require.Nil(t, thread2) require.Nil(t, thread2)
@@ -235,19 +235,19 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
t.Run("Thread last updated is changed when channel is updated after UpdateLastViewedAtPost", func(t *testing.T) { t.Run("Thread last updated is changed when channel is updated after UpdateLastViewedAtPost", func(t *testing.T) {
newPosts := makeSomePosts() newPosts := makeSomePosts()
require.Nil(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true)) require.NoError(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true))
m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err1) require.NoError(t, err1)
m.LastUpdated -= 1000 m.LastUpdated -= 1000
_, err := ss.Thread().UpdateMembership(m) _, err := ss.Thread().UpdateMembership(m)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Channel().UpdateLastViewedAtPost(newPosts[0], newPosts[0].UserId, 0, true) _, err = ss.Channel().UpdateLastViewedAtPost(newPosts[0], newPosts[0].UserId, 0, true)
require.Nil(t, err) require.NoError(t, err)
assert.Eventually(t, func() bool { assert.Eventually(t, func() bool {
m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err2) require.NoError(t, err2)
return m2.LastUpdated > m.LastUpdated return m2.LastUpdated > m.LastUpdated
}, time.Second, 10*time.Millisecond) }, time.Second, 10*time.Millisecond)
}) })
@@ -255,19 +255,19 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
t.Run("Thread last updated is changed when channel is updated after IncrementMentionCount", func(t *testing.T) { t.Run("Thread last updated is changed when channel is updated after IncrementMentionCount", func(t *testing.T) {
newPosts := makeSomePosts() newPosts := makeSomePosts()
require.Nil(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true)) require.NoError(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true))
m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err1) require.NoError(t, err1)
m.LastUpdated -= 1000 m.LastUpdated -= 1000
_, err := ss.Thread().UpdateMembership(m) _, err := ss.Thread().UpdateMembership(m)
require.Nil(t, err) require.NoError(t, err)
err = ss.Channel().IncrementMentionCount(newPosts[0].ChannelId, newPosts[0].UserId, true) err = ss.Channel().IncrementMentionCount(newPosts[0].ChannelId, newPosts[0].UserId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Eventually(t, func() bool { assert.Eventually(t, func() bool {
m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err2) require.NoError(t, err2)
return m2.LastUpdated > m.LastUpdated return m2.LastUpdated > m.LastUpdated
}, time.Second, 10*time.Millisecond) }, time.Second, 10*time.Millisecond)
}) })
@@ -275,19 +275,19 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
t.Run("Thread last updated is changed when channel is updated after UpdateLastViewedAt", func(t *testing.T) { t.Run("Thread last updated is changed when channel is updated after UpdateLastViewedAt", func(t *testing.T) {
newPosts := makeSomePosts() newPosts := makeSomePosts()
require.Nil(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true)) require.NoError(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true))
m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err1) require.NoError(t, err1)
m.LastUpdated -= 1000 m.LastUpdated -= 1000
_, err := ss.Thread().UpdateMembership(m) _, err := ss.Thread().UpdateMembership(m)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Channel().UpdateLastViewedAt([]string{newPosts[0].ChannelId}, newPosts[0].UserId, true) _, err = ss.Channel().UpdateLastViewedAt([]string{newPosts[0].ChannelId}, newPosts[0].UserId, true)
require.Nil(t, err) require.NoError(t, err)
assert.Eventually(t, func() bool { assert.Eventually(t, func() bool {
m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err2) require.NoError(t, err2)
return m2.LastUpdated > m.LastUpdated return m2.LastUpdated > m.LastUpdated
}, time.Second, 10*time.Millisecond) }, time.Second, 10*time.Millisecond)
}) })
@@ -295,19 +295,19 @@ func testThreadStorePopulation(t *testing.T, ss store.Store) {
t.Run("Thread last updated is changed when channel is updated after UpdateLastViewedAtPost for mark unread", func(t *testing.T) { t.Run("Thread last updated is changed when channel is updated after UpdateLastViewedAtPost for mark unread", func(t *testing.T) {
newPosts := makeSomePosts() newPosts := makeSomePosts()
require.Nil(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true)) require.NoError(t, ss.Thread().CreateMembershipIfNeeded(newPosts[0].UserId, newPosts[0].Id, true, false, true))
m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m, err1 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err1) require.NoError(t, err1)
m.LastUpdated += 1000 m.LastUpdated += 1000
_, err := ss.Thread().UpdateMembership(m) _, err := ss.Thread().UpdateMembership(m)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Channel().UpdateLastViewedAtPost(newPosts[0], newPosts[0].UserId, 0, true) _, err = ss.Channel().UpdateLastViewedAtPost(newPosts[0], newPosts[0].UserId, 0, true)
require.Nil(t, err) require.NoError(t, err)
assert.Eventually(t, func() bool { assert.Eventually(t, func() bool {
m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id) m2, err2 := ss.Thread().GetMembershipForUser(newPosts[0].UserId, newPosts[0].Id)
require.Nil(t, err2) require.NoError(t, err2)
return m2.LastUpdated < m.LastUpdated return m2.LastUpdated < m.LastUpdated
}, time.Second, 10*time.Millisecond) }, time.Second, 10*time.Millisecond)
}) })

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

@@ -30,57 +30,57 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
s1.Token = uat.Token s1.Token = uat.Token
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.UserAccessToken().Save(uat) _, nErr := ss.UserAccessToken().Save(uat)
require.Nil(t, nErr) require.NoError(t, nErr)
result, terr := ss.UserAccessToken().Get(uat.Id) result, terr := ss.UserAccessToken().Get(uat.Id)
require.Nil(t, terr) require.NoError(t, terr)
require.Equal(t, result.Token, uat.Token, "received incorrect token after save") require.Equal(t, result.Token, uat.Token, "received incorrect token after save")
received, err2 := ss.UserAccessToken().GetByToken(uat.Token) received, err2 := ss.UserAccessToken().GetByToken(uat.Token)
require.Nil(t, err2) require.NoError(t, err2)
require.Equal(t, received.Token, uat.Token, "received incorrect token after save") require.Equal(t, received.Token, uat.Token, "received incorrect token after save")
_, nErr = ss.UserAccessToken().GetByToken("notarealtoken") _, nErr = ss.UserAccessToken().GetByToken("notarealtoken")
require.NotNil(t, nErr, "should have failed on bad token") require.Error(t, nErr, "should have failed on bad token")
received2, err2 := ss.UserAccessToken().GetByUser(uat.UserId, 0, 100) received2, err2 := ss.UserAccessToken().GetByUser(uat.UserId, 0, 100)
require.Nil(t, err2) require.NoError(t, err2)
require.Equal(t, 1, len(received2), "received incorrect number of tokens after save") require.Equal(t, 1, len(received2), "received incorrect number of tokens after save")
result2, appError := ss.UserAccessToken().GetAll(0, 100) result2, err := ss.UserAccessToken().GetAll(0, 100)
require.Nil(t, appError) require.NoError(t, err)
require.Equal(t, 1, len(result2), "received incorrect number of tokens after save") require.Equal(t, 1, len(result2), "received incorrect number of tokens after save")
nErr = ss.UserAccessToken().Delete(uat.Id) nErr = ss.UserAccessToken().Delete(uat.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
_, err = ss.Session().Get(s1.Token) _, err = ss.Session().Get(s1.Token)
require.NotNil(t, err, "should error - session should be deleted") require.Error(t, err, "should error - session should be deleted")
_, nErr = ss.UserAccessToken().GetByToken(s1.Token) _, nErr = ss.UserAccessToken().GetByToken(s1.Token)
require.NotNil(t, nErr, "should error - access token should be deleted") require.Error(t, nErr, "should error - access token should be deleted")
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = uat.UserId s2.UserId = uat.UserId
s2.Token = uat.Token s2.Token = uat.Token
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
_, nErr = ss.UserAccessToken().Save(uat) _, nErr = ss.UserAccessToken().Save(uat)
require.Nil(t, nErr) require.NoError(t, nErr)
nErr = ss.UserAccessToken().DeleteAllForUser(uat.UserId) nErr = ss.UserAccessToken().DeleteAllForUser(uat.UserId)
require.Nil(t, nErr) require.NoError(t, nErr)
_, err = ss.Session().Get(s2.Token) _, err = ss.Session().Get(s2.Token)
require.NotNil(t, err, "should error - session should be deleted") require.Error(t, err, "should error - session should be deleted")
_, nErr = ss.UserAccessToken().GetByToken(s2.Token) _, nErr = ss.UserAccessToken().GetByToken(s2.Token)
require.NotNil(t, nErr, "should error - access token should be deleted") require.Error(t, nErr, "should error - access token should be deleted")
} }
func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) { func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
@@ -95,26 +95,26 @@ func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) {
s1.Token = uat.Token s1.Token = uat.Token
s1, err := ss.Session().Save(s1) s1, err := ss.Session().Save(s1)
require.Nil(t, err) require.NoError(t, err)
_, nErr := ss.UserAccessToken().Save(uat) _, nErr := ss.UserAccessToken().Save(uat)
require.Nil(t, nErr) require.NoError(t, nErr)
nErr = ss.UserAccessToken().UpdateTokenDisable(uat.Id) nErr = ss.UserAccessToken().UpdateTokenDisable(uat.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
_, err = ss.Session().Get(s1.Token) _, err = ss.Session().Get(s1.Token)
require.NotNil(t, err, "should error - session should be deleted") require.Error(t, err, "should error - session should be deleted")
s2 := &model.Session{} s2 := &model.Session{}
s2.UserId = uat.UserId s2.UserId = uat.UserId
s2.Token = uat.Token s2.Token = uat.Token
s2, err = ss.Session().Save(s2) s2, err = ss.Session().Save(s2)
require.Nil(t, err) require.NoError(t, err)
nErr = ss.UserAccessToken().UpdateTokenEnable(uat.Id) nErr = ss.UserAccessToken().UpdateTokenEnable(uat.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
} }
func testUserAccessTokenSearch(t *testing.T, ss store.Store) { func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
@@ -123,7 +123,7 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
u1.Username = model.NewId() u1.Username = model.NewId()
_, err := ss.User().Save(&u1) _, err := ss.User().Save(&u1)
require.Nil(t, err) require.NoError(t, err)
uat := &model.UserAccessToken{ uat := &model.UserAccessToken{
Token: model.NewId(), Token: model.NewId(),
@@ -136,21 +136,21 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
s1.Token = uat.Token s1.Token = uat.Token
s1, nErr := ss.Session().Save(s1) s1, nErr := ss.Session().Save(s1)
require.Nil(t, nErr) require.NoError(t, nErr)
_, nErr = ss.UserAccessToken().Save(uat) _, nErr = ss.UserAccessToken().Save(uat)
require.Nil(t, nErr) require.NoError(t, nErr)
received, nErr := ss.UserAccessToken().Search(uat.Id) received, nErr := ss.UserAccessToken().Search(uat.Id)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, 1, len(received), "received incorrect number of tokens after search") require.Equal(t, 1, len(received), "received incorrect number of tokens after search")
received, nErr = ss.UserAccessToken().Search(uat.UserId) received, nErr = ss.UserAccessToken().Search(uat.UserId)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, 1, len(received), "received incorrect number of tokens after search") require.Equal(t, 1, len(received), "received incorrect number of tokens after search")
received, nErr = ss.UserAccessToken().Search(u1.Username) received, nErr = ss.UserAccessToken().Search(u1.Username)
require.Nil(t, nErr) require.NoError(t, nErr)
require.Equal(t, 1, len(received), "received incorrect number of tokens after search") require.Equal(t, 1, len(received), "received incorrect number of tokens after search")
} }

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -27,7 +27,7 @@ func testSaveUserTermsOfService(t *testing.T, ss store.Store) {
} }
savedUserTermsOfService, err := ss.UserTermsOfService().Save(userTermsOfService) savedUserTermsOfService, err := ss.UserTermsOfService().Save(userTermsOfService)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, userTermsOfService.UserId, savedUserTermsOfService.UserId) assert.Equal(t, userTermsOfService.UserId, savedUserTermsOfService.UserId)
assert.Equal(t, userTermsOfService.TermsOfServiceId, savedUserTermsOfService.TermsOfServiceId) assert.Equal(t, userTermsOfService.TermsOfServiceId, savedUserTermsOfService.TermsOfServiceId)
assert.NotEmpty(t, savedUserTermsOfService.CreateAt) assert.NotEmpty(t, savedUserTermsOfService.CreateAt)
@@ -40,10 +40,10 @@ func testGetByUserTermsOfService(t *testing.T, ss store.Store) {
} }
_, err := ss.UserTermsOfService().Save(userTermsOfService) _, err := ss.UserTermsOfService().Save(userTermsOfService)
require.Nil(t, err) require.NoError(t, err)
fetchedUserTermsOfService, err := ss.UserTermsOfService().GetByUser(userTermsOfService.UserId) fetchedUserTermsOfService, err := ss.UserTermsOfService().GetByUser(userTermsOfService.UserId)
require.Nil(t, err) require.NoError(t, err)
assert.Equal(t, userTermsOfService.UserId, fetchedUserTermsOfService.UserId) assert.Equal(t, userTermsOfService.UserId, fetchedUserTermsOfService.UserId)
assert.Equal(t, userTermsOfService.TermsOfServiceId, fetchedUserTermsOfService.TermsOfServiceId) assert.Equal(t, userTermsOfService.TermsOfServiceId, fetchedUserTermsOfService.TermsOfServiceId)
assert.NotEmpty(t, fetchedUserTermsOfService.CreateAt) assert.NotEmpty(t, fetchedUserTermsOfService.CreateAt)
@@ -56,16 +56,16 @@ func testDeleteUserTermsOfService(t *testing.T, ss store.Store) {
} }
_, err := ss.UserTermsOfService().Save(userTermsOfService) _, err := ss.UserTermsOfService().Save(userTermsOfService)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.UserTermsOfService().GetByUser(userTermsOfService.UserId) _, err = ss.UserTermsOfService().GetByUser(userTermsOfService.UserId)
require.Nil(t, err) require.NoError(t, err)
err = ss.UserTermsOfService().Delete(userTermsOfService.UserId, userTermsOfService.TermsOfServiceId) err = ss.UserTermsOfService().Delete(userTermsOfService.UserId, userTermsOfService.TermsOfServiceId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.UserTermsOfService().GetByUser(userTermsOfService.UserId) _, err = ss.UserTermsOfService().GetByUser(userTermsOfService.UserId)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
assert.NotNil(t, err) assert.Error(t, err)
assert.True(t, errors.As(err, &nfErr)) assert.True(t, errors.As(err, &nfErr))
} }

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

@@ -46,10 +46,10 @@ func testWebhookStoreSaveIncoming(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
_, err := ss.Webhook().SaveIncoming(o1) _, err := ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "couldn't save item") require.NoError(t, err, "couldn't save item")
_, err = ss.Webhook().SaveIncoming(o1) _, err = ss.Webhook().SaveIncoming(o1)
require.NotNil(t, err, "shouldn't be able to update from save") require.Error(t, err, "shouldn't be able to update from save")
} }
func testWebhookStoreUpdateIncoming(t *testing.T, ss store.Store) { func testWebhookStoreUpdateIncoming(t *testing.T, ss store.Store) {
@@ -58,7 +58,7 @@ func testWebhookStoreUpdateIncoming(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "unable to save webhook") require.NoError(t, err, "unable to save webhook")
previousUpdatedAt := o1.UpdateAt previousUpdatedAt := o1.UpdateAt
@@ -66,7 +66,7 @@ func testWebhookStoreUpdateIncoming(t *testing.T, ss store.Store) {
time.Sleep(10 * time.Millisecond) time.Sleep(10 * time.Millisecond)
webhook, err := ss.Webhook().UpdateIncoming(o1) webhook, err := ss.Webhook().UpdateIncoming(o1)
require.Nil(t, err) require.NoError(t, err)
require.NotEqual(t, webhook.UpdateAt, previousUpdatedAt, "should have updated the UpdatedAt of the hook") require.NotEqual(t, webhook.UpdateAt, previousUpdatedAt, "should have updated the UpdatedAt of the hook")
@@ -78,24 +78,24 @@ func testWebhookStoreGetIncoming(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "unable to save webhook") require.NoError(t, err, "unable to save webhook")
webhook, err := ss.Webhook().GetIncoming(o1.Id, false) webhook, err := ss.Webhook().GetIncoming(o1.Id, false)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
webhook, err = ss.Webhook().GetIncoming(o1.Id, true) webhook, err = ss.Webhook().GetIncoming(o1.Id, true)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
_, err = ss.Webhook().GetIncoming("123", false) _, err = ss.Webhook().GetIncoming("123", false)
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
_, err = ss.Webhook().GetIncoming("123", true) _, err = ss.Webhook().GetIncoming("123", true)
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
_, err = ss.Webhook().GetIncoming("123", true) _, err = ss.Webhook().GetIncoming("123", true)
require.NotNil(t, err) require.Error(t, err)
var nfErr *store.ErrNotFound var nfErr *store.ErrNotFound
require.True(t, errors.As(err, &nfErr), "Should have set the status as not found for missing id") require.True(t, errors.As(err, &nfErr), "Should have set the status as not found for missing id")
} }
@@ -108,10 +108,10 @@ func testWebhookStoreGetIncomingList(t *testing.T, ss store.Store) {
var err error var err error
o1, err = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "unable to save webhook") require.NoError(t, err, "unable to save webhook")
hooks, err := ss.Webhook().GetIncomingList(0, 1000) hooks, err := ss.Webhook().GetIncomingList(0, 1000)
require.Nil(t, err) require.NoError(t, err)
found := false found := false
for _, hook := range hooks { for _, hook := range hooks {
@@ -122,7 +122,7 @@ func testWebhookStoreGetIncomingList(t *testing.T, ss store.Store) {
require.True(t, found, "missing webhook") require.True(t, found, "missing webhook")
hooks, err = ss.Webhook().GetIncomingList(0, 1) hooks, err = ss.Webhook().GetIncomingList(0, 1)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, hooks, 1, "only 1 should be returned") require.Len(t, hooks, 1, "only 1 should be returned")
} }
@@ -132,19 +132,19 @@ func testWebhookStoreGetIncomingListByUser(t *testing.T, ss store.Store) {
o1.UserId = model.NewId() o1.UserId = model.NewId()
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1, appErr := ss.Webhook().SaveIncoming(o1) o1, err := ss.Webhook().SaveIncoming(o1)
require.Nil(t, appErr) require.NoError(t, err)
t.Run("GetIncomingListByUser, known user filtered", func(t *testing.T) { t.Run("GetIncomingListByUser, known user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetIncomingListByUser(o1.UserId, 0, 100) hooks, err := ss.Webhook().GetIncomingListByUser(o1.UserId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, 1, len(hooks)) require.Equal(t, 1, len(hooks))
require.Equal(t, o1.CreateAt, hooks[0].CreateAt) require.Equal(t, o1.CreateAt, hooks[0].CreateAt)
}) })
t.Run("GetIncomingListByUser, unknown user filtered", func(t *testing.T) { t.Run("GetIncomingListByUser, unknown user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetIncomingListByUser("123465", 0, 100) hooks, err := ss.Webhook().GetIncomingListByUser("123465", 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, 0, len(hooks)) require.Equal(t, 0, len(hooks))
}) })
} }
@@ -154,45 +154,45 @@ func testWebhookStoreGetIncomingByTeam(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, err) require.NoError(t, err)
hooks, err := ss.Webhook().GetIncomingByTeam(o1.TeamId, 0, 100) hooks, err := ss.Webhook().GetIncomingByTeam(o1.TeamId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, hooks[0].CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, hooks[0].CreateAt, o1.CreateAt, "invalid returned webhook")
hooks, err = ss.Webhook().GetIncomingByTeam("123", 0, 100) hooks, err = ss.Webhook().GetIncomingByTeam("123", 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Empty(t, hooks, "no webhooks should have returned") require.Empty(t, hooks, "no webhooks should have returned")
} }
func TestWebhookStoreGetIncomingByTeamByUser(t *testing.T, ss store.Store) { func TestWebhookStoreGetIncomingByTeamByUser(t *testing.T, ss store.Store) {
var appErr error var err error
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, appErr = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, appErr) require.NoError(t, err)
o2 := buildIncomingWebhook() o2 := buildIncomingWebhook()
o2.TeamId = o1.TeamId //Set both to the same team o2.TeamId = o1.TeamId //Set both to the same team
o2, appErr = ss.Webhook().SaveIncoming(o2) o2, err = ss.Webhook().SaveIncoming(o2)
require.Nil(t, appErr) require.NoError(t, err)
t.Run("GetIncomingByTeamByUser, no user filter", func(t *testing.T) { t.Run("GetIncomingByTeamByUser, no user filter", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetIncomingByTeam(o1.TeamId, 0, 100) hooks, err := ss.Webhook().GetIncomingByTeam(o1.TeamId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, len(hooks), 2) require.Equal(t, len(hooks), 2)
}) })
t.Run("GetIncomingByTeamByUser, known user filtered", func(t *testing.T) { t.Run("GetIncomingByTeamByUser, known user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetIncomingByTeamByUser(o1.TeamId, o1.UserId, 0, 100) hooks, err := ss.Webhook().GetIncomingByTeamByUser(o1.TeamId, o1.UserId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, len(hooks), 1) require.Equal(t, len(hooks), 1)
require.Equal(t, hooks[0].CreateAt, o1.CreateAt) require.Equal(t, hooks[0].CreateAt, o1.CreateAt)
}) })
t.Run("GetIncomingByTeamByUser, unknown user filtered", func(t *testing.T) { t.Run("GetIncomingByTeamByUser, unknown user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetIncomingByTeamByUser(o2.TeamId, "123465", 0, 100) hooks, err := ss.Webhook().GetIncomingByTeamByUser(o2.TeamId, "123465", 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, len(hooks), 0) require.Equal(t, len(hooks), 0)
}) })
} }
@@ -201,14 +201,14 @@ func testWebhookStoreGetIncomingByChannel(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err := ss.Webhook().SaveIncoming(o1) o1, err := ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "unable to save webhook") require.NoError(t, err, "unable to save webhook")
webhooks, err := ss.Webhook().GetIncomingByChannel(o1.ChannelId) webhooks, err := ss.Webhook().GetIncomingByChannel(o1.ChannelId)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhooks[0].CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhooks[0].CreateAt, o1.CreateAt, "invalid returned webhook")
webhooks, err = ss.Webhook().GetIncomingByChannel("123") webhooks, err = ss.Webhook().GetIncomingByChannel("123")
require.Nil(t, err) require.NoError(t, err)
require.Empty(t, webhooks, "no webhooks should have returned") require.Empty(t, webhooks, "no webhooks should have returned")
} }
@@ -217,17 +217,17 @@ func testWebhookStoreDeleteIncoming(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "unable to save webhook") require.NoError(t, err, "unable to save webhook")
webhook, err := ss.Webhook().GetIncoming(o1.Id, true) webhook, err := ss.Webhook().GetIncoming(o1.Id, true)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
err = ss.Webhook().DeleteIncoming(o1.Id, model.GetMillis()) err = ss.Webhook().DeleteIncoming(o1.Id, model.GetMillis())
require.Nil(t, err) require.NoError(t, err)
webhook, err = ss.Webhook().GetIncoming(o1.Id, true) webhook, err = ss.Webhook().GetIncoming(o1.Id, true)
require.NotNil(t, err) require.Error(t, err)
} }
func testWebhookStoreDeleteIncomingByChannel(t *testing.T, ss store.Store) { func testWebhookStoreDeleteIncomingByChannel(t *testing.T, ss store.Store) {
@@ -235,17 +235,17 @@ func testWebhookStoreDeleteIncomingByChannel(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "unable to save webhook") require.NoError(t, err, "unable to save webhook")
webhook, err := ss.Webhook().GetIncoming(o1.Id, true) webhook, err := ss.Webhook().GetIncoming(o1.Id, true)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
err = ss.Webhook().PermanentDeleteIncomingByChannel(o1.ChannelId) err = ss.Webhook().PermanentDeleteIncomingByChannel(o1.ChannelId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Webhook().GetIncoming(o1.Id, true) _, err = ss.Webhook().GetIncoming(o1.Id, true)
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreDeleteIncomingByUser(t *testing.T, ss store.Store) { func testWebhookStoreDeleteIncomingByUser(t *testing.T, ss store.Store) {
@@ -253,17 +253,17 @@ func testWebhookStoreDeleteIncomingByUser(t *testing.T, ss store.Store) {
o1 := buildIncomingWebhook() o1 := buildIncomingWebhook()
o1, err = ss.Webhook().SaveIncoming(o1) o1, err = ss.Webhook().SaveIncoming(o1)
require.Nil(t, err, "unable to save webhook") require.NoError(t, err, "unable to save webhook")
webhook, err := ss.Webhook().GetIncoming(o1.Id, true) webhook, err := ss.Webhook().GetIncoming(o1.Id, true)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
err = ss.Webhook().PermanentDeleteIncomingByUser(o1.UserId) err = ss.Webhook().PermanentDeleteIncomingByUser(o1.UserId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Webhook().GetIncoming(o1.Id, true) _, err = ss.Webhook().GetIncoming(o1.Id, true)
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func buildIncomingWebhook() *model.IncomingWebhook { func buildIncomingWebhook() *model.IncomingWebhook {
@@ -285,10 +285,10 @@ func testWebhookStoreSaveOutgoing(t *testing.T, ss store.Store) {
o1.IconURL = "http://nowhere.com/icon" o1.IconURL = "http://nowhere.com/icon"
_, err := ss.Webhook().SaveOutgoing(&o1) _, err := ss.Webhook().SaveOutgoing(&o1)
require.Nil(t, err, "couldn't save item") require.NoError(t, err, "couldn't save item")
_, err = ss.Webhook().SaveOutgoing(&o1) _, err = ss.Webhook().SaveOutgoing(&o1)
require.NotNil(t, err, "shouldn't be able to update from save") require.Error(t, err, "shouldn't be able to update from save")
} }
func testWebhookStoreGetOutgoing(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoing(t *testing.T, ss store.Store) {
@@ -303,11 +303,11 @@ func testWebhookStoreGetOutgoing(t *testing.T, ss store.Store) {
o1, _ = ss.Webhook().SaveOutgoing(o1) o1, _ = ss.Webhook().SaveOutgoing(o1)
webhook, err := ss.Webhook().GetOutgoing(o1.Id) webhook, err := ss.Webhook().GetOutgoing(o1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
_, err = ss.Webhook().GetOutgoing("123") _, err = ss.Webhook().GetOutgoing("123")
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreGetOutgoingListByUser(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingListByUser(t *testing.T, ss store.Store) {
@@ -317,19 +317,19 @@ func testWebhookStoreGetOutgoingListByUser(t *testing.T, ss store.Store) {
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.CallbackURLs = []string{"http://nowhere.com/"} o1.CallbackURLs = []string{"http://nowhere.com/"}
o1, appErr := ss.Webhook().SaveOutgoing(o1) o1, err := ss.Webhook().SaveOutgoing(o1)
require.Nil(t, appErr) require.NoError(t, err)
t.Run("GetOutgoingListByUser, known user filtered", func(t *testing.T) { t.Run("GetOutgoingListByUser, known user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingListByUser(o1.CreatorId, 0, 100) hooks, err := ss.Webhook().GetOutgoingListByUser(o1.CreatorId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, 1, len(hooks)) require.Equal(t, 1, len(hooks))
require.Equal(t, o1.CreateAt, hooks[0].CreateAt) require.Equal(t, o1.CreateAt, hooks[0].CreateAt)
}) })
t.Run("GetOutgoingListByUser, unknown user filtered", func(t *testing.T) { t.Run("GetOutgoingListByUser, unknown user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingListByUser("123465", 0, 100) hooks, err := ss.Webhook().GetOutgoingListByUser("123465", 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, 0, len(hooks)) require.Equal(t, 0, len(hooks))
}) })
} }
@@ -352,7 +352,7 @@ func testWebhookStoreGetOutgoingList(t *testing.T, ss store.Store) {
o2, _ = ss.Webhook().SaveOutgoing(o2) o2, _ = ss.Webhook().SaveOutgoing(o2)
r1, err := ss.Webhook().GetOutgoingList(0, 1000) r1, err := ss.Webhook().GetOutgoingList(0, 1000)
require.Nil(t, err) require.NoError(t, err)
hooks := r1 hooks := r1
found1 := false found1 := false
found2 := false found2 := false
@@ -371,7 +371,7 @@ func testWebhookStoreGetOutgoingList(t *testing.T, ss store.Store) {
require.True(t, found2, "missing hook2") require.True(t, found2, "missing hook2")
result, err := ss.Webhook().GetOutgoingList(0, 2) result, err := ss.Webhook().GetOutgoingList(0, 2)
require.Nil(t, err) require.NoError(t, err)
require.Len(t, result, 2, "wrong number of hooks returned") require.Len(t, result, 2, "wrong number of hooks returned")
} }
@@ -385,11 +385,11 @@ func testWebhookStoreGetOutgoingByChannel(t *testing.T, ss store.Store) {
o1, _ = ss.Webhook().SaveOutgoing(o1) o1, _ = ss.Webhook().SaveOutgoing(o1)
r1, err := ss.Webhook().GetOutgoingByChannel(o1.ChannelId, 0, 100) r1, err := ss.Webhook().GetOutgoingByChannel(o1.ChannelId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, r1[0].CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, r1[0].CreateAt, o1.CreateAt, "invalid returned webhook")
result, err := ss.Webhook().GetOutgoingByChannel("123", -1, -1) result, err := ss.Webhook().GetOutgoingByChannel("123", -1, -1)
require.Nil(t, err) require.NoError(t, err)
require.Empty(t, result, "no webhooks should have returned") require.Empty(t, result, "no webhooks should have returned")
} }
@@ -400,8 +400,8 @@ func testWebhookStoreGetOutgoingByChannelByUser(t *testing.T, ss store.Store) {
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.CallbackURLs = []string{"http://nowhere.com/"} o1.CallbackURLs = []string{"http://nowhere.com/"}
o1, appErr := ss.Webhook().SaveOutgoing(o1) o1, err := ss.Webhook().SaveOutgoing(o1)
require.Nil(t, appErr) require.NoError(t, err)
o2 := &model.OutgoingWebhook{} o2 := &model.OutgoingWebhook{}
o2.ChannelId = o1.ChannelId o2.ChannelId = o1.ChannelId
@@ -409,25 +409,25 @@ func testWebhookStoreGetOutgoingByChannelByUser(t *testing.T, ss store.Store) {
o2.TeamId = model.NewId() o2.TeamId = model.NewId()
o2.CallbackURLs = []string{"http://nowhere.com/"} o2.CallbackURLs = []string{"http://nowhere.com/"}
o2, appErr = ss.Webhook().SaveOutgoing(o2) o2, err = ss.Webhook().SaveOutgoing(o2)
require.Nil(t, appErr) require.NoError(t, err)
t.Run("GetOutgoingByChannelByUser, no user filter", func(t *testing.T) { t.Run("GetOutgoingByChannelByUser, no user filter", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingByChannel(o1.ChannelId, 0, 100) hooks, err := ss.Webhook().GetOutgoingByChannel(o1.ChannelId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, len(hooks), 2) require.Equal(t, len(hooks), 2)
}) })
t.Run("GetOutgoingByChannelByUser, known user filtered", func(t *testing.T) { t.Run("GetOutgoingByChannelByUser, known user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingByChannelByUser(o1.ChannelId, o1.CreatorId, 0, 100) hooks, err := ss.Webhook().GetOutgoingByChannelByUser(o1.ChannelId, o1.CreatorId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, 1, len(hooks)) require.Equal(t, 1, len(hooks))
require.Equal(t, o1.CreateAt, hooks[0].CreateAt) require.Equal(t, o1.CreateAt, hooks[0].CreateAt)
}) })
t.Run("GetOutgoingByChannelByUser, unknown user filtered", func(t *testing.T) { t.Run("GetOutgoingByChannelByUser, unknown user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingByChannelByUser(o1.ChannelId, "123465", 0, 100) hooks, err := ss.Webhook().GetOutgoingByChannelByUser(o1.ChannelId, "123465", 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, 0, len(hooks)) require.Equal(t, 0, len(hooks))
}) })
} }
@@ -442,16 +442,16 @@ func testWebhookStoreGetOutgoingByTeam(t *testing.T, ss store.Store) {
o1, _ = ss.Webhook().SaveOutgoing(o1) o1, _ = ss.Webhook().SaveOutgoing(o1)
r1, err := ss.Webhook().GetOutgoingByTeam(o1.TeamId, 0, 100) r1, err := ss.Webhook().GetOutgoingByTeam(o1.TeamId, 0, 100)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, r1[0].CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, r1[0].CreateAt, o1.CreateAt, "invalid returned webhook")
result, err := ss.Webhook().GetOutgoingByTeam("123", -1, -1) result, err := ss.Webhook().GetOutgoingByTeam("123", -1, -1)
require.Nil(t, err) require.NoError(t, err)
require.Empty(t, result, "no webhooks should have returned") require.Empty(t, result, "no webhooks should have returned")
} }
func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, ss store.Store) { func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, ss store.Store) {
var appErr error var err error
o1 := &model.OutgoingWebhook{} o1 := &model.OutgoingWebhook{}
o1.ChannelId = model.NewId() o1.ChannelId = model.NewId()
@@ -459,8 +459,8 @@ func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, ss store.Store) {
o1.TeamId = model.NewId() o1.TeamId = model.NewId()
o1.CallbackURLs = []string{"http://nowhere.com/"} o1.CallbackURLs = []string{"http://nowhere.com/"}
o1, appErr = ss.Webhook().SaveOutgoing(o1) o1, err = ss.Webhook().SaveOutgoing(o1)
require.Nil(t, appErr) require.NoError(t, err)
o2 := &model.OutgoingWebhook{} o2 := &model.OutgoingWebhook{}
o2.ChannelId = model.NewId() o2.ChannelId = model.NewId()
@@ -468,25 +468,25 @@ func testWebhookStoreGetOutgoingByTeamByUser(t *testing.T, ss store.Store) {
o2.TeamId = o1.TeamId o2.TeamId = o1.TeamId
o2.CallbackURLs = []string{"http://nowhere.com/"} o2.CallbackURLs = []string{"http://nowhere.com/"}
o2, appErr = ss.Webhook().SaveOutgoing(o2) o2, err = ss.Webhook().SaveOutgoing(o2)
require.Nil(t, appErr) require.NoError(t, err)
t.Run("GetOutgoingByTeamByUser, no user filter", func(t *testing.T) { t.Run("GetOutgoingByTeamByUser, no user filter", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingByTeam(o1.TeamId, 0, 100) hooks, err := ss.Webhook().GetOutgoingByTeam(o1.TeamId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, len(hooks), 2) require.Equal(t, len(hooks), 2)
}) })
t.Run("GetOutgoingByTeamByUser, known user filtered", func(t *testing.T) { t.Run("GetOutgoingByTeamByUser, known user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingByTeamByUser(o1.TeamId, o1.CreatorId, 0, 100) hooks, err := ss.Webhook().GetOutgoingByTeamByUser(o1.TeamId, o1.CreatorId, 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, len(hooks), 1) require.Equal(t, len(hooks), 1)
require.Equal(t, hooks[0].CreateAt, o1.CreateAt) require.Equal(t, hooks[0].CreateAt, o1.CreateAt)
}) })
t.Run("GetOutgoingByTeamByUser, unknown user filtered", func(t *testing.T) { t.Run("GetOutgoingByTeamByUser, unknown user filtered", func(t *testing.T) {
hooks, appErr := ss.Webhook().GetOutgoingByTeamByUser(o2.TeamId, "123465", 0, 100) hooks, err := ss.Webhook().GetOutgoingByTeamByUser(o2.TeamId, "123465", 0, 100)
require.Nil(t, appErr) require.NoError(t, err)
require.Equal(t, len(hooks), 0) require.Equal(t, len(hooks), 0)
}) })
} }
@@ -501,14 +501,14 @@ func testWebhookStoreDeleteOutgoing(t *testing.T, ss store.Store) {
o1, _ = ss.Webhook().SaveOutgoing(o1) o1, _ = ss.Webhook().SaveOutgoing(o1)
webhook, err := ss.Webhook().GetOutgoing(o1.Id) webhook, err := ss.Webhook().GetOutgoing(o1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
err = ss.Webhook().DeleteOutgoing(o1.Id, model.GetMillis()) err = ss.Webhook().DeleteOutgoing(o1.Id, model.GetMillis())
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Webhook().GetOutgoing(o1.Id) _, err = ss.Webhook().GetOutgoing(o1.Id)
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, ss store.Store) { func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, ss store.Store) {
@@ -521,14 +521,14 @@ func testWebhookStoreDeleteOutgoingByChannel(t *testing.T, ss store.Store) {
o1, _ = ss.Webhook().SaveOutgoing(o1) o1, _ = ss.Webhook().SaveOutgoing(o1)
webhook, err := ss.Webhook().GetOutgoing(o1.Id) webhook, err := ss.Webhook().GetOutgoing(o1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
err = ss.Webhook().PermanentDeleteOutgoingByChannel(o1.ChannelId) err = ss.Webhook().PermanentDeleteOutgoingByChannel(o1.ChannelId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Webhook().GetOutgoing(o1.Id) _, err = ss.Webhook().GetOutgoing(o1.Id)
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreDeleteOutgoingByUser(t *testing.T, ss store.Store) { func testWebhookStoreDeleteOutgoingByUser(t *testing.T, ss store.Store) {
@@ -541,14 +541,14 @@ func testWebhookStoreDeleteOutgoingByUser(t *testing.T, ss store.Store) {
o1, _ = ss.Webhook().SaveOutgoing(o1) o1, _ = ss.Webhook().SaveOutgoing(o1)
webhook, err := ss.Webhook().GetOutgoing(o1.Id) webhook, err := ss.Webhook().GetOutgoing(o1.Id)
require.Nil(t, err) require.NoError(t, err)
require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook") require.Equal(t, webhook.CreateAt, o1.CreateAt, "invalid returned webhook")
err = ss.Webhook().PermanentDeleteOutgoingByUser(o1.CreatorId) err = ss.Webhook().PermanentDeleteOutgoingByUser(o1.CreatorId)
require.Nil(t, err) require.NoError(t, err)
_, err = ss.Webhook().GetOutgoing(o1.Id) _, err = ss.Webhook().GetOutgoing(o1.Id)
require.NotNil(t, err, "Missing id should have failed") require.Error(t, err, "Missing id should have failed")
} }
func testWebhookStoreUpdateOutgoing(t *testing.T, ss store.Store) { func testWebhookStoreUpdateOutgoing(t *testing.T, ss store.Store) {
@@ -566,7 +566,7 @@ func testWebhookStoreUpdateOutgoing(t *testing.T, ss store.Store) {
o1.Username = "another-test-user-name" o1.Username = "another-test-user-name"
_, err := ss.Webhook().UpdateOutgoing(o1) _, err := ss.Webhook().UpdateOutgoing(o1)
require.Nil(t, err) require.NoError(t, err)
} }
func testWebhookStoreCountIncoming(t *testing.T, ss store.Store) { func testWebhookStoreCountIncoming(t *testing.T, ss store.Store) {
@@ -578,7 +578,7 @@ func testWebhookStoreCountIncoming(t *testing.T, ss store.Store) {
_, _ = ss.Webhook().SaveIncoming(o1) _, _ = ss.Webhook().SaveIncoming(o1)
c, err := ss.Webhook().AnalyticsIncomingCount("") c, err := ss.Webhook().AnalyticsIncomingCount("")
require.Nil(t, err) require.NoError(t, err)
require.NotEqual(t, 0, c, "should have at least 1 incoming hook") require.NotEqual(t, 0, c, "should have at least 1 incoming hook")
} }
@@ -591,9 +591,9 @@ func testWebhookStoreCountOutgoing(t *testing.T, ss store.Store) {
o1.CallbackURLs = []string{"http://nowhere.com/"} o1.CallbackURLs = []string{"http://nowhere.com/"}
_, err := ss.Webhook().SaveOutgoing(o1) _, err := ss.Webhook().SaveOutgoing(o1)
require.Nil(t, err) require.NoError(t, err)
r, err := ss.Webhook().AnalyticsOutgoingCount("") r, err := ss.Webhook().AnalyticsOutgoingCount("")
require.Nil(t, err) require.NoError(t, err)
require.NotEqual(t, 0, r, "should have at least 1 outgoing hook") require.NotEqual(t, 0, r, "should have at least 1 outgoing hook")
} }