Tests: Add unit tests

This commit is contained in:
graciousgrey
2024-07-16 17:29:26 +02:00
parent 6af5303139
commit 5e94686a0d
5 changed files with 73 additions and 7 deletions

View File

@@ -486,6 +486,32 @@ func TestFindUser(t *testing.T) {
assert.NotEmpty(t, m.CreatedAt) assert.NotEmpty(t, m.CreatedAt)
assert.NotEmpty(t, m.UpdatedAt) assert.NotEmpty(t, m.UpdatedAt)
}) })
t.Run("OIDCUser", func(t *testing.T) {
info := &oidc.UserInfo{}
info.Name = "Jane Doe"
info.Email = "jane@doe.com"
info.EmailVerified = true
info.Subject = "e3a9f4a6-9d60-47cb-9bf5-02bd15b0c888"
info.PreferredUsername = "Jane Doe"
u := OidcUser(info, "", "jane.doe")
err := u.Save()
if err != nil {
t.Fatal(err)
}
m := FindUser(User{UserUID: u.UserUID})
if m == nil {
t.Fatal("result should not be nil")
}
assert.NotEmpty(t, m.UserUID)
assert.Equal(t, "jane.doe", m.UserName)
assert.Equal(t, "oidc", m.AuthProvider)
})
t.Run("UserName", func(t *testing.T) { t.Run("UserName", func(t *testing.T) {
m := FindUser(User{UserName: "admin"}) m := FindUser(User{UserName: "admin"})
@@ -733,11 +759,11 @@ func TestUser_SetPassword(t *testing.T) {
}) })
} }
func TestUser_InitLogin(t *testing.T) { func TestUser_InitAccount(t *testing.T) {
t.Run("Ok", func(t *testing.T) { t.Run("Ok", func(t *testing.T) {
p := User{UserUID: "u000000000000009", UserName: "Hanna", DisplayName: ""} p := User{UserUID: "u000000000000009", UserName: "Hanna", DisplayName: "", CanLogin: true}
assert.Nil(t, FindPassword("u000000000000009")) assert.Nil(t, FindPassword("u000000000000009"))
p.InitAccount("admin", "insecure") assert.True(t, p.InitAccount("admin", "insecure"))
m := FindPassword("u000000000000009") m := FindPassword("u000000000000009")
if m == nil { if m == nil {
@@ -756,7 +782,7 @@ func TestUser_InitLogin(t *testing.T) {
} }
assert.NotNil(t, FindPassword("u000000000000010")) assert.NotNil(t, FindPassword("u000000000000010"))
p.InitAccount("admin", "insecure") assert.False(t, p.InitAccount("admin", "insecure"))
m := FindPassword("u000000000000010") m := FindPassword("u000000000000010")
if m == nil { if m == nil {
@@ -766,13 +792,13 @@ func TestUser_InitLogin(t *testing.T) {
t.Run("NotRegistered", func(t *testing.T) { t.Run("NotRegistered", func(t *testing.T) {
p := User{UserUID: "u12", UserName: "", DisplayName: ""} p := User{UserUID: "u12", UserName: "", DisplayName: ""}
assert.Nil(t, FindPassword("u12")) assert.Nil(t, FindPassword("u12"))
p.InitAccount("admin", "insecure") assert.False(t, p.InitAccount("admin", "insecure"))
assert.Nil(t, FindPassword("u12")) assert.Nil(t, FindPassword("u12"))
}) })
t.Run("EmptyPassword", func(t *testing.T) { t.Run("EmptyPassword", func(t *testing.T) {
p := User{UserUID: "u000000000000011", UserName: "User", DisplayName: ""} p := User{UserUID: "u000000000000011", UserName: "User", DisplayName: ""}
assert.Nil(t, FindPassword("u000000000000011")) assert.Nil(t, FindPassword("u000000000000011"))
p.InitAccount("admin", "") assert.False(t, p.InitAccount("admin", ""))
assert.Nil(t, FindPassword("u000000000000011")) assert.Nil(t, FindPassword("u000000000000011"))
}) })
} }
@@ -1665,10 +1691,21 @@ func TestUser_UpdateAuthID(t *testing.T) {
m.SetAuthID(id, issuer) m.SetAuthID(id, issuer)
assert.Equal(t, id, m.AuthID) assert.Equal(t, id, m.AuthID)
assert.Equal(t, issuer, m.AuthIssuer) assert.Equal(t, issuer, m.AuthIssuer)
m.SetAuthID(id, "") err := m.UpdateAuthID(id, "")
assert.NoError(t, err)
assert.Equal(t, id, m.AuthID) assert.Equal(t, id, m.AuthID)
assert.Equal(t, "", m.AuthIssuer) assert.Equal(t, "", m.AuthIssuer)
}) })
t.Run("InvalidUUID", func(t *testing.T) {
m := User{UserUID: "123"}
assert.Equal(t, "", m.AuthIssuer)
m.SetAuthID(id, issuer)
assert.Equal(t, id, m.AuthID)
assert.Equal(t, issuer, m.AuthIssuer)
err := m.UpdateAuthID(id, "")
assert.Error(t, err)
})
} }
func TestUser_AuthInfo(t *testing.T) { func TestUser_AuthInfo(t *testing.T) {

View File

@@ -62,6 +62,9 @@ func TestGrantType_Pretty(t *testing.T) {
assert.Equal(t, "Authorization Code", GrantAuthorizationCode.Pretty()) assert.Equal(t, "Authorization Code", GrantAuthorizationCode.Pretty())
assert.Equal(t, "JWT Bearer Assertion", GrantJwtBearer.Pretty()) assert.Equal(t, "JWT Bearer Assertion", GrantJwtBearer.Pretty())
assert.Equal(t, "SAML2 Bearer Assertion", GrantSamlBearer.Pretty()) assert.Equal(t, "SAML2 Bearer Assertion", GrantSamlBearer.Pretty())
assert.Equal(t, "Share Token", GrantShareToken.Pretty())
assert.Equal(t, "Token Exchange", GrantTokenExchange.Pretty())
assert.Equal(t, "Implicit", GrantImplicit.Pretty())
} }
func TestGrantType_Equal(t *testing.T) { func TestGrantType_Equal(t *testing.T) {

View File

@@ -69,6 +69,12 @@ func TestMethod(t *testing.T) {
assert.Equal(t, Method2FA, Method("2FA")) assert.Equal(t, Method2FA, Method("2FA"))
} }
func TestMethods(t *testing.T) {
types := Methods("oauth2, totp")
assert.Equal(t, MethodOAuth2, types[0])
assert.Equal(t, Method2FA, types[1])
}
func TestMethodType_IsSession(t *testing.T) { func TestMethodType_IsSession(t *testing.T) {
assert.True(t, MethodSession.IsSession()) assert.True(t, MethodSession.IsSession())
assert.False(t, Method2FA.IsSession()) assert.False(t, Method2FA.IsSession())

View File

@@ -37,6 +37,12 @@ func TestAuth(t *testing.T) {
"a34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700aa34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700", "a34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700aa34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700",
Auth("a34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700aa34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700a")) Auth("a34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700aa34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700a"))
}) })
t.Run("Empty", func(t *testing.T) {
assert.Equal(t, "", Auth(""))
})
t.Run("Te<s>t", func(t *testing.T) {
assert.Equal(t, "Test", Auth("Te<s>t"))
})
} }
func TestHandle(t *testing.T) { func TestHandle(t *testing.T) {
@@ -195,4 +201,10 @@ func TestPasscode(t *testing.T) {
t.Run("Special", func(t *testing.T) { t.Run("Special", func(t *testing.T) {
assert.Equal(t, "tiji", Passcode("!#$T#)$%I#J$I")) assert.Equal(t, "tiji", Passcode("!#$T#)$%I#J$I"))
}) })
t.Run("Empty", func(t *testing.T) {
assert.Equal(t, "", Passcode(""))
})
t.Run("Space", func(t *testing.T) {
assert.Equal(t, "", Passcode(" "))
})
} }

View File

@@ -19,3 +19,11 @@ func BenchmarkUUID(b *testing.B) {
UUID() UUID()
} }
} }
func TestState(t *testing.T) {
for n := 0; n < 5; n++ {
s := State()
t.Logf("UUID %d: %s", n, s)
assert.Equal(t, 36, len(s))
}
}