Convert app/user_test.go t.Fatal calls into assert/require calls (#12219)

* Convert app/user_test.go t.Fatal calls into assert/require calls

* arrange expected and actual arguments as per semantics

* arrange expected and actual arguments as per go semantics

* fix for notEqual
Этот коммит содержится в:
Nikhil Ranjan
2019-10-02 19:00:42 +02:00
коммит произвёл Lev
родитель 8ab0e80b77
Коммит 3e0da03310

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

@@ -79,41 +79,29 @@ func TestCreateOAuthUser(t *testing.T) {
json := glUser.ToJson() json := glUser.ToJson()
user, err := th.App.CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id) user, err := th.App.CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id)
if err != nil { require.Nil(t, err)
t.Fatal(err)
}
if user.Username != glUser.Username { require.Equal(t, glUser.Username, user.Username, "usernames didn't match")
t.Fatal("usernames didn't match")
}
th.App.PermanentDeleteUser(user) th.App.PermanentDeleteUser(user)
*th.App.Config().TeamSettings.EnableUserCreation = false *th.App.Config().TeamSettings.EnableUserCreation = false
_, err = th.App.CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id) _, err = th.App.CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id)
if err == nil { require.NotNil(t, err, "should have failed - user creation disabled")
t.Fatal("should have failed - user creation disabled")
}
} }
func TestCreateProfileImage(t *testing.T) { func TestCreateProfileImage(t *testing.T) {
b, err := CreateProfileImage("Corey Hulen", "eo1zkdr96pdj98pjmq8zy35wba", "nunito-bold.ttf") b, err := CreateProfileImage("Corey Hulen", "eo1zkdr96pdj98pjmq8zy35wba", "nunito-bold.ttf")
if err != nil { require.Nil(t, err)
t.Fatal(err)
}
rdr := bytes.NewReader(b) rdr := bytes.NewReader(b)
img, _, err2 := image.Decode(rdr) img, _, err2 := image.Decode(rdr)
if err2 != nil { require.Nil(t, err2)
t.Fatal(err)
}
colorful := color.RGBA{116, 49, 196, 255} colorful := color.RGBA{116, 49, 196, 255}
if img.At(1, 1) != colorful { require.Equal(t, colorful, img.At(1, 1), "Failed to create correct color")
t.Fatal("Failed to create correct color")
}
} }
func TestSetDefaultProfileImage(t *testing.T) { func TestSetDefaultProfileImage(t *testing.T) {
@@ -164,7 +152,7 @@ func TestUpdateUserToRestrictedDomain(t *testing.T) {
guest.Email = "asdf@bar.com" guest.Email = "asdf@bar.com"
updatedGuest, err := th.App.UpdateUser(guest, false) updatedGuest, err := th.App.UpdateUser(guest, false)
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, updatedGuest.Email, guest.Email) require.Equal(t, guest.Email, updatedGuest.Email)
}) })
t.Run("Guest users should be affected by guest restricted domains", func(t *testing.T) { t.Run("Guest users should be affected by guest restricted domains", func(t *testing.T) {
@@ -182,7 +170,7 @@ func TestUpdateUserToRestrictedDomain(t *testing.T) {
guest.Email = "asdf@foo.com" guest.Email = "asdf@foo.com"
updatedGuest, err := th.App.UpdateUser(guest, false) updatedGuest, err := th.App.UpdateUser(guest, false)
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, updatedGuest.Email, guest.Email) require.Equal(t, guest.Email, updatedGuest.Email)
}) })
} }
@@ -278,9 +266,7 @@ func TestUpdateOAuthUserAttrs(t *testing.T) {
th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab") th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab")
user = getUserFromDB(th.App, user.Id, t) user = getUserFromDB(th.App, user.Id, t)
if user.Username != gitlabUserObj.Username { require.Equal(t, gitlabUserObj.Username, user.Username, "user's username is not updated")
t.Fatal("user's username is not updated")
}
}) })
t.Run("ExistinguserWithSameUsername", func(t *testing.T) { t.Run("ExistinguserWithSameUsername", func(t *testing.T) {
@@ -293,9 +279,7 @@ func TestUpdateOAuthUserAttrs(t *testing.T) {
th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab") th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab")
user = getUserFromDB(th.App, user.Id, t) user = getUserFromDB(th.App, user.Id, t)
if user.Username == gitlabUserObj.Username { require.NotEqual(t, gitlabUserObj.Username, user.Username, "user's username is updated though there already exists another user with the same username")
t.Fatal("user's username is updated though there already exists another user with the same username")
}
}) })
}) })
@@ -309,13 +293,9 @@ func TestUpdateOAuthUserAttrs(t *testing.T) {
th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab") th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab")
user = getUserFromDB(th.App, user.Id, t) user = getUserFromDB(th.App, user.Id, t)
if user.Email != gitlabUserObj.Email { require.Equal(t, gitlabUserObj.Email, user.Email, "user's email is not updated")
t.Fatal("user's email is not updated")
}
if !user.EmailVerified { require.True(t, user.EmailVerified, "user's email should have been verified")
t.Fatal("user's email should have been verified")
}
}) })
t.Run("ExistingUserWithSameEmail", func(t *testing.T) { t.Run("ExistingUserWithSameEmail", func(t *testing.T) {
@@ -328,9 +308,7 @@ func TestUpdateOAuthUserAttrs(t *testing.T) {
th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab") th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab")
user = getUserFromDB(th.App, user.Id, t) user = getUserFromDB(th.App, user.Id, t)
if user.Email == gitlabUserObj.Email { require.NotEqual(t, gitlabUserObj.Email, user.Email, "user's email is updated though there already exists another user with the same email")
t.Fatal("user's email is updated though there already exists another user with the same email")
}
}) })
}) })
@@ -343,9 +321,7 @@ func TestUpdateOAuthUserAttrs(t *testing.T) {
th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab") th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab")
user = getUserFromDB(th.App, user.Id, t) user = getUserFromDB(th.App, user.Id, t)
if user.FirstName != "Updated" { require.Equal(t, "Updated", user.FirstName, "user's first name is not updated")
t.Fatal("user's first name is not updated")
}
}) })
t.Run("UpdateLastName", func(t *testing.T) { t.Run("UpdateLastName", func(t *testing.T) {
@@ -357,9 +333,7 @@ func TestUpdateOAuthUserAttrs(t *testing.T) {
th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab") th.App.UpdateOAuthUserAttrs(data, user, gitlabProvider, "gitlab")
user = getUserFromDB(th.App, user.Id, t) user = getUserFromDB(th.App, user.Id, t)
if user.LastName != "Lastname" { require.Equal(t, "Lastname", user.LastName, "user's last name is not updated")
t.Fatal("user's last name is not updated")
}
}) })
} }
@@ -456,19 +430,15 @@ func TestUpdateUserEmail(t *testing.T) {
func getUserFromDB(a *App, id string, t *testing.T) *model.User { func getUserFromDB(a *App, id string, t *testing.T) *model.User {
user, err := a.GetUser(id) user, err := a.GetUser(id)
if err != nil { require.Nil(t, err, "user is not found", err)
t.Fatal("user is not found", err)
return nil
}
return user return user
} }
func getGitlabUserPayload(gitlabUser oauthgitlab.GitLabUser, t *testing.T) []byte { func getGitlabUserPayload(gitlabUser oauthgitlab.GitLabUser, t *testing.T) []byte {
var payload []byte var payload []byte
var err error var err error
if payload, err = json.Marshal(gitlabUser); err != nil { payload, err = json.Marshal(gitlabUser)
t.Fatal("Serialization of gitlab user to json failed", err) require.Nil(t, err, "Serialization of gitlab user to json failed", err)
}
return payload return payload
} }
@@ -481,9 +451,8 @@ func createGitlabUser(t *testing.T, a *App, username string, email string) (*mod
var user *model.User var user *model.User
var err *model.AppError var err *model.AppError
if user, err = a.CreateOAuthUser("gitlab", bytes.NewReader(gitlabUser), ""); err != nil { user, err = a.CreateOAuthUser("gitlab", bytes.NewReader(gitlabUser), "")
t.Fatal("unable to create the user", err) require.Nil(t, err, "unable to create the user", err)
}
return user, gitlabUserObj return user, gitlabUserObj
} }
@@ -500,9 +469,7 @@ func TestGetUsersByStatus(t *testing.T) {
TeamId: team.Id, TeamId: team.Id,
CreatorId: model.NewId(), CreatorId: model.NewId(),
}, false) }, false)
if err != nil { require.Nil(t, err, "failed to create channel: %v", err)
t.Fatalf("failed to create channel: %v", err)
}
createUserWithStatus := func(username string, status string) *model.User { createUserWithStatus := func(username string, status string) *model.User {
id := model.NewId() id := model.NewId()
@@ -513,9 +480,7 @@ func TestGetUsersByStatus(t *testing.T) {
Nickname: "nn_" + id, Nickname: "nn_" + id,
Password: "Password1", Password: "Password1",
}) })
if err != nil { require.Nil(t, err, "failed to create user: %v", err)
t.Fatalf("failed to create user: %v", err)
}
th.LinkUserToTeam(user, team) th.LinkUserToTeam(user, team)
th.AddUserToChannel(user, channel) th.AddUserToChannel(user, channel)
@@ -541,9 +506,7 @@ func TestGetUsersByStatus(t *testing.T) {
t.Run("sorting by status then alphabetical", func(t *testing.T) { t.Run("sorting by status then alphabetical", func(t *testing.T) {
usersByStatus, err := th.App.GetUsersInChannelPageByStatus(channel.Id, 0, 8, true) usersByStatus, err := th.App.GetUsersInChannelPageByStatus(channel.Id, 0, 8, true)
if err != nil { require.Nil(t, err)
t.Fatal(err)
}
expectedUsersByStatus := []*model.User{ expectedUsersByStatus := []*model.User{
onlineUser1, onlineUser1,
@@ -556,64 +519,54 @@ func TestGetUsersByStatus(t *testing.T) {
offlineUser2, offlineUser2,
} }
if len(usersByStatus) != len(expectedUsersByStatus) { require.Equalf(t, len(expectedUsersByStatus), len(usersByStatus), "received only %v users, expected %v", len(usersByStatus), len(expectedUsersByStatus))
t.Fatalf("received only %v users, expected %v", len(usersByStatus), len(expectedUsersByStatus))
}
for i := range usersByStatus { for i := range usersByStatus {
if usersByStatus[i].Id != expectedUsersByStatus[i].Id { require.Equalf(t, expectedUsersByStatus[i].Id, usersByStatus[i].Id, "received user %v at index %v, expected %v", usersByStatus[i].Username, i, expectedUsersByStatus[i].Username)
t.Fatalf("received user %v at index %v, expected %v", usersByStatus[i].Username, i, expectedUsersByStatus[i].Username)
}
} }
}) })
t.Run("paging", func(t *testing.T) { t.Run("paging", func(t *testing.T) {
usersByStatus, err := th.App.GetUsersInChannelPageByStatus(channel.Id, 0, 3, true) usersByStatus, err := th.App.GetUsersInChannelPageByStatus(channel.Id, 0, 3, true)
if err != nil { require.Nil(t, err)
t.Fatal(err)
}
if len(usersByStatus) != 3 { require.Equal(t, 3, len(usersByStatus), "received too many users")
t.Fatal("received too many users")
}
if usersByStatus[0].Id != onlineUser1.Id && usersByStatus[1].Id != onlineUser2.Id { require.False(
t.Fatal("expected to receive online users first") t,
} usersByStatus[0].Id != onlineUser1.Id && usersByStatus[1].Id != onlineUser2.Id,
"expected to receive online users first",
)
if usersByStatus[2].Id != awayUser1.Id { require.Equal(t, awayUser1.Id, usersByStatus[2].Id, "expected to receive away users second")
t.Fatal("expected to receive away users second")
}
usersByStatus, err = th.App.GetUsersInChannelPageByStatus(channel.Id, 1, 3, true) usersByStatus, err = th.App.GetUsersInChannelPageByStatus(channel.Id, 1, 3, true)
if err != nil { require.Nil(t, err)
t.Fatal(err)
}
if usersByStatus[0].Id != awayUser2.Id { require.Equal(t, awayUser2.Id, usersByStatus[0].Id, "expected to receive away users second")
t.Fatal("expected to receive away users second")
}
if usersByStatus[1].Id != dndUser1.Id && usersByStatus[2].Id != dndUser2.Id { require.False(
t.Fatal("expected to receive dnd users third") t,
} usersByStatus[1].Id != dndUser1.Id && usersByStatus[2].Id != dndUser2.Id,
"expected to receive dnd users third",
)
usersByStatus, err = th.App.GetUsersInChannelPageByStatus(channel.Id, 1, 4, true) usersByStatus, err = th.App.GetUsersInChannelPageByStatus(channel.Id, 1, 4, true)
if err != nil { require.Nil(t, err)
t.Fatal(err)
}
if len(usersByStatus) != 4 { require.Equal(t, 4, len(usersByStatus), "received too many users")
t.Fatal("received too many users")
}
if usersByStatus[0].Id != dndUser1.Id && usersByStatus[1].Id != dndUser2.Id { require.False(
t.Fatal("expected to receive dnd users third") t,
} usersByStatus[0].Id != dndUser1.Id && usersByStatus[1].Id != dndUser2.Id,
"expected to receive dnd users third",
)
if usersByStatus[2].Id != offlineUser1.Id && usersByStatus[3].Id != offlineUser2.Id { require.False(
t.Fatal("expected to receive offline users last") t,
} usersByStatus[2].Id != offlineUser1.Id && usersByStatus[3].Id != offlineUser2.Id,
"expected to receive offline users last",
)
}) })
} }
@@ -624,9 +577,8 @@ func TestCreateUserWithToken(t *testing.T) {
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Darth Vader", Username: "vader" + model.NewId(), Password: "passwd1", AuthService: ""} user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Darth Vader", Username: "vader" + model.NewId(), Password: "passwd1", AuthService: ""}
t.Run("invalid token", func(t *testing.T) { t.Run("invalid token", func(t *testing.T) {
if _, err := th.App.CreateUserWithToken(&user, &model.Token{Token: "123"}); err == nil { _, err := th.App.CreateUserWithToken(&user, &model.Token{Token: "123"})
t.Fatal("Should fail on unexisting token") require.NotNil(t, err, "Should fail on unexisting token")
}
}) })
t.Run("invalid token type", func(t *testing.T) { t.Run("invalid token type", func(t *testing.T) {
@@ -636,9 +588,8 @@ func TestCreateUserWithToken(t *testing.T) {
) )
require.Nil(t, th.App.Srv.Store.Token().Save(token)) require.Nil(t, th.App.Srv.Store.Token().Save(token))
defer th.App.DeleteToken(token) defer th.App.DeleteToken(token)
if _, err := th.App.CreateUserWithToken(&user, token); err == nil { _, err := th.App.CreateUserWithToken(&user, token)
t.Fatal("Should fail on bad token type") require.NotNil(t, err, "Should fail on bad token type")
}
}) })
t.Run("expired token", func(t *testing.T) { t.Run("expired token", func(t *testing.T) {
@@ -649,9 +600,8 @@ func TestCreateUserWithToken(t *testing.T) {
token.CreateAt = model.GetMillis() - INVITATION_EXPIRY_TIME - 1 token.CreateAt = model.GetMillis() - INVITATION_EXPIRY_TIME - 1
require.Nil(t, th.App.Srv.Store.Token().Save(token)) require.Nil(t, th.App.Srv.Store.Token().Save(token))
defer th.App.DeleteToken(token) defer th.App.DeleteToken(token)
if _, err := th.App.CreateUserWithToken(&user, token); err == nil { _, err := th.App.CreateUserWithToken(&user, token)
t.Fatal("Should fail on expired token") require.NotNil(t, err, "Should fail on expired token")
}
}) })
t.Run("invalid team id", func(t *testing.T) { t.Run("invalid team id", func(t *testing.T) {
@@ -661,9 +611,8 @@ func TestCreateUserWithToken(t *testing.T) {
) )
require.Nil(t, th.App.Srv.Store.Token().Save(token)) require.Nil(t, th.App.Srv.Store.Token().Save(token))
defer th.App.DeleteToken(token) defer th.App.DeleteToken(token)
if _, err := th.App.CreateUserWithToken(&user, token); err == nil { _, err := th.App.CreateUserWithToken(&user, token)
t.Fatal("Should fail on bad team id") require.NotNil(t, err, "Should fail on bad team id")
}
}) })
t.Run("valid regular user request", func(t *testing.T) { t.Run("valid regular user request", func(t *testing.T) {
@@ -674,14 +623,9 @@ func TestCreateUserWithToken(t *testing.T) {
) )
require.Nil(t, th.App.Srv.Store.Token().Save(token)) require.Nil(t, th.App.Srv.Store.Token().Save(token))
newUser, err := th.App.CreateUserWithToken(&user, token) newUser, err := th.App.CreateUserWithToken(&user, token)
if err != nil { require.Nil(t, err, "Should add user to the team. err=%v", err)
t.Log(err)
t.Fatal("Should add user to the team")
}
assert.False(t, newUser.IsGuest()) assert.False(t, newUser.IsGuest())
if newUser.Email != invitationEmail { require.Equal(t, invitationEmail, newUser.Email, "The user email must be the invitation one")
t.Fatal("The user email must be the invitation one")
}
_, err = th.App.Srv.Store.Token().GetByToken(token.Token) _, err = th.App.Srv.Store.Token().GetByToken(token.Token)
require.NotNil(t, err, "The token must be deleted after be used") require.NotNil(t, err, "The token must be deleted after be used")
@@ -700,14 +644,10 @@ func TestCreateUserWithToken(t *testing.T) {
require.Nil(t, th.App.Srv.Store.Token().Save(token)) require.Nil(t, th.App.Srv.Store.Token().Save(token))
guest := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Darth Vader", Username: "vader" + model.NewId(), Password: "passwd1", AuthService: ""} guest := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Darth Vader", Username: "vader" + model.NewId(), Password: "passwd1", AuthService: ""}
newGuest, err := th.App.CreateUserWithToken(&guest, token) newGuest, err := th.App.CreateUserWithToken(&guest, token)
if err != nil { require.Nil(t, err, "Should add user to the team. err=%v", err)
t.Log(err)
t.Fatal("Should add user to the team")
}
assert.True(t, newGuest.IsGuest()) assert.True(t, newGuest.IsGuest())
if newGuest.Email != invitationEmail { require.Equal(t, invitationEmail, newGuest.Email, "The user email must be the invitation one")
t.Fatal("The user email must be the invitation one")
}
_, err = th.App.Srv.Store.Token().GetByToken(token.Token) _, err = th.App.Srv.Store.Token().GetByToken(token.Token)
require.NotNil(t, err, "The token must be deleted after be used") require.NotNil(t, err, "The token must be deleted after be used")
@@ -726,10 +666,7 @@ func TestPermanentDeleteUser(t *testing.T) {
finfo, err := th.App.DoUploadFile(time.Now(), th.BasicTeam.Id, th.BasicChannel.Id, th.BasicUser.Id, "testfile.txt", b) finfo, err := th.App.DoUploadFile(time.Now(), th.BasicTeam.Id, th.BasicChannel.Id, th.BasicUser.Id, "testfile.txt", b)
if err != nil { require.Nil(t, err, "Unable to upload file. err=%v", err)
t.Log(err)
t.Fatal("Unable to upload file")
}
bot, err := th.App.CreateBot(&model.Bot{ bot, err := th.App.CreateBot(&model.Bot{
Username: "botname", Username: "botname",
@@ -758,34 +695,19 @@ func TestPermanentDeleteUser(t *testing.T) {
assert.Equal(t, 0, len(bots2)) assert.Equal(t, 0, len(bots2))
err = th.App.PermanentDeleteUser(th.BasicUser) err = th.App.PermanentDeleteUser(th.BasicUser)
if err != nil { require.Nil(t, err, "Unable to delete user. err=%v", err)
t.Log(err)
t.Fatal("Unable to delete user")
}
res, err := th.App.FileExists(finfo.Path) res, err := th.App.FileExists(finfo.Path)
if err != nil { require.Nil(t, err, "Unable to check whether file exists. err=%v", err)
t.Log(err)
t.Fatal("Unable to check whether file exists")
}
if res { require.False(t, res, "File was not deleted on FS. err=%v", err)
t.Log(err)
t.Fatal("File was not deleted on FS")
}
finfo, err = th.App.GetFileInfo(finfo.Id) finfo, err = th.App.GetFileInfo(finfo.Id)
if finfo != nil { require.Nil(t, finfo, "Unable to find finfo. err=%v", err)
t.Log(err)
t.Fatal("Unable to find finfo")
}
if err == nil { require.NotNil(t, err, "GetFileInfo after DeleteUser is nil. err=%v", err)
t.Log(err)
t.Fatal("GetFileInfo after DeleteUser is nil")
}
} }
func TestPasswordRecovery(t *testing.T) { func TestPasswordRecovery(t *testing.T) {