# 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