# ST-612 — Lars-flow acceptatietest Handmatige checklist voor de volledige Lars-flow. Doorloop alle stappen zonder handleiding. ## Voorbereiding ```bash npx prisma db push npx prisma db seed npm run dev ``` Navigeer naar [http://localhost:3000](http://localhost:3000). --- ## Stap 1: Registreren en inloggen - [ ] Registreer een nieuw account (gebruikersnaam + wachtwoord ≥ 8 tekens) - [ ] Je wordt automatisch doorgestuurd naar het dashboard - [ ] Log uit en log opnieuw in — sessie werkt correct --- ## Stap 2: Product aanmaken - [ ] Klik op "+ Nieuw product" - [ ] Vul naam, beschrijving, repo URL en Definition of Done in - [ ] Sla op — je wordt doorgestuurd naar de Product Backlog pagina --- ## Stap 3: Product Backlog opbouwen - [ ] Klik op "+ PBI" en maak minimaal 3 PBI's aan met verschillende prioriteiten - [ ] Sleep een PBI naar een andere positie — volgorde blijft behouden na page refresh - [ ] Sleep een PBI naar een andere prioriteitsgroep — prioriteit verandert - [ ] Selecteer een PBI — het rechterpaneel toont "Nog geen stories" - [ ] Maak minimaal 2 stories aan voor de geselecteerde PBI - [ ] Klik op een story-blok — een slide-over opent met bewerkingsformulier - [ ] Pas de titel en acceptatiecriteria aan en sla op - [ ] Sluit de slide-over (Escape of klik buiten) --- ## Stap 4: Sprint aanmaken en plannen - [ ] Navigeer naar de Sprint Backlog (knop in de header) - [ ] Klik op "Sprint starten" en voer een Sprint Goal in - [ ] In het rechterpaneel zijn de PBI's en stories zichtbaar - [ ] Klik op een story om deze toe te voegen aan de Sprint - [ ] Voeg minimaal 2 stories toe - [ ] Sleep stories in het linkerpaneel om de volgorde te bepalen - [ ] Navigeer naar Sprint Planning - [ ] Selecteer een story in de linkerkolom — taken verschijnen rechts - [ ] Maak minimaal 2 taken aan voor de story - [ ] Verander de taakstatus door op de badge te klikken (To Do → In Progress → Done) --- ## Stap 5: API token aanmaken - [ ] Ga naar Instellingen → API Tokens - [ ] Klik op "+ Token aanmaken" en geef het een naam - [ ] Kopieer het token (wordt slechts eenmalig getoond) - [ ] Sla het token tijdelijk op voor de curl-tests --- ## Stap 6: API-endpoints testen ### Geautomatiseerd (aanbevolen) Vul `TOKEN`, `PRODUCT_ID`, `SPRINT_ID`, `STORY_ID` en `TASK_ID` in `scripts/test-api.sh` in en voer uit: ```bash bash scripts/test-api.sh ``` Zie `scripts/README.md` voor een stap-voor-stap beschrijving van hoe je de IDs vindt. Verwacht: alle 30 curl-testcases slagen (`Results: 30 passed, 0 failed`). ### Handmatig (referentie) Vervang ``, ``, ``, `` en `` met echte waarden. ```bash # 1. Producten ophalen curl -H "Authorization: Bearer " \ http://localhost:3000/api/products # Verwacht: JSON-array met het aangemaakte product # 2. Volgende story ophalen curl -H "Authorization: Bearer " \ http://localhost:3000/api/products//next-story # Verwacht: story-object met taken, of 404 als er geen actieve sprint is # 3. Eerste 10 taken van sprint ophalen curl -H "Authorization: Bearer " \ "http://localhost:3000/api/sprints//tasks?limit=10" # Verwacht: JSON-array met taken # 4. Taakvolgorde aanpassen curl -X PATCH -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"task_ids":[""]}' \ http://localhost:3000/api/stories//tasks/reorder # Verwacht: {"success":true} # 5. Taakstatus bijwerken curl -X PATCH -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"status":"IN_PROGRESS"}' \ http://localhost:3000/api/tasks/ # Verwacht: {"id":"...","status":"IN_PROGRESS","implementation_plan":null} # 6. Implementatieplan loggen curl -X POST -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"type":"IMPLEMENTATION_PLAN","content":"Aanpak: component-first, dan server action"}' \ http://localhost:3000/api/stories//log # Verwacht: {"id":"...","created_at":"..."} # 7. Testresultaat loggen curl -X POST -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"type":"TEST_RESULT","content":"Alle unit tests geslaagd","status":"PASSED"}' \ http://localhost:3000/api/stories//log # Verwacht: {"id":"...","created_at":"..."} # 8. Commit loggen curl -X POST -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"type":"COMMIT","content":"feat: story afgerond","commit_hash":"abc1234","commit_message":"feat: ST-XXX story afgerond"}' \ http://localhost:3000/api/stories//log # Verwacht: {"id":"...","created_at":"..."} # 9. Demo-gebruiker geblokkeerd op schrijfoperaties curl -X POST -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"type":"IMPLEMENTATION_PLAN","content":"test"}' \ http://localhost:3000/api/stories//log # Verwacht: HTTP 403 {"error":"Niet beschikbaar in demo-modus"} ``` --- ## Stap 7: Activiteitenlog controleren in de UI - [ ] Open de story in de Product Backlog (klik op het story-blok) - [ ] Scroll naar het activiteitenlog onderaan de slide-over - [ ] Verifieer dat het implementatieplan (blauw), testresultaat (groen) en commit (paars) zichtbaar zijn --- ## Stap 8: Sprint afronden - [ ] Navigeer naar de Sprint Backlog - [ ] Klik op "Sprint afronden" - [ ] Besluit per story: Done of Terugplaatsen - [ ] Klik "Sprint afronden" — sprint wordt afgesloten --- ## Stap 9: Demo-gebruiker controleren - [ ] Log uit - [ ] Log in als `demo` / `demo1234` - [ ] Verifieer dat geen enkel formulier of knop schrijfrechten heeft - [ ] Tooltip "Niet beschikbaar in demo-modus" zichtbaar bij hover op uitgeschakelde knoppen --- ## Stap 10: Responsive / kleine schermen - [ ] Verklein het browservenster tot < 1024px breed - [ ] Banner "Scrum4Me is ontworpen voor schermen van minimaal 1024px" verschijnt --- ## Stap 11: Todo-lijst (Data Table) - [ ] Navigeer naar Todo's - [ ] Maak een todo aan via de + knop — kaart verschijnt onderaan - [ ] Sla op — todo verschijnt in de tabel - [ ] Klik op de todo-rij — kaart laadt de todo voor bewerking - [ ] Wijzig de titel en sla op — rij toont de nieuwe titel - [ ] Vink de done-checkbox aan in de kaart en sla op — rij krijgt doorstreping - [ ] Selecteer meerdere todos via de selectie-checkbox links in de rij - [ ] Klik "Archiveer geselecteerde (N)" — geselecteerde todos verdwijnen - [ ] Test product-filter dropdown: kies een product — lijst filtert correct - [ ] Verifieer rollen zichtbaar in navigatiebalk (bijv. "PO · Dev") --- ## Resultaat - [ ] Alle stappen doorlopen zonder fouten - [ ] Alle API-responses zijn correct JSON - [ ] Geen console-errors of crashes - [ ] Unit tests: `npm test` → 69 passed, 0 failed - [ ] API tests: `bash scripts/test-api.sh` → 30 passed, 0 failed