Scrum4Me/__tests__/lars-flow-checklist.md
Madhura68 44acd96ee4 docs(tests): update lars-flow-checklist to reference test-api.sh and add missing endpoints
Adds all 7 endpoints to the manual reference section (was missing
PATCH /api/sprints/:id/tasks/reorder, PATCH /api/tasks/:id, demo-block
curl example). Links automated testing to scripts/test-api.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 18:38:49 +02:00

6 KiB

ST-612 — Lars-flow acceptatietest

Handmatige checklist voor de volledige Lars-flow. Doorloop alle stappen zonder handleiding.

Voorbereiding

npx prisma db push
npx prisma db seed
npm run dev

Navigeer naar 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 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.

# 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

Resultaat

  • Alle stappen doorlopen zonder fouten
  • Alle API-responses zijn correct JSON
  • Geen console-errors of crashes