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.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) {
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) {
p := User{UserUID: "u000000000000009", UserName: "Hanna", DisplayName: ""}
p := User{UserUID: "u000000000000009", UserName: "Hanna", DisplayName: "", CanLogin: true}
assert.Nil(t, FindPassword("u000000000000009"))
p.InitAccount("admin", "insecure")
assert.True(t, p.InitAccount("admin", "insecure"))
m := FindPassword("u000000000000009")
if m == nil {
@@ -756,7 +782,7 @@ func TestUser_InitLogin(t *testing.T) {
}
assert.NotNil(t, FindPassword("u000000000000010"))
p.InitAccount("admin", "insecure")
assert.False(t, p.InitAccount("admin", "insecure"))
m := FindPassword("u000000000000010")
if m == nil {
@@ -766,13 +792,13 @@ func TestUser_InitLogin(t *testing.T) {
t.Run("NotRegistered", func(t *testing.T) {
p := User{UserUID: "u12", UserName: "", DisplayName: ""}
assert.Nil(t, FindPassword("u12"))
p.InitAccount("admin", "insecure")
assert.False(t, p.InitAccount("admin", "insecure"))
assert.Nil(t, FindPassword("u12"))
})
t.Run("EmptyPassword", func(t *testing.T) {
p := User{UserUID: "u000000000000011", UserName: "User", DisplayName: ""}
assert.Nil(t, FindPassword("u000000000000011"))
p.InitAccount("admin", "")
assert.False(t, p.InitAccount("admin", ""))
assert.Nil(t, FindPassword("u000000000000011"))
})
}
@@ -1665,10 +1691,21 @@ func TestUser_UpdateAuthID(t *testing.T) {
m.SetAuthID(id, issuer)
assert.Equal(t, id, m.AuthID)
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, "", 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) {

View File

@@ -62,6 +62,9 @@ func TestGrantType_Pretty(t *testing.T) {
assert.Equal(t, "Authorization Code", GrantAuthorizationCode.Pretty())
assert.Equal(t, "JWT Bearer Assertion", GrantJwtBearer.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) {

View File

@@ -69,6 +69,12 @@ func TestMethod(t *testing.T) {
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) {
assert.True(t, MethodSession.IsSession())
assert.False(t, Method2FA.IsSession())

View File

@@ -37,6 +37,12 @@ func TestAuth(t *testing.T) {
"a34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700aa34fd47a7ecd9967a89330a3f92cb55513d5eca79b6c4999dc910818c29d5b9925a3a04ed91a4e57a2c25cbfdab3a751bb8d7f3635092b9242d154f389d9700",
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) {
@@ -195,4 +201,10 @@ func TestPasscode(t *testing.T) {
t.Run("Special", func(t *testing.T) {
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()
}
}
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))
}
}