Zadanie: testy dla kolejnych endpointów API
Przygotuj testy API w Playwright dla kolejnego zestawu endpointów. Tym razem celem nie jest samo sprawdzenie, czy API odpowiada, tylko zbudowanie sensownego pokrycia dla kilku typów operacji:
- endpointów publicznych,
- endpointów wymagających zalogowanego użytkownika,
- listowania i pobierania pojedynczego zasobu,
- odczytu i aktualizacji ustawień użytkownika.
Zanim poprosisz agenta AI o implementację, poproś go o sprawdzenie aktualnego planu testów i o krótką propozycję kolejności pracy.
Endpointy do pokrycia
Użyj poniższych 8 operacji:
GET /api/v1/traffic/info
GET /api/v1/traffic/logs
GET /api/v1/products
GET /api/v1/products/{id}
GET /api/v1/users/chat-system-prompt
PUT /api/v1/users/chat-system-prompt
GET /api/v1/users/tool-system-prompt
PUT /api/v1/users/tool-system-prompt
Krótki opis endpointów:
GET /api/v1/traffic/infozwraca informacje potrzebne do monitorowania ruchu HTTP, między innymi endpoint WebSocket i topic.GET /api/v1/traffic/logszwraca stronicowaną listę zarejestrowanych logów ruchu HTTP i pozwala filtrować wyniki po metodzie, statusie, ścieżce, tekście oraz zakresie czasu.GET /api/v1/productszwraca katalog produktów widoczny dla zalogowanego klienta.GET /api/v1/products/{id}zwraca pojedynczy produkt po identyfikatorze albo błąd, jeśli produkt nie istnieje.GET /api/v1/users/chat-system-promptzwraca aktualny prompt czatu dla zalogowanego użytkownika, czyli zapisany override albo wartość domyślną.PUT /api/v1/users/chat-system-promptzapisuje nowy prompt czatu dla zalogowanego użytkownika.GET /api/v1/users/tool-system-promptzwraca aktualny prompt używany przy tool callingu dla zalogowanego użytkownika, czyli zapisany override albo wartość domyślną.PUT /api/v1/users/tool-system-promptzapisuje nowy prompt używany przy tool callingu dla zalogowanego użytkownika.
Endpointy traffic są publiczne. Endpointy products oraz users/*-system-prompt wymagają autoryzacji JWT, więc testy powinny używać istniejących fixture'ów i helperów dla zalogowanego użytkownika.
Jak pracować z agentem AI
W tym zadaniu nie zaczynaj od promptu "napisz testy". Poprowadź agenta przez proces:
- Poproś agenta o przeczytanie aktualnego planu testów API.
- Poproś o wskazanie, które z 8 endpointów są już pokryte, a które nadal wymagają testów.
- Poproś o sprawdzenie kontraktu w OpenAPI oraz, jeśli to możliwe, krótką eksplorację live API przez
curl. - Poproś o plan implementacji: jakie pliki zmieni, jakie helpery wykorzysta i jakie przypadki sprawdzi.
- Dopiero po zaakceptowaniu planu poproś o implementację testów.
- Po implementacji poproś o review aktualnego diffu.
- Poproś o uruchomienie nowych testów, a potem pełnego zestawu testów API.
- Na końcu poproś o aktualizację planu testów, żeby było jasne, co zostało ukończone.
Kryteria akceptacji
- Wszystkie 8 operacji ma sensowne pokrycie testami.
- Testy jasno rozróżniają endpointy publiczne i endpointy wymagające JWT.
- Dla endpointów z body odpowiedzi testy sprawdzają stabilne pola, a nie tylko sam status
200. - Testy promptów potwierdzają, że zapis przez
PUTjest widoczny przy kolejnymGET. - Testy produktów nie zakładają przypadkowego
id, jeśli można pobrać istniejący produkt z listy. GET /api/v1/traffic/logsma sprawdzoną strukturę stronicowania i przynajmniej jeden podstawowy filtr.- Plan testów API jest zaktualizowany po implementacji.
- Nowe testy i pełny suite API zostały uruchomione.
- Review diffu nie wskazuje zmian niezwiązanych z zadaniem.
