Przejdź do treści

Strona szczegółów aktywności (AppActivityPage)

Ścieżka: /zajecia/:id Dostęp: Publiczny


TC-AAP-001 — Ładowanie danych aktywności

# Akcja Oczekiwany rezultat
1 Wejdź na stronę istniejącej aktywności Widoczne dane: nazwa, opis, kategoria, organizacja, galeria, oceny
2 Wejdź na stronę nieistniejącej aktywności (błędne ID) Komunikat o błędzie lub przekierowanie, brak crashu
3 Wejdź na stronę nieaktywnej aktywności Zweryfikuj czy strona jest dostępna/ukryta zgodnie z logiką backendu

TC-AAP-002 — Nawigacja zakładkami

# Akcja Oczekiwany rezultat
1 Kliknij zakładkę „Opis" Wyświetlona treść opisowa aktywności
2 Kliknij zakładkę „Harmonogram" Wyświetlona lista terminów (ActivityScheduleList)
3 Kliknij zakładkę „Cennik" Wyświetlone informacje o cenach
4 Kliknij zakładkę „Opinie" Wyświetlona lista opinii
5 Kliknij zakładkę „Lokalizacja" Wyświetlony adres i link do Google Maps
6 Kliknij przycisk CTA „Sprawdź terminy" (mobilny) Przewinięcie do zakładki Harmonogram

TC-AAP-003 — Harmonogram i statusy terminów

# Akcja Oczekiwany rezultat
1 Otwórz zakładkę Harmonogram dla aktywności z terminami Terminy pogrupowane według dat, widoczne godziny, poziom, dostępne miejsca
2 Sprawdź termin z available_slots > 3 Status zielony „Dostępne"
3 Sprawdź termin z available_slots od 1 do 3 Status pomarańczowy „Ostatnie miejsca!"
4 Sprawdź termin z available_slots = 0 Status czerwony „Brak miejsc", brak przycisku zapisu
5 Sprawdź termin z is_canceled = true Oznaczony jako odwołany, brak możliwości zapisu
6 Sprawdź termin z is_active = false Niedostępny do rejestracji
7 Sprawdź termin z datą w przeszłości Brak przycisku zapisu

TC-AAP-004 — Nawigacja po miesiącach w harmonogramie

# Akcja Oczekiwany rezultat
1 Kliknij „Następny miesiąc" API pobiera terminy dla nowego zakresu dat, lista odświeżona
2 Kliknij „Poprzedni miesiąc" API pobiera terminy dla poprzedniego zakresu dat
3 Kliknij „Dziś" (powrót do bieżącego miesiąca) Powrót do aktualnego miesiąca, lista odświeżona
4 Nawiguj do miesiąca bez żadnych terminów Komunikat o braku sesji w tym miesiącu

TC-AAP-005 — Najbliższy dostępny termin

# Akcja Oczekiwany rezultat
1 Aktywność ma przyszłe, aktywne terminy z wolnymi miejscami Widoczny najbliższy termin w sekcji hero/CTA
2 Wszystkie terminy są w przeszłości lub zapełnione Brak wyróżnionego najbliższego terminu
3 Wszystkie terminy są odwołane lub nieaktywne Brak wyróżnionego najbliższego terminu

TC-AAP-006 — Rejestracja na termin

# Akcja Oczekiwany rezultat
1 Kliknij „Zapisz się" przy dostępnym terminie Otwiera się modal rejestracji z danymi wybranego terminu
2 Wypełnij formularz poprawnymi danymi i wyślij Rezerwacja utworzona, modal zamknięty, lista terminów odświeżona, modal sukcesu widoczny
3 Modal sukcesu wyświetla poprawny e-mail i komunikat z API E-mail zgodny z podanym w formularzu, wiadomość z backendu widoczna
4 Wyślij formularz z brakującymi wymaganymi polami Błędy walidacji widoczne przy odpowiednich polach, formularz nie wysłany
5 Wyślij formularz z błędnym formatem e-mail Błąd walidacji przy polu e-mail
6 Zamknij modal rejestracji bez wysyłania Modal zamknięty, lista terminów bez zmian

TC-AAP-007 — Rejestracja jako firma

# Akcja Oczekiwany rezultat
1 Zaznacz „Firma" w formularzu rejestracji Pola NIP, REGON, nazwa firmy stają się dostępne
2 Wyślij jako firma z poprawnymi danymi Rezerwacja utworzona z danymi firmowymi

TC-AAP-008 — Cennik

# Akcja Oczekiwany rezultat
1 Aktywność płatna z publicznym cennikiem (is_public_price_list = true) Ceny widoczne w zakładce Cennik
2 Aktywność płatna z niepublicznym cennikiem (is_public_price_list = false) Ceny ukryte lub zastąpione komunikatem
3 Aktywność bezpłatna (is_paid = false) Brak sekcji cennika lub widoczna informacja o darmowym udziale
4 Sprawdź czy cena bieżąca i najniższa cena są poprawnie wyróżnione Cena bieżąca i najniższa historyczna wyświetlone osobno (jeśli różne)

TC-AAP-009 — Opinie (infinite scroll)

# Akcja Oczekiwany rezultat
1 Otwórz zakładkę Opinie Pierwsza strona opinii załadowana (5 rekordów)
2 Przewiń do końca listy opinii Automatycznie ładowana kolejna strona (następne 5)
3 Brak kolejnych opinii Ładowanie zatrzymane, brak błędów
4 Aktywność bez opinii Komunikat o braku opinii

TC-AAP-010 — Lokalizacja

# Akcja Oczekiwany rezultat
1 Otwórz zakładkę Lokalizacja Wyświetlony pełny adres (ulica, kod pocztowy, miasto)
2 Kliknij link do Google Maps Otwiera Google Maps z adresem aktywności
3 Kliknij „Kopiuj adres" Pełny adres skopiowany do schowka

TC-AAP-011 — Ulubione

# Akcja Oczekiwany rezultat
1 Kliknij przycisk „Dodaj do ulubionych" Aktywność zapisana w localStorage (app_activity_favorites), ikona zmienia stan
2 Odśwież stronę Stan ulubionych zachowany (wczytany z localStorage)
3 Kliknij ponownie (usuń z ulubionych) Aktywność usunięta z localStorage, ikona wraca do stanu poprzedniego

TC-AAP-012 — Udostępnianie

# Akcja Oczekiwany rezultat
1 Kliknij „Udostępnij" na urządzeniu wspierającym Web Share API Otwiera natywny systemowy dialog udostępniania
2 Kliknij „Udostępnij" na urządzeniu bez Web Share API URL strony skopiowany do schowka