@@ -221,3 +221,52 @@ func TestCanOverwriteS256(t *testing.T) {
222 g.Expect(method).To(Equal(CodeChallengeMethodPlain))
222 g.Expect(method).To(Equal(CodeChallengeMethodPlain))
225+func TestEmailClaimCorrectlySet(t *testing.T) {
228+ testCases := []struct {
232+ expectedEmailClaim string
235+ name: "do not override EmailClaim if UserIDClaim is empty",
237+ emailClaim: "email",
238+ expectedEmailClaim: "email",
241+ name: "set EmailClaim to UserIDClaim",
242+ userIDClaim: "user_id_claim",
243+ emailClaim: "email",
244+ expectedEmailClaim: "user_id_claim",
248+ for _, tc := range testCases {
249+ t.Run(tc.name, func(t *testing.T) {
250+ providerConfig := options.Provider{
254+ ClientSecretFile: clientSecret,
255+ LoginURL: msAuthURL,
256+ RedeemURL: msTokenURL,
257+ OIDCConfig: options.OIDCOptions{
258+ IssuerURL: msIssuerURL,
259+ SkipDiscovery: true,
261+ UserIDClaim: tc.userIDClaim,
262+ EmailClaim: tc.emailClaim,
266+ pd, err := newProviderDataFromConfig(providerConfig)
267+ g.Expect(err).ToNot(HaveOccurred())
269+ g.Expect(pd.EmailClaim).To(Equal(tc.expectedEmailClaim))