Scrum4Me/docs/realtime-smoke.md
Janpeter Visser 6375ed6949
End-to-end smoke-test: PBI/Story/Task verschijnen zonder refresh (#57)
* fix(backlog-store): make INSERT handlers idempotent to prevent duplicate entries on duplicate SSE-events

* docs(realtime-smoke): add manual smoke-checklist for PBI/Story/Task realtime end-to-end verification

---------

Co-authored-by: Scrum4Me Agent <30029041+madhura68@users.noreply.github.com>
2026-05-02 21:09:37 +02:00

79 lines
2.6 KiB
Markdown

# Realtime smoke-checklist — PBI / Story / Task
Manuele checklist voor story "End-to-end smoke-test: PBI/Story/Task verschijnen zonder refresh".
Uitvoeren na deployment van de realtime-feature (SSE-keten: DB-trigger → pg NOTIFY → SSE → store → render).
## Voorbereiding
1. Open twee browser-tabs op hetzelfde product:
- **Tab A** — `/backlog?product=<product_id>` (read-only observatie)
- **Tab B** — zelfde URL; gebruik dit tabblad voor create/edit/delete-acties
2. Zorg dat je **niet** refresht in tab A tijdens het testen.
3. Controleer in de DevTools-console van tab A dat de SSE-verbinding actief is
(`EventSource` connected, geen foutmeldingen).
---
## Checklist
### PBI
- [ ] **1. PBI aanmaken in tab B**
Maak een nieuwe PBI aan (bijv. titel "Smoke PBI").
→ Tab A toont de nieuwe PBI **binnen 1 seconde** zonder refresh.
→ Geen dubbele entry (PBI verschijnt precies één keer).
- [ ] **2. PBI titel bewerken in tab B**
Pas de titel van de PBI aan naar "Smoke PBI — updated".
→ Tab A reflecteert de nieuwe titel **binnen 1 seconde**.
→ Geen dubbele entry, geen flickering.
- [ ] **3. PBI verwijderen in tab B**
Verwijder de PBI.
→ Tab A verwijdert de PBI **binnen 1 seconde**.
---
### Story
- [ ] **4. Story aanmaken in tab B**
Maak een story aan onder een bestaande PBI (bijv. "Smoke Story").
→ Tab A toont de story in de juiste PBI-rij **binnen 1 seconde**.
→ Geen dubbele entry.
- [ ] **5. Story titel bewerken in tab B**
Pas de titel aan naar "Smoke Story — updated".
→ Tab A reflecteert de nieuwe titel.
→ Geen dubbele entry, geen flickering.
- [ ] **6. Story verwijderen in tab B**
Verwijder de story.
→ Tab A verwijdert de story uit de lijst.
---
### Task (solo-paneel + backlog drie-paneel)
- [ ] **7. Task aanmaken via solo-paneel**
Maak een task aan onder een story in het solo-paneel.
→ De task verschijnt in het solo-paneel **en** in het backlog drie-paneel **binnen 1 seconde**.
→ Geen dubbele entry.
- [ ] **8. Task status bijwerken**
Verander de status van de task (bijv. TO_DO → IN_PROGRESS).
→ Beide panelen reflecteren de nieuwe status.
- [ ] **9. Task verwijderen**
Verwijder de task.
→ Verdwijnt uit beide panelen.
---
## Pass-criteria
Alle 9 items afgevinkt = smoke geslaagd.
Bij een mislukking: noteer welk item faalde en controleer:
1. De SSE-stream (`/api/realtime/backlog?product_id=...`) in de DevTools-netwerktab.
2. De Zustand-store via Redux DevTools of een debug-breakpoint in `applyChange`.
3. De DB-trigger op de relevante tabel (`pg_notify` op INSERT/UPDATE/DELETE).