Edycja terminu zajęć (ActivityItemEditPage)
Ścieżka: /panel/activity-item/:id/edit Dostęp: Zalogowany — role: Admin, Supervisor, Employee
TC-AIE-001 — Ładowanie danych
| # | Akcja | Oczekiwany rezultat |
| 1 | Wejdź na stronę edycji istniejącego terminu | Formularz wypełniony aktualnymi danymi: data, godziny, poziom, termin rezerwacji, komentarz |
| 2 | Sprawdź pole prowadzącego | Aktualny prowadzący załadowany przez server-side search (per_page: 1, filter[id]) |
| 3 | Wejdź z błędnym ID terminu | Komunikat o błędzie lub przekierowanie, brak crashu |
TC-AIE-002 — Pola zablokowane w trybie edycji
| # | Akcja | Oczekiwany rezultat |
| 1 | Sprawdź pole wyboru aktywności | Pole niewidoczne — aktywność terminu nie jest edytowalna |
| 2 | Sprawdź pole „Aktywny" (is_active) | Pole niewidoczne — status nie jest edytowalny z tego formularza |
| 3 | Sprawdź pole „Liczba powtórzeń" (how_many_repeat_times) | Pole niewidoczne — powtarzanie dotyczy tylko tworzenia |
TC-AIE-003 — Edycja pól podstawowych
| # | Akcja | Oczekiwany rezultat |
| 1 | Zmień datę terminu i zapisz | Data zaktualizowana |
| 2 | Zmień godzinę startu i zapisz | Godzina startu zaktualizowana |
| 3 | Zmień godzinę końca i zapisz | Godzina końca zaktualizowana |
| 4 | Zmień poziom i zapisz | Poziom zaktualizowany |
| 5 | Zmień termin rezerwacji w godzinach i zapisz | Nowa wartość zapisana |
| 6 | Zmień komentarz i zapisz | Komentarz zaktualizowany |
| 7 | Wyczyść komentarz i zapisz | Komentarz wyczyszczony — pole opcjonalne |
TC-AIE-004 — Walidacja
| # | Akcja | Oczekiwany rezultat |
| 1 | Wyczyść datę i zapisz | Błąd walidacji przy polu daty |
| 2 | Wyczyść godzinę startu i zapisz | Błąd walidacji przy polu godziny startu |
| 3 | Wyczyść godzinę końca i zapisz | Błąd walidacji przy polu godziny końca |
| 4 | Ustaw godzinę końca wcześniejszą niż startu i zapisz | Zweryfikuj czy backend zwraca błąd walidacji |
| 5 | Ustaw reservation_deadline_hours ujemne i zapisz | Błąd walidacji — wymagana wartość ≥ 0 |
TC-AIE-005 — Edycja prowadzącego
| # | Akcja | Oczekiwany rezultat |
| 1 | Zmień prowadzącego (server-side search) | Nowy prowadzący załadowany i wybrany |
| 2 | Przypisz prowadzącego z konfliktem czasowym (bez force_add_trainer) | Backend zwraca błąd — prowadzący ma inny termin |
| 3 | Zaznacz „Wymuś przypisanie prowadzącego" przy konflikcie | Ostrzeżenie widoczne, formularz możliwy do wysłania |
| 4 | Zapisz z force_add_trainer = true i konfliktem | Backend akceptuje — prowadzący przypisany mimo konfliktu |
| 5 | Usuń prowadzącego (wyczyść pole) i zapisz | Termin zapisany bez prowadzącego — pole opcjonalne |
TC-AIE-006 — Zapis i nawigacja
| # | Akcja | Oczekiwany rezultat |
| 1 | Zapisz zmiany gdy termin ma activity_id | Przekierowanie na stronę szczegółów powiązanej aktywności (activity-detail-page) |
| 2 | Zapisz zmiany gdy termin nie ma activity_id | 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 |