Migrate User.Save to Sync by default (#11482)

* Migrate User.Save to Sync by default

* Make error testing more explicit

* Factor out else

* Fix some merge-related bugs

* Add some missing nil err test requirements

* Improve function signature

* Remove unused time import

* More test fixups
This commit is contained in:
Alexander Redinger
2019-07-08 15:19:21 -04:00
committed by Gabe Jackson
parent d15c2c4e69
commit 15c3c5f9e6
16 changed files with 659 additions and 480 deletions

View File

@@ -16,11 +16,11 @@ import (
// CreateBot creates the given bot and corresponding user.
func (a *App) CreateBot(bot *model.Bot) (*model.Bot, *model.AppError) {
result := <-a.Srv.Store.User().Save(model.UserFromBot(bot))
if result.Err != nil {
return nil, result.Err
user, err := a.Srv.Store.User().Save(model.UserFromBot(bot))
if err != nil {
return nil, err
}
bot.UserId = result.Data.(*model.User).Id
bot.UserId = user.Id
savedBot, err := a.Srv.Store.Bot().Save(bot)
if err != nil {

View File

@@ -788,18 +788,17 @@ func (a *App) OldImportUser(team *model.Team, user *model.User) *model.User {
user.Roles = model.SYSTEM_USER_ROLE_ID
result := <-a.Srv.Store.User().Save(user)
if result.Err != nil {
mlog.Error(fmt.Sprintf("Error saving user. err=%v", result.Err))
ruser, err := a.Srv.Store.User().Save(user)
if err != nil {
mlog.Error(fmt.Sprintf("Error saving user. err=%v", err))
return nil
}
ruser := result.Data.(*model.User)
if _, err := a.Srv.Store.User().VerifyEmail(ruser.Id, ruser.Email); err != nil {
if _, err = a.Srv.Store.User().VerifyEmail(ruser.Id, ruser.Email); err != nil {
mlog.Error(fmt.Sprintf("Failed to set email verified err=%v", err))
}
if err := a.JoinUserToTeam(team, user, ""); err != nil {
if err = a.JoinUserToTeam(team, user, ""); err != nil {
mlog.Error(fmt.Sprintf("Failed to join team when importing err=%v", err))
}

View File

@@ -293,12 +293,11 @@ func (a *App) createUser(user *model.User) (*model.User, *model.AppError) {
return nil, err
}
result := <-a.Srv.Store.User().Save(user)
if result.Err != nil {
mlog.Error(fmt.Sprintf("Couldn't save the user err=%v", result.Err))
return nil, result.Err
ruser, err := a.Srv.Store.User().Save(user)
if err != nil {
mlog.Error(fmt.Sprintf("Couldn't save the user err=%v", err))
return nil, err
}
ruser := result.Data.(*model.User)
if user.EmailVerified {
if err := a.VerifyUserEmail(ruser.Id, user.Email); err != nil {

View File

@@ -118,30 +118,27 @@ func (us SqlUserStore) CreateIndexesIfNotExists() {
us.CreateFullTextIndexIfNotExists("idx_users_names_no_full_name_txt", "Users", strings.Join(USER_SEARCH_TYPE_NAMES_NO_FULL_NAME, ", "))
}
func (us SqlUserStore) Save(user *model.User) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
if len(user.Id) > 0 {
result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.existing.app_error", nil, "user_id="+user.Id, http.StatusBadRequest)
return
}
func (us SqlUserStore) Save(user *model.User) (*model.User, *model.AppError) {
if len(user.Id) > 0 {
return nil, model.NewAppError("SqlUserStore.Save", "store.sql_user.save.existing.app_error", nil, "user_id="+user.Id, http.StatusBadRequest)
}
user.PreSave()
if result.Err = user.IsValid(); result.Err != nil {
return
}
user.PreSave()
if err := user.IsValid(); err != nil {
return nil, err
}
if err := us.GetMaster().Insert(user); err != nil {
if IsUniqueConstraintError(err, []string{"Email", "users_email_key", "idx_users_email_unique"}) {
result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.email_exists.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusBadRequest)
} else if IsUniqueConstraintError(err, []string{"Username", "users_username_key", "idx_users_username_unique"}) {
result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.username_exists.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusBadRequest)
} else {
result.Err = model.NewAppError("SqlUserStore.Save", "store.sql_user.save.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusInternalServerError)
}
} else {
result.Data = user
if err := us.GetMaster().Insert(user); err != nil {
if IsUniqueConstraintError(err, []string{"Email", "users_email_key", "idx_users_email_unique"}) {
return nil, model.NewAppError("SqlUserStore.Save", "store.sql_user.save.email_exists.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusBadRequest)
}
})
if IsUniqueConstraintError(err, []string{"Username", "users_username_key", "idx_users_username_unique"}) {
return nil, model.NewAppError("SqlUserStore.Save", "store.sql_user.save.username_exists.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusBadRequest)
}
return nil, model.NewAppError("SqlUserStore.Save", "store.sql_user.save.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusInternalServerError)
}
return user, nil
}
func (us SqlUserStore) Update(user *model.User, trustedUpdateData bool) (*model.UserUpdate, *model.AppError) {
@@ -197,7 +194,8 @@ func (us SqlUserStore) Update(user *model.User, trustedUpdateData bool) (*model.
if err != nil {
if IsUniqueConstraintError(err, []string{"Email", "users_email_key", "idx_users_email_unique"}) {
return nil, model.NewAppError("SqlUserStore.Update", "store.sql_user.update.email_taken.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusBadRequest)
} else if IsUniqueConstraintError(err, []string{"Username", "users_username_key", "idx_users_username_unique"}) {
}
if IsUniqueConstraintError(err, []string{"Username", "users_username_key", "idx_users_username_unique"}) {
return nil, model.NewAppError("SqlUserStore.Update", "store.sql_user.update.username_taken.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusBadRequest)
}
return nil, model.NewAppError("SqlUserStore.Update", "store.sql_user.update.updating.app_error", nil, "user_id="+user.Id+", "+err.Error(), http.StatusInternalServerError)

View File

@@ -249,7 +249,7 @@ type PostStore interface {
}
type UserStore interface {
Save(user *model.User) StoreChannel
Save(user *model.User) (*model.User, *model.AppError)
Update(user *model.User, allowRoleUpdate bool) (*model.UserUpdate, *model.AppError)
UpdateLastPictureUpdate(userId string) *model.AppError
ResetLastPictureUpdate(userId string) *model.AppError

View File

@@ -6,7 +6,6 @@ package storetest
import (
"net/http"
"testing"
"time"
"github.com/stretchr/testify/require"
@@ -14,15 +13,13 @@ import (
"github.com/mattermost/mattermost-server/store"
)
func makeBotWithUser(ss store.Store, bot *model.Bot) (*model.Bot, *model.User) {
user := store.Must(ss.User().Save(model.UserFromBot(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))
require.Nil(t, err)
bot.UserId = user.Id
bot, err := ss.Bot().Save(bot)
if err != nil {
time.Sleep(time.Second)
panic(err)
}
bot, err = ss.Bot().Save(bot)
require.Nil(t, err)
return bot, user
}
@@ -36,7 +33,7 @@ func TestBotStore(t *testing.T, ss store.Store) {
}
func testBotStoreGet(t *testing.T, ss store.Store) {
deletedBot, _ := makeBotWithUser(ss, &model.Bot{
deletedBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "deleted_bot",
Description: "A deleted bot",
OwnerId: model.NewId(),
@@ -47,7 +44,7 @@ func testBotStoreGet(t *testing.T, ss store.Store) {
defer func() { require.Nil(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(deletedBot.UserId)) }()
permanentlyDeletedBot, _ := makeBotWithUser(ss, &model.Bot{
permanentlyDeletedBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "permanently_deleted_bot",
Description: "A permanently deleted bot",
OwnerId: model.NewId(),
@@ -56,7 +53,7 @@ func testBotStoreGet(t *testing.T, ss store.Store) {
require.Nil(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId))
defer func() { require.Nil(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }()
b1, _ := makeBotWithUser(ss, &model.Bot{
b1, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b1",
Description: "The first bot",
OwnerId: model.NewId(),
@@ -64,7 +61,7 @@ func testBotStoreGet(t *testing.T, ss store.Store) {
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b1.UserId)) }()
b2, _ := makeBotWithUser(ss, &model.Bot{
b2, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b2",
Description: "The second bot",
OwnerId: model.NewId(),
@@ -113,7 +110,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
OwnerId1 := model.NewId()
OwnerId2 := model.NewId()
deletedBot, _ := makeBotWithUser(ss, &model.Bot{
deletedBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "deleted_bot",
Description: "A deleted bot",
OwnerId: OwnerId1,
@@ -124,7 +121,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
defer func() { require.Nil(t, ss.Bot().PermanentDelete(deletedBot.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(deletedBot.UserId)) }()
permanentlyDeletedBot, _ := makeBotWithUser(ss, &model.Bot{
permanentlyDeletedBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "permanently_deleted_bot",
Description: "A permanently deleted bot",
OwnerId: OwnerId1,
@@ -133,7 +130,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
require.Nil(t, ss.Bot().PermanentDelete(permanentlyDeletedBot.UserId))
defer func() { require.Nil(t, ss.User().PermanentDelete(permanentlyDeletedBot.UserId)) }()
b1, _ := makeBotWithUser(ss, &model.Bot{
b1, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b1",
Description: "The first bot",
OwnerId: OwnerId1,
@@ -141,7 +138,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b1.UserId)) }()
b2, _ := makeBotWithUser(ss, &model.Bot{
b2, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b2",
Description: "The second bot",
OwnerId: OwnerId1,
@@ -158,7 +155,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
}, bot)
})
b3, _ := makeBotWithUser(ss, &model.Bot{
b3, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b3",
Description: "The third bot",
OwnerId: OwnerId1,
@@ -166,7 +163,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b3.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b3.UserId)) }()
b4, _ := makeBotWithUser(ss, &model.Bot{
b4, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b4",
Description: "The fourth bot",
OwnerId: OwnerId2,
@@ -178,7 +175,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
if err := (<-ss.User().Save(&deletedUser)).Err; err != nil {
if _, err := ss.User().Save(&deletedUser); err != nil {
t.Fatal("couldn't save user", err)
}
deletedUser.DeleteAt = model.GetMillis()
@@ -186,7 +183,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store) {
t.Fatal("couldn't delete user", err)
}
defer func() { require.Nil(t, ss.User().PermanentDelete(deletedUser.Id)) }()
ob5, _ := makeBotWithUser(ss, &model.Bot{
ob5, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "ob5",
Description: "Orphaned bot 5",
OwnerId: deletedUser.Id,
@@ -314,7 +311,8 @@ func testBotStoreSave(t *testing.T, ss store.Store) {
OwnerId: model.NewId(),
}
user := store.Must(ss.User().Save(model.UserFromBot(bot))).(*model.User)
user, err := ss.User().Save(model.UserFromBot(bot))
require.Nil(t, err)
defer func() { require.Nil(t, ss.User().PermanentDelete(user.Id)) }()
bot.UserId = user.Id
@@ -341,7 +339,7 @@ func testBotStoreSave(t *testing.T, ss store.Store) {
func testBotStoreUpdate(t *testing.T, ss store.Store) {
t.Run("invalid bot should fail to update", func(t *testing.T) {
existingBot, _ := makeBotWithUser(ss, &model.Bot{
existingBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "existing_bot",
OwnerId: model.NewId(),
})
@@ -356,7 +354,7 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
})
t.Run("existing bot should update", func(t *testing.T) {
existingBot, _ := makeBotWithUser(ss, &model.Bot{
existingBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "existing_bot",
OwnerId: model.NewId(),
})
@@ -388,7 +386,7 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
})
t.Run("deleted bot should update, restoring", func(t *testing.T) {
existingBot, _ := makeBotWithUser(ss, &model.Bot{
existingBot, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "existing_bot",
OwnerId: model.NewId(),
})
@@ -417,14 +415,14 @@ func testBotStoreUpdate(t *testing.T, ss store.Store) {
}
func testBotStorePermanentDelete(t *testing.T, ss store.Store) {
b1, _ := makeBotWithUser(ss, &model.Bot{
b1, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b1",
OwnerId: model.NewId(),
})
defer func() { require.Nil(t, ss.Bot().PermanentDelete(b1.UserId)) }()
defer func() { require.Nil(t, ss.User().PermanentDelete(b1.UserId)) }()
b2, _ := makeBotWithUser(ss, &model.Bot{
b2, _ := makeBotWithUser(t, ss, &model.Bot{
Username: "b2",
OwnerId: model.NewId(),
})

View File

@@ -39,7 +39,9 @@ func testLogJoinEvent(t *testing.T, ss store.Store) {
Nickname: model.NewId(),
Username: model.NewId(),
}
user = *store.Must(ss.User().Save(&user)).(*model.User)
userPtr, err := ss.User().Save(&user)
require.Nil(t, err)
user = *userPtr
// log a join event
err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis())
@@ -63,7 +65,9 @@ func testLogLeaveEvent(t *testing.T, ss store.Store) {
Nickname: model.NewId(),
Username: model.NewId(),
}
user = *store.Must(ss.User().Save(&user)).(*model.User)
userPtr, err := ss.User().Save(&user)
require.Nil(t, err)
user = *userPtr
// log a join event, followed by a leave event
err = ss.ChannelMemberHistory().LogJoinEvent(user.Id, channel.Id, model.GetMillis())
@@ -90,7 +94,9 @@ func testGetUsersInChannelAtChannelMemberHistory(t *testing.T, ss store.Store) {
Nickname: model.NewId(),
Username: model.NewId(),
}
user = *store.Must(ss.User().Save(&user)).(*model.User)
userPtr, err := ss.User().Save(&user)
require.Nil(t, err)
user = *userPtr
// the user was previously in the channel a long time ago, before the export period starts
// the existence of this record makes it look like the MessageExport feature has been active for awhile, and prevents
@@ -184,7 +190,9 @@ func testGetUsersInChannelAtChannelMembers(t *testing.T, ss store.Store) {
Nickname: model.NewId(),
Username: model.NewId(),
}
user = *store.Must(ss.User().Save(&user)).(*model.User)
userPtr, err := ss.User().Save(&user)
require.Nil(t, err)
user = *userPtr
// clear any existing ChannelMemberHistory data that might interfere with our test
var tableDataTruncated = false
@@ -292,14 +300,18 @@ func testPermanentDeleteBatch(t *testing.T, ss store.Store) {
Nickname: model.NewId(),
Username: model.NewId(),
}
user = *store.Must(ss.User().Save(&user)).(*model.User)
userPtr, err := ss.User().Save(&user)
require.Nil(t, err)
user = *userPtr
user2 := model.User{
Email: MakeEmail(),
Nickname: model.NewId(),
Username: model.NewId(),
}
user2 = *store.Must(ss.User().Save(&user2)).(*model.User)
user2Ptr, err := ss.User().Save(&user2)
require.Nil(t, err)
user2 = *user2Ptr
// user1 joins and leaves the channel
leaveTime := model.GetMillis()

View File

@@ -130,13 +130,15 @@ func testChannelStoreSaveDirectChannel(t *testing.T, ss store.Store, s SqlSuppli
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
m1 := model.ChannelMember{}
@@ -149,7 +151,7 @@ func testChannelStoreSaveDirectChannel(t *testing.T, ss store.Store, s SqlSuppli
m2.UserId = u2.Id
m2.NotifyProps = model.GetDefaultChannelNotifyProps()
if _, err := ss.Channel().SaveDirectChannel(&o1, &m1, &m2); err != nil {
if _, err = ss.Channel().SaveDirectChannel(&o1, &m1, &m2); err != nil {
t.Fatal("couldn't save direct channel", err)
}
@@ -211,13 +213,15 @@ func testChannelStoreCreateDirectChannel(t *testing.T, ss store.Store) {
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
c1, err := ss.Channel().CreateDirectChannel(u1.Id, u2.Id)
@@ -382,13 +386,15 @@ func testChannelStoreGet(t *testing.T, ss store.Store, s SqlSupplier) {
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err = ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(&u2))
_, err = ss.User().Save(&u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
o2 := model.Channel{}
@@ -457,13 +463,15 @@ func testChannelStoreGetChannelsByIds(t *testing.T, ss store.Store) {
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err = ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(&u2))
_, err = ss.User().Save(&u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
o2 := model.Channel{}
@@ -864,13 +872,15 @@ func testChannelMemberStore(t *testing.T, ss store.Store) {
u1 := model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err = ss.User().Save(&u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(&u2))
_, err = ss.User().Save(&u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
o1 := model.ChannelMember{}
@@ -954,13 +964,15 @@ func testChannelDeleteMemberStore(t *testing.T, ss store.Store) {
u1 := model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err = ss.User().Save(&u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(&u2))
_, err = ss.User().Save(&u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
o1 := model.ChannelMember{}
@@ -1917,7 +1929,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
Email: MakeEmail(),
DeleteAt: 0,
}
store.Must(ss.User().Save(u1))
_, err = ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u1.Id}, -1))
m1 := model.ChannelMember{
@@ -1927,8 +1940,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
}
store.Must(ss.Channel().SaveMember(&m1))
if count, err := ss.Channel().GetMemberCount(c1.Id, false); err != nil {
t.Fatalf("failed to get member count: %v", err)
if count, channelErr := ss.Channel().GetMemberCount(c1.Id, false); channelErr != nil {
t.Fatalf("failed to get member count: %v", channelErr)
} else if count != 1 {
t.Fatalf("got incorrect member count %v", count)
}
@@ -1937,7 +1950,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
Email: MakeEmail(),
DeleteAt: 0,
}
store.Must(ss.User().Save(&u2))
_, err = ss.User().Save(&u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u2.Id}, -1))
m2 := model.ChannelMember{
@@ -1947,8 +1961,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
}
store.Must(ss.Channel().SaveMember(&m2))
if count, err := ss.Channel().GetMemberCount(c1.Id, false); err != nil {
t.Fatalf("failed to get member count: %v", err)
if count, channelErr := ss.Channel().GetMemberCount(c1.Id, false); channelErr != nil {
t.Fatalf("failed to get member count: %v", channelErr)
} else if count != 2 {
t.Fatalf("got incorrect member count %v", count)
}
@@ -1958,7 +1972,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
Email: MakeEmail(),
DeleteAt: 0,
}
store.Must(ss.User().Save(&u3))
_, err = ss.User().Save(&u3)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u3.Id}, -1))
m3 := model.ChannelMember{
@@ -1968,8 +1983,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
}
store.Must(ss.Channel().SaveMember(&m3))
if count, err := ss.Channel().GetMemberCount(c1.Id, false); err != nil {
t.Fatalf("failed to get member count: %v", err)
if count, channelErr := ss.Channel().GetMemberCount(c1.Id, false); channelErr != nil {
t.Fatalf("failed to get member count: %v", channelErr)
} else if count != 2 {
t.Fatalf("got incorrect member count %v", count)
}
@@ -1979,7 +1994,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) {
Email: MakeEmail(),
DeleteAt: 10000,
}
store.Must(ss.User().Save(u4))
_, err = ss.User().Save(u4)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u4.Id}, -1))
m4 := model.ChannelMember{
@@ -2564,32 +2580,36 @@ func testChannelStoreAutocompleteInTeamForSearch(t *testing.T, ss store.Store, s
u1.Email = MakeEmail()
u1.Username = "user1" + model.NewId()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Username = "user2" + model.NewId()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
u3 := &model.User{}
u3.Email = MakeEmail()
u3.Username = "user3" + model.NewId()
u3.Nickname = model.NewId()
store.Must(ss.User().Save(u3))
_, err = ss.User().Save(u3)
require.Nil(t, err)
u4 := &model.User{}
u4.Email = MakeEmail()
u4.Username = "user4" + model.NewId()
u4.Nickname = model.NewId()
store.Must(ss.User().Save(u4))
_, err = ss.User().Save(u4)
require.Nil(t, err)
o1 := model.Channel{}
o1.TeamId = model.NewId()
o1.DisplayName = "ChannelA"
o1.Name = "zz" + model.NewId() + "b"
o1.Type = model.CHANNEL_OPEN
_, err := ss.Channel().Save(&o1, -1)
_, err = ss.Channel().Save(&o1, -1)
require.Nil(t, err)
m1 := model.ChannelMember{}
@@ -2732,25 +2752,29 @@ func testChannelStoreSearchGroupChannels(t *testing.T, ss store.Store) {
u1.Username = "user.one"
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
u2 := &model.User{}
u2.Username = "user.two"
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
u3 := &model.User{}
u3.Username = "user.three"
u3.Email = MakeEmail()
u3.Nickname = model.NewId()
store.Must(ss.User().Save(u3))
_, err = ss.User().Save(u3)
require.Nil(t, err)
u4 := &model.User{}
u4.Username = "user.four"
u4.Email = MakeEmail()
u4.Nickname = model.NewId()
store.Must(ss.User().Save(u4))
_, err = ss.User().Save(u4)
require.Nil(t, err)
// Group channels
userIds := []string{u1.Id, u2.Id, u3.Id}
@@ -2758,7 +2782,7 @@ func testChannelStoreSearchGroupChannels(t *testing.T, ss store.Store) {
gc1.Name = model.GetGroupNameFromUserIds(userIds)
gc1.DisplayName = "GroupChannel" + model.NewId()
gc1.Type = model.CHANNEL_GROUP
_, err := ss.Channel().Save(&gc1, -1)
_, err = ss.Channel().Save(&gc1, -1)
require.Nil(t, err)
for _, userId := range userIds {
@@ -2901,12 +2925,14 @@ func testChannelStoreAnalyticsDeletedTypeCount(t *testing.T, ss store.Store) {
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err = ss.User().Save(u1)
require.Nil(t, err)
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
d4, err := ss.Channel().CreateDirectChannel(u1.Id, u2.Id)
if err != nil {
@@ -3482,7 +3508,8 @@ func testChannelStoreGetChannelMembersForExport(t *testing.T, ss store.Store) {
u1 := model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err = ss.User().Save(&u1)
require.Nil(t, err)
m1 := model.ChannelMember{}
m1.ChannelId = c1.Id
@@ -3528,17 +3555,20 @@ func testChannelStoreRemoveAllDeactivatedMembers(t *testing.T, ss store.Store) {
u1 := model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err = ss.User().Save(&u1)
require.Nil(t, err)
u2 := model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(&u2))
_, err = ss.User().Save(&u2)
require.Nil(t, err)
u3 := model.User{}
u3.Email = MakeEmail()
u3.Nickname = model.NewId()
store.Must(ss.User().Save(&u3))
_, err = ss.User().Save(&u3)
require.Nil(t, err)
m1 := model.ChannelMember{}
m1.ChannelId = c1.Id
@@ -3603,13 +3633,15 @@ func testChannelStoreExportAllDirectChannels(t *testing.T, ss store.Store, s Sql
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err = ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
m1 := model.ChannelMember{}
@@ -3662,13 +3694,15 @@ func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err = ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
m1 := model.ChannelMember{}
@@ -3704,13 +3738,15 @@ func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, ss stor
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
m1 := model.ChannelMember{}
@@ -3726,7 +3762,7 @@ func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, ss stor
ss.Channel().SaveDirectChannel(&o1, &m1, &m2)
o1.DeleteAt = 1
err := ss.Channel().SetDeleteAt(o1.Id, 1, 1)
err = ss.Channel().SetDeleteAt(o1.Id, 1, 1)
require.Nil(t, err, "channel should have been deleted")
d1, err := ss.Channel().GetAllDirectChannelsForExportAfter(10000, strings.Repeat("0", 26))

View File

@@ -76,13 +76,15 @@ func testComplianceExport(t *testing.T, ss store.Store) {
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Username = model.NewId()
u1 = store.Must(ss.User().Save(u1)).(*model.User)
u1, err = ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Username = model.NewId()
u2 = store.Must(ss.User().Save(u2)).(*model.User)
u2, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u2.Id}, -1))
c1 := &model.Channel{}
@@ -181,13 +183,15 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) {
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Username = model.NewId()
u1 = store.Must(ss.User().Save(u1)).(*model.User)
u1, err = ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Username = model.NewId()
u2 = store.Must(ss.User().Save(u2)).(*model.User)
u2, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: t1.Id, UserId: u2.Id}, -1))
c1 := &model.Channel{}
@@ -272,7 +276,8 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user1 = store.Must(ss.User().Save(user1)).(*model.User)
user1, err = ss.User().Save(user1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user1.Id,
@@ -282,7 +287,8 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user2 = store.Must(ss.User().Save(user2)).(*model.User)
user2, err = ss.User().Save(user2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user2.Id,
@@ -370,7 +376,8 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user1 = store.Must(ss.User().Save(user1)).(*model.User)
user1, err = ss.User().Save(user1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user1.Id,
@@ -380,7 +387,8 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user2 = store.Must(ss.User().Save(user2)).(*model.User)
user2, err = ss.User().Save(user2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user2.Id,
@@ -470,7 +478,8 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user1 = store.Must(ss.User().Save(user1)).(*model.User)
user1, err = ss.User().Save(user1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user1.Id,
@@ -480,7 +489,8 @@ func testMessageExportDirectMessageChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user2 = store.Must(ss.User().Save(user2)).(*model.User)
user2, err = ss.User().Save(user2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user2.Id,
@@ -545,7 +555,8 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user1 = store.Must(ss.User().Save(user1)).(*model.User)
user1, err = ss.User().Save(user1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user1.Id,
@@ -555,7 +566,8 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user2 = store.Must(ss.User().Save(user2)).(*model.User)
user2, err = ss.User().Save(user2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user2.Id,
@@ -565,7 +577,8 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
user3 = store.Must(ss.User().Save(user3)).(*model.User)
user3, err = ss.User().Save(user3)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user3.Id,

View File

@@ -442,9 +442,8 @@ func testGroupGetMemberUsers(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(u1)
require.Nil(t, res.Err)
user1 := res.Data.(*model.User)
user1, err := ss.User().Save(u1)
require.Nil(t, err)
_, err = ss.Group().UpsertMember(group.Id, user1.Id)
require.Nil(t, err)
@@ -453,9 +452,8 @@ func testGroupGetMemberUsers(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res = <-ss.User().Save(u2)
require.Nil(t, res.Err)
user2 := res.Data.(*model.User)
user2, err := ss.User().Save(u2)
require.Nil(t, err)
_, err = ss.Group().UpsertMember(group.Id, user2.Id)
require.Nil(t, err)
@@ -496,9 +494,8 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(u1)
require.Nil(t, res.Err)
user1 := res.Data.(*model.User)
user1, err := ss.User().Save(u1)
require.Nil(t, err)
_, err = ss.Group().UpsertMember(group.Id, user1.Id)
require.Nil(t, err)
@@ -507,9 +504,8 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res = <-ss.User().Save(u2)
require.Nil(t, res.Err)
user2 := res.Data.(*model.User)
user2, err := ss.User().Save(u2)
require.Nil(t, err)
_, err = ss.Group().UpsertMember(group.Id, user2.Id)
require.Nil(t, err)
@@ -562,9 +558,8 @@ func testUpsertMember(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res2 := <-ss.User().Save(u1)
require.Nil(t, res2.Err)
user := res2.Data.(*model.User)
user, err := ss.User().Save(u1)
require.Nil(t, err)
// Happy path
d2, err := ss.Group().UpsertMember(group.Id, user.Id)
@@ -617,9 +612,8 @@ func testGroupDeleteMember(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res2 := <-ss.User().Save(u1)
require.Nil(t, res2.Err)
user := res2.Data.(*model.User)
user, err := ss.User().Save(u1)
require.Nil(t, err)
// Create member
d1, err := ss.Group().UpsertMember(group.Id, user.Id)
@@ -919,9 +913,8 @@ func testPendingAutoAddTeamMembers(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(user)
require.Nil(t, res.Err)
user = res.Data.(*model.User)
user, err = ss.User().Save(user)
require.Nil(t, err)
// Create GroupMember
_, err = ss.Group().UpsertMember(group.Id, user.Id)
@@ -1058,7 +1051,7 @@ func testPendingAutoAddTeamMembers(t *testing.T, ss store.Store) {
require.Len(t, teamMembers, 1)
// adding team membership stops returning result
res = <-ss.Team().SaveMember(&model.TeamMember{
res := <-ss.Team().SaveMember(&model.TeamMember{
TeamId: team.Id,
UserId: user.Id,
}, 999)
@@ -1083,13 +1076,12 @@ func testPendingAutoAddChannelMembers(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(user)
require.Nil(t, res.Err)
user = res.Data.(*model.User)
user, err = ss.User().Save(user)
require.Nil(t, err)
// Create GroupMember
_, err = ss.Group().UpsertMember(group.Id, user.Id)
require.Nil(t, res.Err)
require.Nil(t, err)
// Create Channel
channel := &model.Channel{
@@ -1415,27 +1407,24 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(userA)
require.Nil(t, res.Err)
userA = res.Data.(*model.User)
userA, err = ss.User().Save(userA)
require.Nil(t, err)
// userB will not get removed from the group
userB := &model.User{
Email: MakeEmail(),
Username: model.NewId(),
}
res = <-ss.User().Save(userB)
require.Nil(t, res.Err)
userB = res.Data.(*model.User)
userB, err = ss.User().Save(userB)
require.Nil(t, err)
// userC was never in the group
userC := &model.User{
Email: MakeEmail(),
Username: model.NewId(),
}
res = <-ss.User().Save(userC)
require.Nil(t, res.Err)
userC = res.Data.(*model.User)
userC, err = ss.User().Save(userC)
require.Nil(t, err)
// add users to group (but not userC)
_, err = ss.Group().UpsertMember(group.Id, userA.Id)
@@ -1517,7 +1506,7 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData
}
for _, item := range userIDTeamIDs {
res = <-ss.Team().SaveMember(&model.TeamMember{
res := <-ss.Team().SaveMember(&model.TeamMember{
UserId: item[0],
TeamId: item[1],
}, 99)
@@ -1535,7 +1524,7 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData
}
for _, item := range userIDChannelIDs {
res = <-ss.Channel().SaveMember(&model.ChannelMember{
res := <-ss.Channel().SaveMember(&model.ChannelMember{
UserId: item[0],
ChannelId: item[1],
NotifyProps: model.GetDefaultChannelNotifyProps(),
@@ -1627,9 +1616,8 @@ func testGetGroupsByChannel(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(u1)
require.Nil(t, res.Err)
user1 := res.Data.(*model.User)
user1, err := ss.User().Save(u1)
require.Nil(t, err)
_, err = ss.Group().UpsertMember(group1.Id, user1.Id)
require.Nil(t, err)
@@ -1827,9 +1815,8 @@ func testGetGroupsByTeam(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(u1)
require.Nil(t, res.Err)
user1 := res.Data.(*model.User)
user1, err := ss.User().Save(u1)
require.Nil(t, err)
_, err = ss.Group().UpsertMember(group1.Id, user1.Id)
require.Nil(t, err)
@@ -2068,9 +2055,8 @@ func testGetGroups(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(u1)
require.Nil(t, res.Err)
user1 := res.Data.(*model.User)
user1, err := ss.User().Save(u1)
require.Nil(t, err)
_, err = ss.Group().UpsertMember(group1.Id, user1.Id)
require.Nil(t, err)
@@ -2245,13 +2231,12 @@ func testTeamMembersMinusGroupMembers(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(user)
require.Nil(t, res.Err)
user = res.Data.(*model.User)
user, err = ss.User().Save(user)
require.Nil(t, err)
users = append(users, user)
trueOrFalse := int(math.Mod(float64(i), 2)) == 0
res = <-ss.Team().SaveMember(&model.TeamMember{TeamId: team.Id, UserId: user.Id, SchemeUser: trueOrFalse, SchemeAdmin: !trueOrFalse}, 999)
res := <-ss.Team().SaveMember(&model.TeamMember{TeamId: team.Id, UserId: user.Id, SchemeUser: trueOrFalse, SchemeAdmin: !trueOrFalse}, 999)
require.Nil(t, res.Err)
}
@@ -2392,13 +2377,12 @@ func testChannelMembersMinusGroupMembers(t *testing.T, ss store.Store) {
Email: MakeEmail(),
Username: model.NewId(),
}
res := <-ss.User().Save(user)
require.Nil(t, res.Err)
user = res.Data.(*model.User)
user, err = ss.User().Save(user)
require.Nil(t, err)
users = append(users, user)
trueOrFalse := int(math.Mod(float64(i), 2)) == 0
res = <-ss.Channel().SaveMember(&model.ChannelMember{
res := <-ss.Channel().SaveMember(&model.ChannelMember{
ChannelId: channel.Id,
UserId: user.Id,
SchemeUser: trueOrFalse,

View File

@@ -888,19 +888,28 @@ func (_m *UserStore) ResetLastPictureUpdate(userId string) *model.AppError {
}
// Save provides a mock function with given fields: user
func (_m *UserStore) Save(user *model.User) store.StoreChannel {
func (_m *UserStore) Save(user *model.User) (*model.User, *model.AppError) {
ret := _m.Called(user)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(*model.User) store.StoreChannel); ok {
var r0 *model.User
if rf, ok := ret.Get(0).(func(*model.User) *model.User); ok {
r0 = rf(user)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel)
r0 = ret.Get(0).(*model.User)
}
}
return r0
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(*model.User) *model.AppError); ok {
r1 = rf(user)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// Search provides a mock function with given fields: teamId, term, options

View File

@@ -2360,7 +2360,8 @@ func testPostStoreGetParentsForExportAfter(t *testing.T, ss store.Store) {
u1.Username = model.NewId()
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err = ss.User().Save(&u1)
require.Nil(t, err)
p1 := &model.Post{}
p1.ChannelId = c1.Id
@@ -2407,7 +2408,8 @@ func testPostStoreGetRepliesForExport(t *testing.T, ss store.Store) {
u1 := model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err = ss.User().Save(&u1)
require.Nil(t, err)
p1 := &model.Post{}
p1.ChannelId = c1.Id
@@ -2466,13 +2468,15 @@ func testPostStoreGetDirectPostParentsForExportAfter(t *testing.T, ss store.Stor
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
m1 := model.ChannelMember{}
@@ -2492,7 +2496,7 @@ func testPostStoreGetDirectPostParentsForExportAfter(t *testing.T, ss store.Stor
p1.UserId = u1.Id
p1.Message = "zz" + model.NewId() + "AAAAAAAAAAA"
p1.CreateAt = 1000
p1, err := ss.Post().Save(p1)
p1, err = ss.Post().Save(p1)
require.Nil(t, err)
r1, err := ss.Post().GetDirectPostParentsForExportAfter(10000, strings.Repeat("0", 26))
@@ -2517,14 +2521,16 @@ func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, ss sto
u1.DeleteAt = 1
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.DeleteAt = 1
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
m1 := model.ChannelMember{}
@@ -2540,7 +2546,7 @@ func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, ss sto
ss.Channel().SaveDirectChannel(&o1, &m1, &m2)
o1.DeleteAt = 1
err := ss.Channel().SetDeleteAt(o1.Id, 1, 1)
err = ss.Channel().SetDeleteAt(o1.Id, 1, 1)
assert.Nil(t, err)
p1 := &model.Post{}
@@ -2582,13 +2588,15 @@ func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, ss sto
u1 := &model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
u2 := &model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u2.Id}, -1))
m1 := model.ChannelMember{}
@@ -2608,7 +2616,7 @@ func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, ss sto
p1.UserId = u1.Id
p1.Message = "zz" + model.NewId() + "AAAAAAAAAAA"
p1.CreateAt = 1000
p1, err := ss.Post().Save(p1)
p1, err = ss.Post().Save(p1)
require.Nil(t, err)
postIds = append(postIds, p1.Id)
}

View File

@@ -922,10 +922,12 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
userIds := make([]string, maxUsersPerTeam)
for i := 0; i < maxUsersPerTeam; i++ {
userIds[i] = store.Must(ss.User().Save(&model.User{
user, err := ss.User().Save(&model.User{
Username: model.NewId(),
Email: MakeEmail(),
})).(*model.User).Id
})
require.Nil(t, err)
userIds[i] = user.Id
defer func(userId string) {
ss.User().PermanentDelete(userId)
@@ -947,10 +949,12 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
t.Fatalf("should start with 5 team members, had %v instead", totalMemberCount)
}
newUserId := store.Must(ss.User().Save(&model.User{
user, err := ss.User().Save(&model.User{
Username: model.NewId(),
Email: MakeEmail(),
})).(*model.User).Id
})
require.Nil(t, err)
newUserId := user.Id
defer func() {
ss.User().PermanentDelete(newUserId)
}()
@@ -962,23 +966,23 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
t.Fatal("shouldn't be able to save member when at maximum members per team")
}
if totalMemberCount, err := ss.Team().GetTotalMemberCount(team.Id); err != nil {
t.Fatal(err)
if totalMemberCount, teamErr := ss.Team().GetTotalMemberCount(team.Id); teamErr != nil {
t.Fatal(teamErr)
} else if int(totalMemberCount) != maxUsersPerTeam {
t.Fatalf("should still have 5 team members, had %v instead", totalMemberCount)
}
// Leaving the team from the UI sets DeleteAt instead of using TeamStore.RemoveMember
if _, err := ss.Team().UpdateMember(&model.TeamMember{
if _, teamErr := ss.Team().UpdateMember(&model.TeamMember{
TeamId: team.Id,
UserId: userIds[0],
DeleteAt: 1234,
}); err != nil {
panic(err)
}); teamErr != nil {
panic(teamErr)
}
if totalMemberCount, err := ss.Team().GetTotalMemberCount(team.Id); err != nil {
t.Fatal(err)
if totalMemberCount, teamErr := ss.Team().GetTotalMemberCount(team.Id); teamErr != nil {
t.Fatal(teamErr)
} else if int(totalMemberCount) != maxUsersPerTeam-1 {
t.Fatalf("should now only have 4 team members, had %v instead", totalMemberCount)
}
@@ -991,8 +995,8 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
}(newUserId)
}
if totalMemberCount, err := ss.Team().GetTotalMemberCount(team.Id); err != nil {
t.Fatal(err)
if totalMemberCount, teamErr := ss.Team().GetTotalMemberCount(team.Id); teamErr != nil {
t.Fatal(teamErr)
} else if int(totalMemberCount) != maxUsersPerTeam {
t.Fatalf("should have 5 team members again, had %v instead", totalMemberCount)
}
@@ -1004,10 +1008,12 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
_, err = ss.User().Update(user2, true)
require.Nil(t, err)
newUserId2 := store.Must(ss.User().Save(&model.User{
user, err = ss.User().Save(&model.User{
Username: model.NewId(),
Email: MakeEmail(),
})).(*model.User).Id
})
require.Nil(t, err)
newUserId2 := user.Id
if result := <-ss.Team().SaveMember(&model.TeamMember{TeamId: team.Id, UserId: newUserId2}, maxUsersPerTeam); result.Err != nil {
t.Fatal("should've been able to save new member after deleting one", result.Err)
} else {
@@ -1125,12 +1131,14 @@ func testGetTeamMembersByIds(t *testing.T, ss store.Store) {
func testTeamStoreMemberCount(t *testing.T, ss store.Store) {
u1 := &model.User{}
u1.Email = MakeEmail()
store.Must(ss.User().Save(u1))
_, err := ss.User().Save(u1)
require.Nil(t, err)
u2 := &model.User{}
u2.Email = MakeEmail()
u2.DeleteAt = 1
store.Must(ss.User().Save(u2))
_, err = ss.User().Save(u2)
require.Nil(t, err)
teamId1 := model.NewId()
m1 := &model.TeamMember{TeamId: teamId1, UserId: u1.Id}
@@ -1638,12 +1646,14 @@ func testTeamStoreGetTeamMembersForExport(t *testing.T, ss store.Store) {
u1 := model.User{}
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err = ss.User().Save(&u1)
require.Nil(t, err)
u2 := model.User{}
u2.Email = MakeEmail()
u2.Nickname = model.NewId()
store.Must(ss.User().Save(&u2))
_, err = ss.User().Save(&u2)
require.Nil(t, err)
m1 := &model.TeamMember{TeamId: t1.Id, UserId: u1.Id}
store.Must(ss.Team().SaveMember(m1, -1))

View File

@@ -23,7 +23,8 @@ func testSaveTermsOfService(t *testing.T, ss store.Store) {
u1.Username = model.NewId()
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err := ss.User().Save(&u1)
require.Nil(t, err)
termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id}
savedTermsOfService, err := ss.TermsOfService().Save(termsOfService)
@@ -43,10 +44,12 @@ func testGetLatestTermsOfService(t *testing.T, ss store.Store) {
u1.Username = model.NewId()
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err := ss.User().Save(&u1)
require.Nil(t, err)
termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id}
_, err := ss.TermsOfService().Save(termsOfService)
_, err = ss.TermsOfService().Save(termsOfService)
require.Nil(t, err)
fetchedTermsOfService, err := ss.TermsOfService().GetLatest(true)
require.Nil(t, err)
@@ -59,10 +62,11 @@ func testGetTermsOfService(t *testing.T, ss store.Store) {
u1.Username = model.NewId()
u1.Email = MakeEmail()
u1.Nickname = model.NewId()
store.Must(ss.User().Save(&u1))
_, err := ss.User().Save(&u1)
require.Nil(t, err)
termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id}
_, err := ss.TermsOfService().Save(termsOfService)
_, err = ss.TermsOfService().Save(termsOfService)
require.Nil(t, err)
r1, err := ss.TermsOfService().Get("an_invalid_id", true)

View File

@@ -142,7 +142,8 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
u1.Email = MakeEmail()
u1.Username = model.NewId()
store.Must(ss.User().Save(&u1))
_, err := ss.User().Save(&u1)
require.Nil(t, err)
uat := &model.UserAccessToken{
Token: model.NewId(),
@@ -154,7 +155,7 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) {
s1.UserId = uat.UserId
s1.Token = uat.Token
s1, err := ss.Session().Save(s1)
s1, err = ss.Session().Save(s1)
require.Nil(t, err)
if _, err = ss.UserAccessToken().Save(uat); err != nil {

File diff suppressed because it is too large Load Diff