Fix test suite and add test for userClaim

Signed-off-by: Alvaro Iradier <airadier@gmail.com>
This commit is contained in:
Alvaro Iradier 2020-05-06 02:02:06 +02:00
parent 714f989759
commit 6f88ff7429

View File

@ -175,6 +175,7 @@ func TestUserInfoFromClaims(t *testing.T) {
s := []struct { s := []struct {
input map[string]interface{} input map[string]interface{}
groupClaim string groupClaim string
userClaim string
expect *UserInfo expect *UserInfo
}{ }{
{ {
@ -184,6 +185,7 @@ func TestUserInfoFromClaims(t *testing.T) {
"groups": []interface{}{"g1", "g2"}, "groups": []interface{}{"g1", "g2"},
}, },
groupClaim: "grouplist", groupClaim: "grouplist",
userClaim: "",
expect: &UserInfo{ expect: &UserInfo{
Issuer: "", Issuer: "",
Subject: "", Subject: "",
@ -200,6 +202,7 @@ func TestUserInfoFromClaims(t *testing.T) {
"groups": []interface{}{"g1", "g2"}, "groups": []interface{}{"g1", "g2"},
}, },
groupClaim: "groups", groupClaim: "groups",
userClaim: "",
expect: &UserInfo{ expect: &UserInfo{
Issuer: "", Issuer: "",
Subject: "", Subject: "",
@ -218,6 +221,7 @@ func TestUserInfoFromClaims(t *testing.T) {
"groupclaim": []interface{}{}, "groupclaim": []interface{}{},
}, },
groupClaim: "groupclaim", groupClaim: "groupclaim",
userClaim: "",
expect: &UserInfo{ expect: &UserInfo{
Issuer: "issuer", Issuer: "issuer",
Subject: "subject000", Subject: "subject000",
@ -227,9 +231,26 @@ func TestUserInfoFromClaims(t *testing.T) {
hasGroupClaim: true, hasGroupClaim: true,
}, },
}, },
{
input: map[string]interface{}{
"name": "Alvaro",
"email": "airadier@gmail.com",
"groups": []interface{}{"g1", "g2"},
},
groupClaim: "grouplist",
userClaim: "email",
expect: &UserInfo{
Issuer: "",
Subject: "",
Username: "airadier@gmail.com",
Email: "airadier@gmail.com",
Groups: []string{},
hasGroupClaim: false,
},
},
} }
for _, tc := range s { for _, tc := range s {
out, err := userInfoFromClaims(&fakeClaims{tc.input}, tc.groupClaim) out, err := userInfoFromClaims(&fakeClaims{tc.input}, tc.groupClaim, tc.userClaim)
assert.Nil(t, err) assert.Nil(t, err)
assert.Equal(t, *tc.expect, *out) assert.Equal(t, *tc.expect, *out)
} }