summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-17 13:44:25 -0600
committermo khan <mo@mokhan.ca>2025-04-17 13:44:25 -0600
commit493d1e35a7f88451f07a9a3711d6bfd071174b5f (patch)
tree24a34ef3921818f7b139ced49e73859c4194a3f6
parent59efce75d79046988bc63d6e7de13be8bc104f74 (diff)
test: extract test helper to convert and verify raw id token
-rw-r--r--app/controllers/sessions/controller_test.go11
-rw-r--r--pkg/test/oidc_server.go9
2 files changed, 17 insertions, 3 deletions
diff --git a/app/controllers/sessions/controller_test.go b/app/controllers/sessions/controller_test.go
index 160594b..8f2118f 100644
--- a/app/controllers/sessions/controller_test.go
+++ b/app/controllers/sessions/controller_test.go
@@ -19,11 +19,13 @@ func TestSessions(t *testing.T) {
srv := test.NewOIDCServer(t)
defer srv.Close()
+ clientID := srv.MockOIDC.Config().ClientID
+ clientSecret := srv.MockOIDC.Config().ClientSecret
cfg, err := oidc.New(
t.Context(),
srv.Issuer(),
- srv.MockOIDC.Config().ClientID,
- srv.MockOIDC.Config().ClientSecret,
+ clientID,
+ clientSecret,
"callback_url",
)
require.NoError(t, err)
@@ -88,7 +90,10 @@ func TestSessions(t *testing.T) {
require.NoError(t, json.Unmarshal(data, &tokens))
t.Run("stores the id token in a session cookie", func(t *testing.T) {
- assert.NotEmpty(t, tokens["id_token"])
+ require.NotEmpty(t, tokens["id_token"])
+
+ idToken := srv.Verify(tokens["id_token"].(string))
+ assert.Equal(t, user.Subject, idToken.Subject)
})
t.Run("stores the access token in a session cookie", func(t *testing.T) {
diff --git a/pkg/test/oidc_server.go b/pkg/test/oidc_server.go
index 152d685..f4ccd82 100644
--- a/pkg/test/oidc_server.go
+++ b/pkg/test/oidc_server.go
@@ -75,6 +75,15 @@ func (srv *TestServer) CreateTokensFor(user mockoidc.User) (*oauth2.Token, strin
return token, rawIDToken
}
+func (srv *TestServer) Verify(rawIDToken string) *oidc.IDToken {
+ idToken, err := srv.
+ Verifier(&oidc.Config{ClientID: srv.MockOIDC.Config().ClientID}).
+ Verify(srv.Context(), rawIDToken)
+ require.NoError(srv, err)
+
+ return idToken
+}
+
func (s *TestServer) Close() {
s.Shutdown()
}