MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / TestAuthFromQueryParam

Function TestAuthFromQueryParam

pkg/middlewares/http/jwt_test.go:49–85  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

47}
48
49func TestAuthFromQueryParam(t *testing.T) {
50 validToken := generateValidToken()
51
52 tests := []struct {
53 name string
54 token string
55 wantStatus int
56 wantClaims map[string]interface{}
57 }{
58 {"Valid Token", validToken, http.StatusOK, map[string]interface{}{"foo": "bar"}},
59 {"Missing Token", "", http.StatusUnauthorized, nil},
60 {"Invalid Token", "invalidtoken", http.StatusUnauthorized, nil},
61 }
62
63 for _, tt := range tests {
64 t.Run(tt.name, func(t *testing.T) {
65 req, _ := http.NewRequest("GET", "/?t="+tt.token, nil)
66 rr := httptest.NewRecorder()
67 handler := AuthFromQueryParam(mockKeyFunc, genericClaimsFunc(), mockSigningMethod, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
68 claims, ok := jwtmiddleware.FromContext(r.Context())
69 mapClaims := claims.(*jwt.MapClaims)
70 if tt.wantClaims != nil {
71 assert.True(t, ok, "claims not found in context")
72 for key, value := range tt.wantClaims {
73 claimsVal, exists := (*mapClaims)[key]
74 assert.True(t, exists, "claims missing key: %v", key)
75 assert.Equal(t, value, claimsVal, "claims value mismatch for key: %v", key)
76 }
77 }
78 w.WriteHeader(http.StatusOK)
79 }))
80 handler.ServeHTTP(rr, req)
81
82 assert.Equal(t, tt.wantStatus, rr.Code, "handler returned wrong status code")
83 })
84 }
85}
86
87func TestAuthFromAuthorizationHeader(t *testing.T) {
88 validToken := generateValidToken()

Callers

nothing calls this directly

Calls 7

generateValidTokenFunction · 0.85
AuthFromQueryParamFunction · 0.85
genericClaimsFuncFunction · 0.85
ContextMethod · 0.80
WriteHeaderMethod · 0.80
RunMethod · 0.45
ServeHTTPMethod · 0.45

Tested by

no test coverage detected