aboutsummaryrefslogtreecommitdiff
path: root/internal/db/users_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/users_test.go')
-rw-r--r--internal/db/users_test.go107
1 files changed, 83 insertions, 24 deletions
diff --git a/internal/db/users_test.go b/internal/db/users_test.go
index 2ce0efd9..4cf5aaf4 100644
--- a/internal/db/users_test.go
+++ b/internal/db/users_test.go
@@ -731,16 +731,69 @@ func usersListFollowings(t *testing.T, db *users) {
func usersUpdate(t *testing.T, db *users) {
ctx := context.Background()
- alice, err := db.Create(ctx, "alice", "alice@example.com", CreateUserOptions{})
+ const oldPassword = "Password"
+ alice, err := db.Create(
+ ctx,
+ "alice",
+ "alice@example.com",
+ CreateUserOptions{
+ FullName: "FullName",
+ Password: oldPassword,
+ LoginSource: 9,
+ LoginName: "LoginName",
+ Location: "Location",
+ Website: "Website",
+ Activated: false,
+ Admin: false,
+ },
+ )
require.NoError(t, err)
- overLimitStr := strings.Repeat("a", 300)
+ t.Run("update password", func(t *testing.T) {
+ got := userutil.ValidatePassword(alice.Password, alice.Salt, oldPassword)
+ require.True(t, got)
+
+ newPassword := "NewPassword"
+ err = db.Update(ctx, alice.ID, UpdateUserOptions{Password: &newPassword})
+ require.NoError(t, err)
+ alice, err = db.GetByID(ctx, alice.ID)
+ require.NoError(t, err)
+
+ got = userutil.ValidatePassword(alice.Password, alice.Salt, oldPassword)
+ assert.False(t, got, "Old password should stop working")
+
+ got = userutil.ValidatePassword(alice.Password, alice.Salt, newPassword)
+ assert.True(t, got, "New password should work")
+ })
+
+ t.Run("update email but already used", func(t *testing.T) {
+ // todo
+ })
+
+ loginSource := int64(1)
+ maxRepoCreation := 99
+ lastRepoVisibility := true
+ overLimitStr := strings.Repeat("a", 2050)
opts := UpdateUserOptions{
- FullName: overLimitStr,
- Website: overLimitStr,
- Location: overLimitStr,
- Description: overLimitStr,
- MaxRepoCreation: 1,
+ LoginSource: &loginSource,
+ LoginName: &alice.Name,
+
+ FullName: &overLimitStr,
+ Website: &overLimitStr,
+ Location: &overLimitStr,
+ Description: &overLimitStr,
+
+ MaxRepoCreation: &maxRepoCreation,
+ LastRepoVisibility: &lastRepoVisibility,
+
+ IsActivated: &lastRepoVisibility,
+ IsAdmin: &lastRepoVisibility,
+ AllowGitHook: &lastRepoVisibility,
+ AllowImportLocal: &lastRepoVisibility,
+ ProhibitLogin: &lastRepoVisibility,
+
+ Avatar: &overLimitStr,
+ AvatarEmail: &overLimitStr,
}
err = db.Update(ctx, alice.ID, opts)
require.NoError(t, err)
@@ -748,28 +801,34 @@ func usersUpdate(t *testing.T, db *users) {
alice, err = db.GetByID(ctx, alice.ID)
require.NoError(t, err)
- wantStr := strings.Repeat("a", 255)
- assert.Equal(t, wantStr, alice.FullName)
- assert.Equal(t, wantStr, alice.Website)
- assert.Equal(t, wantStr, alice.Location)
- assert.Equal(t, wantStr, alice.Description)
- assert.Equal(t, 1, alice.MaxRepoCreation)
-
- // Test empty values
- opts = UpdateUserOptions{
- FullName: "Alice John",
- Website: "https://gogs.io",
+ assertValues := func() {
+ assert.Equal(t, loginSource, alice.LoginSource)
+ assert.Equal(t, alice.Name, alice.LoginName)
+ wantStr255 := strings.Repeat("a", 255)
+ assert.Equal(t, wantStr255, alice.FullName)
+ assert.Equal(t, wantStr255, alice.Website)
+ assert.Equal(t, wantStr255, alice.Location)
+ assert.Equal(t, wantStr255, alice.Description)
+ assert.Equal(t, maxRepoCreation, alice.MaxRepoCreation)
+ assert.Equal(t, lastRepoVisibility, alice.LastRepoVisibility)
+ assert.Equal(t, lastRepoVisibility, alice.IsActive)
+ assert.Equal(t, lastRepoVisibility, alice.IsAdmin)
+ assert.Equal(t, lastRepoVisibility, alice.AllowGitHook)
+ assert.Equal(t, lastRepoVisibility, alice.AllowImportLocal)
+ assert.Equal(t, lastRepoVisibility, alice.ProhibitLogin)
+ wantStr2048 := strings.Repeat("a", 2048)
+ assert.Equal(t, wantStr2048, alice.Avatar)
+ assert.Equal(t, wantStr255, alice.AvatarEmail)
}
- err = db.Update(ctx, alice.ID, opts)
+ assertValues()
+
+ // Test ignored values
+ err = db.Update(ctx, alice.ID, UpdateUserOptions{})
require.NoError(t, err)
alice, err = db.GetByID(ctx, alice.ID)
require.NoError(t, err)
- assert.Equal(t, opts.FullName, alice.FullName)
- assert.Equal(t, opts.Website, alice.Website)
- assert.Empty(t, alice.Location)
- assert.Empty(t, alice.Description)
- assert.Empty(t, alice.MaxRepoCreation)
+ assertValues()
}
func usersUseCustomAvatar(t *testing.T, db *users) {