Tworzenie aktywności (ActivityCreatePage)
Ścieżka: /panel/activity/create Dostęp: Zalogowany — role: Admin, Supervisor, Employee
TC-ACP-001 — Uprawnienia dostępu
| # | Akcja | Oczekiwany rezultat |
| 1 | Wejdź na stronę jako Admin | Formularz dostępny |
| 2 | Wejdź na stronę jako Supervisor | Formularz dostępny |
| 3 | Wejdź na stronę jako Employee | Formularz dostępny |
| 4 | Wejdź bez zalogowania | Przekierowanie na stronę logowania |
TC-ACP-002 — Wymagane pola
| # | Akcja | Oczekiwany rezultat |
| 1 | Wyślij pusty formularz | Błędy walidacji przy: nazwie, kategorii, obiekcie, min/max uczestnikach, opisie |
| 2 | Zostaw puste pole „Nazwa" | Błąd walidacji przy polu nazwy |
| 3 | Nie wybierz kategorii | Błąd walidacji przy polu kategorii |
| 4 | Nie wybierz obiektu | Błąd walidacji przy polu obiektu |
| 5 | Zostaw min_participants = 0 lub ujemne | Błąd walidacji — wymagana wartość ≥ 1 |
| 6 | Ustaw max_participants mniejsze niż min_participants | Zweryfikuj czy backend zwraca błąd walidacji |
TC-ACP-003 — Pola warunkowe: płatność
| # | Akcja | Oczekiwany rezultat |
| 1 | Zaznacz „Aktywność płatna" | Sekcja cennika staje się widoczna (cena brutto, stawka VAT) |
| 2 | Odznacz „Aktywność płatna" | Sekcja cennika znika |
| 3 | Zaznacz „Aktywność płatna", zostaw cenę = 0 | Zweryfikuj czy backend akceptuje cenę 0 |
| 4 | Wpisz cenę brutto — sprawdź cenę netto | Cena netto obliczona automatycznie na podstawie stawki VAT (domyślnie 23%) |
| 5 | Zmień stawkę VAT — sprawdź cenę netto | Cena netto przeliczona po zmianie stawki |
| 6 | Zaznacz „Publiczny cennik" | Pole dostępne tylko gdy aktywność jest płatna |
| 7 | Zaznacz „Płatność online" | Płatność online dostępna tylko gdy aktywność jest płatna |
TC-ACP-004 — Harmonogram aktywności (activity items)
| # | Akcja | Oczekiwany rezultat |
| 1 | Dodaj pozycję harmonogramu | Formularz z polami: dzień tygodnia, data pierwszego zajęcia, godzina start/koniec, poziom, deadline rezerwacji, liczba powtórzeń, prowadzący |
| 2 | Dodaj 10 pozycji harmonogramu | Limit osiągnięty, przycisk „Dodaj" nieaktywny lub ukryty |
| 3 | Usuń pozycję harmonogramu | Pozycja usunięta z listy |
| 4 | Zostaw wymaganą pozycję harmonogramu z pustymi polami | Błąd walidacji dla tej pozycji |
| 5 | Ustaw godzinę zakończenia wcześniejszą niż rozpoczęcia | Zweryfikuj czy backend zwraca błąd |
| 6 | Ustaw how_many_repeat_times = 1 | Aktywność utworzona tylko dla podanej daty bez powtórzeń |
| 7 | Ustaw how_many_repeat_times > 1 | Backend tworzy wiele activity items na kolejne tygodnie |
TC-ACP-005 — Załącznik (regulamin PDF)
| # | Akcja | Oczekiwany rezultat |
| 1 | Prześlij plik PDF jako regulamin | Plik dołączony do formularza, widoczna nazwa pliku |
| 2 | Prześlij plik > 10 MB | Błąd — przekroczony limit rozmiaru |
| 3 | Prześlij plik inny niż PDF | Zweryfikuj czy backend lub frontend odrzuca niepoprawny typ pliku |
| 4 | Wyślij formularz bez regulaminu | Formularz wysłany — regulamin jest opcjonalny |
TC-ACP-006 — Polityka anulowania
| # | Akcja | Oczekiwany rezultat |
| 1 | Wypełnij „Termin anulowania w godzinach" | Wartość zapisana do API |
| 2 | Wypełnij opis polityki anulowania | Opis zapisany do API |
| 3 | Zostaw pola pustę | Aktywność zapisana bez polityki anulowania — pola opcjonalne |
TC-ACP-007 — Zapis i nawigacja
| # | Akcja | Oczekiwany rezultat |
| 1 | Wypełnij poprawnie formularz i kliknij „Zapisz" | Aktywność utworzona, powrót do poprzedniej strony (router.go(-1)) |
| 2 | Kliknij „Anuluj" | Powrót do poprzedniej strony bez zapisu |
| 3 | Wyślij formularz — błąd backendu | Błędy walidacji wyświetlone przy odpowiednich polach, brak przekierowania |