diff --git a/internal/entity/user_fixtures.go b/internal/entity/user_fixtures.go index 958c17a0f..c398b4914 100644 --- a/internal/entity/user_fixtures.go +++ b/internal/entity/user_fixtures.go @@ -53,6 +53,19 @@ var UserFixtures = UserMap{ UserDisabled: true, PrimaryEmail: "friend@example.com", }, + "deleted": { + ID: 10000008, + AddressID: 1000000, + UserUID: "uqxqg7i1kperxvu8", + UserName: "deleted", + FullName: "Deleted User", + RoleAdmin: false, + RoleGuest: true, + RoleFriend: false, + UserDisabled: false, + PrimaryEmail: "", + DeletedAt: &deleteTime, + }, } // CreateUserFixtures inserts known entities into the database for testing. diff --git a/internal/entity/user_test.go b/internal/entity/user_test.go index 82433622c..e08410b3e 100644 --- a/internal/entity/user_test.go +++ b/internal/entity/user_test.go @@ -93,6 +93,15 @@ func TestUser_InvalidPassword(t *testing.T) { assert.False(t, m.InvalidPassword("photoprism")) }) + t.Run("admin invalid password", func(t *testing.T) { + m := FindUserByName("admin") + + if m == nil { + t.Fatal("result should not be nil") + } + + assert.True(t, m.InvalidPassword("wrong-password")) + }) t.Run("no password existing", func(t *testing.T) { p := User{UserUID: "u000000000000010", UserName: "Hans", FullName: ""} err := p.Save() @@ -414,26 +423,26 @@ func TestUser_Validate(t *testing.T) { AddressID: 1, UserName: "notunique1", }) - ures := &User{ + u := &User{ AddressID: 1, UserName: "notunique1", FullName: "Not Unique", PrimaryEmail: "notunique1@example.com", } - assert.Error(t, ures.Validate()) + assert.Error(t, u.Validate()) }) t.Run("email not unique", func(t *testing.T) { FirstOrCreateUser(&User{ AddressID: 1, PrimaryEmail: "notunique2@example.com", }) - ures := &User{ + u := &User{ AddressID: 1, UserName: "notunique2", FullName: "Not Unique", PrimaryEmail: "notunique2@example.com", } - assert.Error(t, ures.Validate()) + assert.Error(t, u.Validate()) }) t.Run("update user - email not unique", func(t *testing.T) { FirstOrCreateUser(&User{ @@ -451,6 +460,19 @@ func TestUser_Validate(t *testing.T) { u.UserName = "notunique3" assert.Error(t, u.Validate()) }) + t.Run("primary email empty", func(t *testing.T) { + FirstOrCreateUser(&User{ + AddressID: 1, + UserName: "nnomail", + }) + u := &User{ + AddressID: 1, + UserName: "nomail", + FullName: "No Mail", + PrimaryEmail: "", + } + assert.Nil(t, u.Validate()) + }) } func TestCreateWithPassword(t *testing.T) { @@ -499,3 +521,8 @@ func TestDeleteUser(t *testing.T) { assert.Error(t, err) }) } + +func TestUser_Deleted(t *testing.T) { + assert.False(t, UserFixtures.Pointer("alice").Deleted()) + assert.True(t, UserFixtures.Pointer("deleted").Deleted()) +}