69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
package xboard
|
|
|
|
import "testing"
|
|
|
|
func TestXUserResolveKeyPrefersPasswordFields(t *testing.T) {
|
|
user := XUser{
|
|
UUID: "uuid-value",
|
|
Passwd: "passwd-value",
|
|
Password: "password-value",
|
|
Token: "token-value",
|
|
}
|
|
|
|
if got := user.ResolveKey(); got != "passwd-value" {
|
|
t.Fatalf("ResolveKey() = %q, want %q", got, "passwd-value")
|
|
}
|
|
}
|
|
|
|
func TestXUserIdentifierPrefersUUID(t *testing.T) {
|
|
user := XUser{
|
|
ID: 7,
|
|
UUID: "uuid-value",
|
|
Email: "user@example.com",
|
|
}
|
|
|
|
if got := user.Identifier(); got != "uuid-value" {
|
|
t.Fatalf("Identifier() = %q, want %q", got, "uuid-value")
|
|
}
|
|
}
|
|
|
|
func TestResolveUserKeyForSS2022CombinedPassword(t *testing.T) {
|
|
service := &Service{ssServerKey: "master-key"}
|
|
user := XUser{
|
|
ID: 1,
|
|
Password: "master-key:user-key",
|
|
UUID: "uuid-value",
|
|
}
|
|
|
|
if got := service.resolveUserKey(user, true); got != "user-key" {
|
|
t.Fatalf("resolveUserKey() = %q, want %q", got, "user-key")
|
|
}
|
|
}
|
|
|
|
func TestResolveUserKeyForNonSS2022UsesResolvedKey(t *testing.T) {
|
|
service := &Service{}
|
|
user := XUser{
|
|
UUID: "uuid-value",
|
|
Passwd: "passwd-value",
|
|
}
|
|
|
|
if got := service.resolveUserKey(user, false); got != "passwd-value" {
|
|
t.Fatalf("resolveUserKey() = %q, want %q", got, "passwd-value")
|
|
}
|
|
}
|
|
|
|
func TestXUserIdentifierFallsBackToEmailThenID(t *testing.T) {
|
|
userWithEmail := XUser{
|
|
ID: 8,
|
|
Email: "user@example.com",
|
|
}
|
|
if got := userWithEmail.Identifier(); got != "user@example.com" {
|
|
t.Fatalf("Identifier() = %q, want %q", got, "user@example.com")
|
|
}
|
|
|
|
userWithID := XUser{ID: 9}
|
|
if got := userWithID.Identifier(); got != "9" {
|
|
t.Fatalf("Identifier() = %q, want %q", got, "9")
|
|
}
|
|
}
|