Strona szczegółów rezerwacji (AppReservationPage)
Ścieżka: /rezerwacje/:id Dostęp: Publiczny — wymaga weryfikacji 10-znakowym kodem dostępu
TC-ARP-001 — Weryfikacja kodem dostępu
| # | Akcja | Oczekiwany rezultat |
| 1 | Wejdź na stronę bez kodu w URL | Widoczny formularz wprowadzania kodu, brak danych rezerwacji |
| 2 | Wpisz poprawny 10-znakowy kod i zatwierdź | Rezerwacja załadowana, formularz weryfikacji znika |
| 3 | Wpisz błędny kod (poprawny format, zły kod) | Komunikat o błędzie, dane rezerwacji nie wyświetlają się |
| 4 | Wpisz kod krótszy niż 10 znaków | Przycisk zatwierdzenia nieaktywny |
| 5 | Wejdź na URL z kodem w query string (?uuid=...&access_code=...) | Kod automatycznie zatwierdzony, rezerwacja ładuje się bez ręcznego wpisywania |
| 6 | Poprawny kod, ale błędne UUID | Backend odrzuca — błąd weryfikacji |
TC-ARP-002 — Wyświetlanie danych rezerwacji
| # | Akcja | Oczekiwany rezultat |
| 1 | Zweryfikuj kod dla rezerwacji obiektu | Widoczne: nazwa obiektu, adres, sloty z datami/godzinami, dane klienta |
| 2 | Zweryfikuj kod dla rezerwacji aktywności | Widoczne: nazwa aktywności, data, czas, poziom, prowadzący, lokalizacja |
| 3 | Rezerwacja klienta firmowego (is_company = true) | Widoczne: nazwa firmy, NIP, REGON, adres firmowy |
| 4 | Sprawdź status rezerwacji | Status wyświetlony z tłumaczeniem (pending, confirmed, canceled, rejected) |
| 5 | Sprawdź historię zmian statusów | Timeline statusów z datami widoczny |
| 6 | Sprawdź sekcję zgód | Widoczne zaakceptowane zgody (RODO, regulamin, statut) z datą akceptacji |
TC-ARP-003 — Płatność online (Przelewy24)
| # | Akcja | Oczekiwany rezultat |
| 1 | Rezerwacja płatna, cena potwierdzona, pozostała kwota > 0 | Przycisk „Zapłać" widoczny i aktywny |
| 2 | Rezerwacja z niezatwierdzoną ceną (price_confirmed = false) | Przycisk „Zapłać" niewidoczny lub nieaktywny |
| 3 | Rezerwacja w pełni opłacona (status płatności: COMPLETED) | Przycisk „Zapłać" niewidoczny |
| 4 | Rezerwacja anulowana | Przycisk „Zapłać" niewidoczny |
| 5 | Obiekt/aktywność bez możliwości płatności online (can_pay_online = false) | Przycisk „Zapłać" niewidoczny |
| 6 | Przelewy24 wyłączone globalnie | Przycisk „Zapłać" niewidoczny |
| 7 | Kliknij „Zapłać" | Przekierowanie do bramki Przelewy24, w sessionStorage zapisany pending payment |
| 8 | Wróć na stronę po udanej płatności w P24 | Strona odpytuje status płatności (polling: 12 prób co 4s), po potwierdzeniu status zaktualizowany |
| 9 | Wróć na stronę po nieudanej płatności w P24 | Polling kończy się brakiem potwierdzenia, komunikat o niepowodzeniu |
TC-ARP-004 — Historia płatności i zwrotów
| # | Akcja | Oczekiwany rezultat |
| 1 | Rezerwacja z płatnościami | Lista płatności z datami i statusami widoczna |
| 2 | Kliknij „Pobierz potwierdzenie" przy płatności | Pobieranie PDF paragonu/potwierdzenia płatności |
| 3 | Rezerwacja ze zwrotami | Lista zwrotów z typem (FULL, PARTIAL, SLOT_CANCELLATION itd.) i metodą (GATEWAY, TRANSFER, CASH) widoczna |
| 4 | Kliknij „Pobierz dokument zwrotu" | Pobieranie PDF dokumentu zwrotu |
| 5 | Zwrot ze statusem PENDING_MANUAL | Informacja o konieczności ręcznego przetworzenia zwrotu przez obsługę |
TC-ARP-005 — Anulowanie slotów
| # | Akcja | Oczekiwany rezultat |
| 1 | Rezerwacja aktywna z slotami | Widoczna lista slotów z możliwością zaznaczenia |
| 2 | Rezerwacja anulowana | Opcja anulowania slotów niewidoczna lub zablokowana |
| 3 | Zaznacz wybrane sloty i kliknij „Anuluj zaznaczone" | Otwiera się modal potwierdzenia z informacją o terminie anulowania i kwocie zwrotu |
| 4 | Potwierdź anulowanie (opcjonalnie z powodem) | Sloty anulowane, lista slotów i kwoty odświeżone, polling statusu zwrotu uruchomiony (45 prób co 2s) |
| 5 | Anulowanie z polityką zwrotu | Po anulowaniu widoczna kwota do zwrotu zgodna z polityką anulowania |
| 6 | Anulowanie po terminie anulowania | Zweryfikuj czy backend blokuje anulowanie lub nalicza odpowiednią karę |
| 7 | Zaznacz „Wszystkie sloty" | Wszystkie aktywne sloty zaznaczone jednocześnie |
| 8 | Slot już anulowany | Wyświetlony jako anulowany, niemożliwy do ponownego zaznaczenia |
TC-ARP-006 — Reklamacje
| # | Akcja | Oczekiwany rezultat |
| 1 | Backend zwraca can_add_complaint = true | Przycisk „Złóż reklamację" widoczny |
| 2 | Backend zwraca can_add_complaint = false | Przycisk „Złóż reklamację" niewidoczny |
| 3 | Wypełnij i wyślij formularz reklamacji | Reklamacja dodana, lista reklamacji odświeżona |
| 4 | Rezerwacja ma powiązane reklamacje | Lista reklamacji widoczna ze statusami i priorytetami (color-coded) |
| 5 | Kliknij reklamację z listy | Przekierowanie na stronę szczegółów reklamacji (/reklamacje/:id) |
TC-ARP-007 — Opinie
| # | Akcja | Oczekiwany rezultat |
| 1 | Backend zwraca can_add_review = true | Przycisk „Oceń" widoczny |
| 2 | Backend zwraca can_add_review = false | Przycisk „Oceń" niewidoczny |
| 3 | Wystaw opinię | Opinia zapisana, sekcja opinii odświeżona, przycisk „Oceń" znika |
| 4 | Rezerwacja z istniejącą opinią | Widoczna wystawiona opinia, brak możliwości dodania kolejnej |
TC-ARP-008 — Załączniki
| # | Akcja | Oczekiwany rezultat |
| 1 | Prześlij plik do rezerwacji | Plik wysłany z danymi weryfikacyjnymi (UUID + kod), pojawia się na liście |
| 2 | Kliknij „Usuń" przy załączniku i potwierdź | Załącznik usunięty (żądanie zawiera UUID + kod), lista odświeżona |
| 3 | Anuluj usunięcie w modalu | Załącznik pozostaje bez zmian |
TC-ARP-009 — Blokada dla zalogowanego administratora
| # | Akcja | Oczekiwany rezultat |
| 1 | Zaloguj jako admin i wejdź na stronę rezerwacji | Widoczny baner ostrzegawczy informujący o konieczności użycia panelu administracyjnego |
| 2 | Sprawdź dostępność przycisków akcji (płatność, anulowanie slotów) | Wszystkie operacje publiczne zablokowane dla zalogowanego admina |