Przejdź do treści

Tworzenie terminu zajęć (ActivityItemCreatePage)

Ścieżka: /panel/activity-item/create Dostęp: Zalogowany — role: Admin, Supervisor, Employee


TC-AIC-001 — Wstępne wypełnienie formularza z URL

# Akcja Oczekiwany rezultat
1 Wejdź na stronę z parametrem ?activity_id=<id> w URL Pole „Aktywność" wypełnione automatycznie podaną aktywnością
2 Wejdź na stronę bez parametru activity_id Pole „Aktywność" puste — wymagany ręczny wybór

TC-AIC-002 — Wymagane pola

# Akcja Oczekiwany rezultat
1 Wyślij pusty formularz Błędy walidacji przy: aktywności, dacie, godzinie start, godzinie koniec, poziomie, terminie rezerwacji, liczbie powtórzeń
2 Nie wybierz aktywności Błąd walidacji przy polu aktywności
3 Zostaw datę pustą Błąd walidacji przy polu daty
4 Zostaw godzinę startu pustą Błąd walidacji przy polu godziny startu
5 Zostaw godzinę końca pustą Błąd walidacji przy polu godziny końca
6 Ustaw godzinę końca wcześniejszą niż startu Zweryfikuj czy backend zwraca błąd walidacji

# Akcja Oczekiwany rezultat
1 Wpisz min. 4 znaki w pole wyszukiwania aktywności Lista aktywności filtrowana po nazwie (max 50 wyników, tylko aktywne)
2 Wybierz aktywność z listy Wartość zapisana w formularzu
3 Wpisz frazę bez wyników Brak opcji na liście, komunikat o braku wyników

TC-AIC-004 — Poziom zajęć

# Akcja Oczekiwany rezultat
1 Wybierz poziom „Początkujący" Wartość beginner przekazana do API
2 Wybierz poziom „Średniozaawansowany" Wartość intermediate przekazana do API
3 Wybierz poziom „Zaawansowany" Wartość advanced przekazana do API
4 Wybierz „Nie dotyczy" Wartość not_applicable przekazana do API (domyślna)

TC-AIC-005 — Logika powtarzania terminów

# Akcja Oczekiwany rezultat
1 Ustaw how_many_repeat_times = 1 i wybierz datę poniedziałkową Utworzony jeden termin dla podanej daty
2 Ustaw how_many_repeat_times = 4 i wybierz datę poniedziałkową Backend tworzy 4 terminy co tydzień (kolejne poniedziałki)
3 Ustaw how_many_repeat_times = 100 Maksymalna dozwolona wartość — sprawdź czy backend akceptuje
4 Ustaw how_many_repeat_times = 0 lub ujemne Błąd walidacji — wymagana wartość ≥ 1
5 Sprawdź czy powtórzenia uwzględniają święta Powtórzenia tworzone mechanicznie co tydzień bez pomijania świąt — weryfikacja wymagana ręcznie

TC-AIC-006 — Termin rezerwacji (reservation_deadline_hours)

# Akcja Oczekiwany rezultat
1 Ustaw wartość 24 (domyślna) Rezerwacja możliwa do 24h przed rozpoczęciem zajęć
2 Ustaw wartość 0 Rezerwacja możliwa do ostatniej chwili — zweryfikuj akceptację przez backend
3 Zostaw pole puste Błąd walidacji — pole wymagane

TC-AIC-007 — Przypisanie prowadzącego

# Akcja Oczekiwany rezultat
1 Wyszukaj prowadzącego (min. 4 znaki) Lista prowadzących filtrowana (max 50, tylko aktywni)
2 Przypisz prowadzącego bez konfliktu Termin zapisany z prowadzącym
3 Przypisz prowadzącego z konfliktem czasowym (bez force_add_trainer) Backend zwraca błąd — prowadzący ma inny termin w tym czasie
4 Zaznacz „Wymuś przypisanie prowadzącego" i przypisz kolidującego prowadzącego Widoczne ostrzeżenie o konflikcie, formularz możliwy do wysłania
5 Wyślij z force_add_trainer = true i konfliktem Backend akceptuje — prowadzący przypisany mimo konfliktu
6 Nie wybieraj prowadzącego Termin zapisany bez prowadzącego — pole opcjonalne

TC-AIC-008 — Zapis i nawigacja

# Akcja Oczekiwany rezultat
1 Zapisz termin z activity_id w formularzu Po sukcesie przekierowanie na stronę szczegółów tej aktywności (activity-detail-page)
2 Zapisz termin bez activity_id Po sukcesie powrót do poprzedniej strony (router.go(-1))
3 Kliknij „Anuluj" Powrót do poprzedniej strony bez zapisu
4 Błąd backendu przy zapisie Błędy walidacji przy odpowiednich polach, brak przekierowania