- Crowd Types + Persons CRUD (73 tests) - Festival Sections + Time Slots + Shifts CRUD met assign/claim flow (84 tests) - Invite Flow + Member Management met InvitationService (109 tests) - Schema v1.6 migraties volledig uitgevoerd - DevSeeder bijgewerkt met crowd types voor testorganisatie
123 lines
4.1 KiB
Markdown
123 lines
4.1 KiB
Markdown
# Crewli — End-to-End Testscenario Fase 2
|
|
|
|
## Scenario: "Test Festival BV organiseert Echt Feesten 2026"
|
|
|
|
Dit scenario valideert de complete operationele kern van Crewli.
|
|
Voer dit uit na elke Fase 2 module om regressie te voorkomen.
|
|
|
|
---
|
|
|
|
## Stap 1 — Voorbereiding (al werkend na Fase 1)
|
|
|
|
- [ ] Login als orgadmin@crewli.test / password
|
|
- [ ] Organisatie "Test Festival BV" is automatisch actief
|
|
- [ ] Navigeer naar Evenementen
|
|
- [ ] Maak aan: "Echt Feesten 2026" | slug: echt-feesten-2026
|
|
start: 10-07-2026 | eind: 12-07-2026 | timezone: Europe/Amsterdam
|
|
- [ ] Evenement verschijnt in lijst met status "draft"
|
|
- [ ] Klik door naar detail pagina — header toont naam, datum, status
|
|
|
|
---
|
|
|
|
## Stap 2 — Festival Secties (Fase 2 Module 1)
|
|
|
|
- [ ] Navigeer naar evenement detail > tab "Secties"
|
|
- [ ] Maak sectie aan: "Bar" (sort_order: 1)
|
|
- [ ] Maak sectie aan: "Security" (sort_order: 2)
|
|
- [ ] Maak sectie aan: "Hospitality" (sort_order: 3)
|
|
- [ ] Drie secties zichtbaar in lijst, correct gesorteerd
|
|
|
|
---
|
|
|
|
## Stap 3 — Time Slots (Fase 2 Module 1)
|
|
|
|
- [ ] Navigeer naar evenement detail > tab "Time Slots"
|
|
- [ ] Maak time slot aan:
|
|
Naam: "Vrijdag Avond" | type: VOLUNTEER
|
|
datum: 10-07-2026 | start: 18:00 | eind: 02:00
|
|
- [ ] Maak time slot aan:
|
|
Naam: "Zaterdag Dag" | type: VOLUNTEER
|
|
datum: 11-07-2026 | start: 10:00 | eind: 18:00
|
|
- [ ] Maak time slot aan:
|
|
Naam: "Zaterdag Avond" | type: VOLUNTEER
|
|
datum: 11-07-2026 | start: 18:00 | eind: 02:00
|
|
- [ ] Maak time slot aan:
|
|
Naam: "Zondag" | type: CREW
|
|
datum: 12-07-2026 | start: 10:00 | eind: 20:00
|
|
- [ ] Vier time slots zichtbaar, correct gesorteerd op datum/tijd
|
|
|
|
---
|
|
|
|
## Stap 4 — Shifts aanmaken (Fase 2 Module 2)
|
|
|
|
- [ ] Navigeer naar sectie "Bar"
|
|
- [ ] Maak shift aan: Time Slot "Vrijdag Avond" | slots_total: 4
|
|
slots_open_for_claiming: 3
|
|
- [ ] Maak shift aan: Time Slot "Zaterdag Dag" | slots_total: 5
|
|
slots_open_for_claiming: 4
|
|
- [ ] Maak shift aan: Time Slot "Zaterdag Avond" | slots_total: 4
|
|
slots_open_for_claiming: 3
|
|
- [ ] Navigeer naar sectie "Security"
|
|
- [ ] Maak shift aan: Time Slot "Vrijdag Avond" | slots_total: 3
|
|
slots_open_for_claiming: 2
|
|
- [ ] Maak shift aan: Time Slot "Zaterdag Avond" | slots_total: 3
|
|
slots_open_for_claiming: 2
|
|
- [ ] Shifts tonen fill_rate: 0/4, 0/5, etc.
|
|
|
|
---
|
|
|
|
## Stap 5 — Personen aanmaken (Fase 2 Module 3)
|
|
|
|
- [ ] Navigeer naar Personen (event-scoped)
|
|
- [ ] Maak 5 personen aan als crowd_type "Volunteer": 1. Jan de Vries | jan@test.nl 2. Lisa Bakker | lisa@test.nl 3. Ahmed Hassan | ahmed@test.nl 4. Sara Jansen | sara@test.nl 5. Tom Visser | tom@test.nl
|
|
- [ ] Vijf personen zichtbaar in lijst, status "pending"
|
|
|
|
---
|
|
|
|
## Stap 6 — Shift toewijzing (Fase 2 Module 2)
|
|
|
|
- [ ] Wijs Jan de Vries toe aan: Bar > Vrijdag Avond
|
|
- [ ] Wijs Jan de Vries toe aan: Bar > Zaterdag Dag
|
|
- [ ] Wijs Lisa Bakker toe aan: Bar > Vrijdag Avond
|
|
- [ ] Wijs Ahmed Hassan toe aan: Security > Vrijdag Avond
|
|
- [ ] Fill rate Bar > Vrijdag Avond: 2/4 ✓
|
|
|
|
---
|
|
|
|
## Stap 7 — Conflictdetectie (Fase 2 Module 2)
|
|
|
|
- [ ] Probeer Jan de Vries toe te wijzen aan:
|
|
Security > Vrijdag Avond (zelfde time slot!)
|
|
- [ ] Systeem weigert met foutmelding:
|
|
"Jan de Vries is al ingepland voor Vrijdag Avond"
|
|
- [ ] Conflictdetectie werkt op DB-niveau (UNIQUE constraint)
|
|
|
|
---
|
|
|
|
## Stap 8 — Overzicht validatie
|
|
|
|
- [ ] Event dashboard tiles tonen correcte aantallen:
|
|
Secties: 3 | Shifts: 5 | Personen: 5
|
|
- [ ] Sectie "Bar" toont 3 shifts, totaal 13 slots
|
|
- [ ] Persoon "Jan de Vries" toont 2 shift-toewijzingen
|
|
- [ ] Geen console errors in browser DevTools
|
|
|
|
---
|
|
|
|
## Regressie — controleer na elke nieuwe module
|
|
|
|
- [ ] Login werkt nog (admin@crewli.test en orgadmin@crewli.test)
|
|
- [ ] Organisatie switcher werkt nog
|
|
- [ ] Events lijst laadt zonder errors
|
|
- [ ] php artisan test → alle tests groen
|
|
|
|
## Openstaande FK constraints (worden toegevoegd bij persons module)
|
|
|
|
- shift_assignments.person_id → persons
|
|
- shift_check_ins.person_id → persons
|
|
- volunteer_availabilities.person_id → persons
|
|
person_id kolommen zonder FK constraint in:
|
|
- shift_assignments
|
|
- shift_check_ins
|
|
- volunteer_availabilities
|