(t *testing.T)
| 582 | } |
| 583 | |
| 584 | func TestRefreshHandler(t *testing.T) { |
| 585 | // the middleware to test |
| 586 | authMiddleware, _ := New(&GinJWTMiddleware{ |
| 587 | Realm: "test zone", |
| 588 | Key: key, |
| 589 | Timeout: time.Hour, |
| 590 | MaxRefresh: time.Hour * 24, |
| 591 | Authenticator: defaultAuthenticator, |
| 592 | }) |
| 593 | |
| 594 | handler := ginHandler(authMiddleware) |
| 595 | |
| 596 | r := gofight.New() |
| 597 | |
| 598 | // Test missing refresh token |
| 599 | r.POST("/auth/refresh_token"). |
| 600 | Run(handler, func(r gofight.HTTPResponse, rq gofight.HTTPRequest) { |
| 601 | assert.Equal(t, http.StatusBadRequest, r.Code) |
| 602 | }) |
| 603 | |
| 604 | // Test invalid refresh token |
| 605 | r.POST("/auth/refresh_token"). |
| 606 | SetJSON(gofight.D{ |
| 607 | "refresh_token": "invalid_token", |
| 608 | }). |
| 609 | Run(handler, func(r gofight.HTTPResponse, rq gofight.HTTPRequest) { |
| 610 | assert.Equal(t, http.StatusUnauthorized, r.Code) |
| 611 | }) |
| 612 | |
| 613 | // Test valid refresh token |
| 614 | refreshToken := getRefreshTokenFromLogin(handler) |
| 615 | if refreshToken != "" { |
| 616 | r.POST("/auth/refresh_token"). |
| 617 | SetJSON(gofight.D{ |
| 618 | "refresh_token": refreshToken, |
| 619 | }). |
| 620 | Run(handler, func(r gofight.HTTPResponse, rq gofight.HTTPRequest) { |
| 621 | assert.Equal(t, http.StatusOK, r.Code) |
| 622 | // Verify we get new tokens |
| 623 | accessToken := gjson.Get(r.Body.String(), "access_token") |
| 624 | newRefreshToken := gjson.Get(r.Body.String(), "refresh_token") |
| 625 | assert.NotEmpty(t, accessToken.String()) |
| 626 | assert.NotEmpty(t, newRefreshToken.String()) |
| 627 | }) |
| 628 | } |
| 629 | } |
| 630 | |
| 631 | func TestValidRefreshToken(t *testing.T) { |
| 632 | // the middleware to test |
nothing calls this directly
no test coverage detected
searching dependent graphs…