Golang создает заглушку для запуска сервера с необходимыми конечными точками

  • Я создал заглушку для запуска сервера на определенном порту
  • Также создал заглушку для генерации токена jwt

В) Нужно настроить сервер-заглушку с конечной точкой get-jwt, чтобы я мог написать тестовый пример для проверки токена jwt?

Запустить сервер

      func StartServerStub() *httptest.Server {
    return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r 
    *http.Request) {

     }))

}

Проверить получение токена jwt

      func TestJwtSigningKey(t *testing.T) {
    req := httptest.NewRequest(http.MethodGet, "/v1/jwt-keys", nil)
    w := httptest.NewRecorder()
    JwtSigningKey(w, req)
    res := w.Result()
    defer res.Body.Close()
    data, err := ioutil.ReadAll(res.Body)
    if err != nil {
        t.Errorf("expected error to be nil got %v", err)
    }

    expectedUsername := "Test User"
    expectedIssuedAt := time.Now()
    expectedExpiredAt := expectedIssuedAt.Add(Duration)

    user, err := JWTKeyMaker.VerifyToken(string(data))

    fmt.Println(user.ExpiredAt)

    require.NoError(t, err)
    require.NotEmpty(t, string(data))
    require.NotZero(t, user.ID)
    require.Equal(t, expectedUsername, user.Username)
    require.WithinDuration(t, expectedIssuedAt, user.IssuedAt, time.Second)
    require.WithinDuration(t, expectedExpiredAt, user.ExpiredAt, time.Second)
}

0 ответов

Другие вопросы по тегам