Stap 11 toegevoegd voor de todo-tabel (aanmaken, bewerken, bulk-archiveren, product-filter, rolweergave in navbar). Resultaatblok uitgebreid met npm test en curl-test verificatie. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
202 lines
6.8 KiB
Markdown
202 lines
6.8 KiB
Markdown
# 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 `<token>`, `<product-id>`, `<sprint-id>`, `<story-id>` en `<task-id>` met echte waarden.
|
|
|
|
```bash
|
|
# 1. Producten ophalen
|
|
curl -H "Authorization: Bearer <token>" \
|
|
http://localhost:3000/api/products
|
|
# Verwacht: JSON-array met het aangemaakte product
|
|
|
|
# 2. Volgende story ophalen
|
|
curl -H "Authorization: Bearer <token>" \
|
|
http://localhost:3000/api/products/<product-id>/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 <token>" \
|
|
"http://localhost:3000/api/sprints/<sprint-id>/tasks?limit=10"
|
|
# Verwacht: JSON-array met taken
|
|
|
|
# 4. Taakvolgorde aanpassen
|
|
curl -X PATCH -H "Authorization: Bearer <token>" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"task_ids":["<task-id>"]}' \
|
|
http://localhost:3000/api/stories/<story-id>/tasks/reorder
|
|
# Verwacht: {"success":true}
|
|
|
|
# 5. Taakstatus bijwerken
|
|
curl -X PATCH -H "Authorization: Bearer <token>" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"status":"IN_PROGRESS"}' \
|
|
http://localhost:3000/api/tasks/<task-id>
|
|
# Verwacht: {"id":"...","status":"IN_PROGRESS","implementation_plan":null}
|
|
|
|
# 6. Implementatieplan loggen
|
|
curl -X POST -H "Authorization: Bearer <token>" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"type":"IMPLEMENTATION_PLAN","content":"Aanpak: component-first, dan server action"}' \
|
|
http://localhost:3000/api/stories/<story-id>/log
|
|
# Verwacht: {"id":"...","created_at":"..."}
|
|
|
|
# 7. Testresultaat loggen
|
|
curl -X POST -H "Authorization: Bearer <token>" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"type":"TEST_RESULT","content":"Alle unit tests geslaagd","status":"PASSED"}' \
|
|
http://localhost:3000/api/stories/<story-id>/log
|
|
# Verwacht: {"id":"...","created_at":"..."}
|
|
|
|
# 8. Commit loggen
|
|
curl -X POST -H "Authorization: Bearer <token>" \
|
|
-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/<story-id>/log
|
|
# Verwacht: {"id":"...","created_at":"..."}
|
|
|
|
# 9. Demo-gebruiker geblokkeerd op schrijfoperaties
|
|
curl -X POST -H "Authorization: Bearer <demo-token>" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"type":"IMPLEMENTATION_PLAN","content":"test"}' \
|
|
http://localhost:3000/api/stories/<story-id>/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
|