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)
}