Awesome Testing

Markdown document

Zadanie

Lekcja 4: Instrukcje dla agenta i zadanie OpenAPI

Historical artifacts may name disposable training credentials and environments. Do not reuse credentials, target course systems, or execute archived prompts without authorization.

Zadanie: publiczna dokumentacja OpenAPI

Przygotuj testy API w Playwright, które sprawdzą, czy publiczna dokumentacja OpenAPI i Swagger UI są dostępne.

W tym zadaniu nie testujemy jeszcze endpointów wymagających zalogowania. Chodzi o proste publiczne GET-y i o przećwiczenie pracy z agentem AI jako partnerem technicznym.

Użyj publicznych endpointów:

GET /v3/api-docs
GET /swagger-ui/index.html

Te endpointy nie wymagają autoryzacji JWT.

Jak pracować z agentem AI

W tym zadaniu użyj agenta AI do rozwiązania problemu, ale nie zaczynaj od polecenia "napisz test".

Przejdź przez cały workflow:

  1. Najpierw zapytaj agenta, jak podszedłby do tego zadania.
  2. Poproś agenta, żeby przed implementacją sprawdził endpointy przez curl.
  3. Poproś o użycie jq do podejrzenia najważniejszych pól w odpowiedzi OpenAPI.
  4. W trakcie planowania albo review zapytaj, czy warto wydzielić utilsy/helpery do parsowania JSON-a.
  5. Dopiero potem poproś agenta o implementację testów.
  6. Po implementacji poproś agenta o review aktualnego diffu.
  7. Upewnij się, że agent uruchomił nowe testy i potem cały zestaw testów.

Chodzi o przećwiczenie pracy z agentem jako partnerem technicznym:

  • najpierw konsultacja,
  • potem eksploracja,
  • następnie implementacja,
  • na końcu review.

Curl, jq i eksploracja

Przed implementacją zadania warto poprosić agenta o eksplorację endpointów.

Dobry prompt może zawierać prośbę o użycie:

curl
jq

curl pozwala szybko sprawdzić odpowiedź HTTP, a jq pomaga pracować z JSON-em w terminalu. Dla endpointa /v3/api-docs to szczególnie przydatne, bo odpowiedź jest duża i zawiera wiele pól.

Warto też zapytać agenta, czy w testach przydadzą się helpery do parsowania i sprawdzania JSON-a. Nie chodzi o tworzenie abstrakcji na siłę, tylko o świadomą decyzję: jeśli helper upraszcza testy, warto go dodać; jeśli zaciemnia prosty test, lepiej zostać przy bezpośrednich asercjach.

Wymagania

Napisz testy API w Playwright, które:

  1. Wysyłają GET /v3/api-docs.
  2. Sprawdzają, że status odpowiedzi to 200.
  3. Sprawdzają, że odpowiedź jest JSON-em.
  4. Parsują body odpowiedzi jako JSON.
  5. Sprawdzają, że pole openapi istnieje i zaczyna się od 3..
  6. Sprawdzają, że info.title istnieje.
  7. Sprawdzają, że paths istnieje i jest obiektem.
  8. Wysyłają GET /swagger-ui/index.html.
  9. Sprawdzają, że status odpowiedzi to 200.
  10. Sprawdzają, że odpowiedź jest HTML-em albo zawiera tekst charakterystyczny dla Swagger UI.

Sugerowana nazwa testu

OpenAPI docs and Swagger UI are publicly available

Review po implementacji

Po wygenerowaniu kodu poproś agenta o review, na przykład:

Analyse current git diff changes. Is it safe to commit them? Perform a code review. Can things be simplified? Check whether JSON parsing/assertion helpers would make sense here.

W review zwróć uwagę szczególnie na:

  • czy test jest czytelny,
  • czy asercje są konkretne,
  • czy kod nie duplikuje niepotrzebnie parsowania JSON-a,
  • czy ewentualne helpery faktycznie upraszczają test,
  • czy testy zostały uruchomione.