Auth: Improve user entity model and add unit tests #98

Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
Michael Mayer
2023-02-20 15:54:33 +01:00
parent 1942f93bf1
commit 43d6a5e193
8 changed files with 220 additions and 23 deletions

View File

@@ -838,3 +838,129 @@ func TestUser_Provider(t *testing.T) {
assert.Equal(t, "password", Admin.Provider())
})
}
func TestUser_GetBasePath(t *testing.T) {
t.Run("Visitor", func(t *testing.T) {
assert.Equal(t, "", Visitor.GetBasePath())
})
t.Run("UnknownUser", func(t *testing.T) {
assert.Equal(t, "", UnknownUser.GetBasePath())
})
t.Run("Admin", func(t *testing.T) {
assert.Equal(t, "", Admin.GetBasePath())
})
}
func TestUser_SetBasePath(t *testing.T) {
t.Run("Test", func(t *testing.T) {
u := User{
ID: 1234567,
UserUID: "urqdrfb72479n047",
UserName: "test",
UserRole: acl.RoleAdmin.String(),
DisplayName: "Test",
SuperAdmin: false,
CanLogin: true,
WebDAV: true,
CanInvite: false,
}
assert.Equal(t, "base", u.SetBasePath("base").GetBasePath())
assert.Equal(t, "users/urqdrfb72479n047", u.SetBasePath("~").GetBasePath())
assert.Equal(t, "users/urqdrfb72479n047", u.GetUploadPath())
})
}
func TestUser_GetUploadPath(t *testing.T) {
t.Run("Visitor", func(t *testing.T) {
assert.Equal(t, "", Visitor.GetUploadPath())
})
t.Run("UnknownUser", func(t *testing.T) {
assert.Equal(t, "", UnknownUser.GetUploadPath())
})
t.Run("Admin", func(t *testing.T) {
assert.Equal(t, "", Admin.GetUploadPath())
})
}
func TestUser_SetUploadPath(t *testing.T) {
t.Run("Test", func(t *testing.T) {
u := User{
ID: 1234567,
UserUID: "urqdrfb72479n047",
UserName: "test",
UserRole: acl.RoleAdmin.String(),
DisplayName: "Test",
SuperAdmin: false,
CanLogin: true,
WebDAV: true,
CanInvite: false,
}
assert.Equal(t, "upload", u.SetUploadPath("upload").GetUploadPath())
assert.Equal(t, "base/upload", u.SetBasePath("base").GetUploadPath())
assert.Equal(t, "base", u.SetUploadPath("~").GetUploadPath())
assert.Equal(t, "users/urqdrfb72479n047", u.SetBasePath("~").GetUploadPath())
})
}
func TestUser_Handle(t *testing.T) {
t.Run("Default", func(t *testing.T) {
u := User{
ID: 1234567,
UserUID: "urqdrfb72479n047",
UserName: "mr-happy@cat.com",
UserRole: acl.RoleAdmin.String(),
DisplayName: "",
SuperAdmin: false,
CanLogin: true,
WebDAV: true,
CanInvite: false,
}
assert.Equal(t, "mr-happy@cat.com", u.Login())
assert.Equal(t, "mr-happy", u.Handle())
u.UserName = "mr.happy@cat.com"
assert.Equal(t, "mr.happy", u.Handle())
u.UserName = "mr.happy"
assert.Equal(t, "mr.happy", u.Handle())
})
}
func TestUser_FullName(t *testing.T) {
t.Run("Default", func(t *testing.T) {
u := User{
ID: 1234567,
UserUID: "urqdrfb72479n047",
UserName: "mr-happy@cat.com",
UserRole: acl.RoleAdmin.String(),
DisplayName: "",
SuperAdmin: false,
CanLogin: true,
WebDAV: true,
CanInvite: false,
}
assert.Equal(t, "Mr-Happy", u.FullName())
u.UserName = "mr.happy@cat.com"
assert.Equal(t, "Mr Happy", u.FullName())
u.UserName = "mr.happy"
assert.Equal(t, "Mr Happy", u.FullName())
u.UserName = "foo@bar.com"
assert.Equal(t, "Foo", u.FullName())
u.SetDisplayName("Jane Doe")
assert.Equal(t, "Jane Doe", u.FullName())
})
}