(t *testing.T)
| 47 | } |
| 48 | |
| 49 | func 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 | |
| 87 | func TestAuthFromAuthorizationHeader(t *testing.T) { |
| 88 | validToken := generateValidToken() |
nothing calls this directly
no test coverage detected