@@ -211,6 +211,7 @@ func TestProviderData_buildSessionFromClaims(t *testing.T) {
211 testCases := map[string]struct {
211 testCases := map[string]struct {
212 IDToken idTokenClaims
212 IDToken idTokenClaims
213 AllowUnverified bool
213 AllowUnverified bool
214 EmailClaim string
215 EmailClaim string
215 GroupsClaim string
216 GroupsClaim string
216 ExpectedError error
217 ExpectedError error
@@ -259,6 +260,27 @@ func TestProviderData_buildSessionFromClaims(t *testing.T) {
259 PreferredUsername: "Complex Claim",
260 PreferredUsername: "Complex Claim",
263+ "User Claim Switched": {
264+ IDToken: defaultIDToken,
265+ AllowUnverified: true,
266+ UserClaim: "phone_number",
267+ EmailClaim: "email",
268+ GroupsClaim: "groups",
269+ ExpectedSession: &sessions.SessionState{
270+ User: "+4798765432",
271+ Email: "janed@me.com",
272+ Groups: []string{"test:a", "test:b"},
273+ PreferredUsername: "Jane Dobbs",
276+ "User Claim Invalid": {
277+ IDToken: defaultIDToken,
278+ AllowUnverified: true,
279+ UserClaim: "groups",
280+ EmailClaim: "email",
281+ GroupsClaim: "groups",
282+ ExpectedError: errors.New("unable to extract custom UserClaim (groups)"),
262 "Email Claim Switched": {
284 "Email Claim Switched": {
263 IDToken: unverifiedIDToken,
285 IDToken: unverifiedIDToken,
264 AllowUnverified: true,
286 AllowUnverified: true,
@@ -332,6 +354,7 @@ func TestProviderData_buildSessionFromClaims(t *testing.T) {
334 provider.AllowUnverifiedEmail = tc.AllowUnverified
356 provider.AllowUnverifiedEmail = tc.AllowUnverified
357+ provider.UserClaim = tc.UserClaim
335 provider.EmailClaim = tc.EmailClaim
358 provider.EmailClaim = tc.EmailClaim
336 provider.GroupsClaim = tc.GroupsClaim
359 provider.GroupsClaim = tc.GroupsClaim