# 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).
