test-plan
This commit is contained in:
@@ -1,272 +1,272 @@
|
|||||||
# Test Plan Epic 3 - P1 Blocks
|
# Test Plan Epic 3 - P1 Blocks
|
||||||
|
|
||||||
**Datum:** 24-12-2024
|
**Datum:** 24-12-2024
|
||||||
**Status:** Ready for Testing
|
**Status:** Ready for Testing
|
||||||
**Epic:** E3 - P1 Blocks (E3.S0-S6)
|
**Epic:** E3 - P1 Blocks (E3.S0-S6)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
1. **Start development server:**
|
1. **Start development server:**
|
||||||
```bash
|
```bash
|
||||||
pnpm dev
|
pnpm dev
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Open browser:**
|
2. **Open browser:**
|
||||||
- Navigeer naar `http://localhost:3000`
|
- Navigeer naar `http://localhost:3000`
|
||||||
- Log in (of gebruik demo account)
|
- Log in (of gebruik demo account)
|
||||||
- Kies "Swift" interface preference
|
- Kies "Swift" interface preference
|
||||||
- Je komt op `/epd/swift`
|
- Je komt op `/epd/swift`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Test Checklist
|
## Test Checklist
|
||||||
|
|
||||||
### E3.S0 - CanvasArea Block Rendering ✅
|
### E3.S0 - CanvasArea Block Rendering ✅
|
||||||
|
|
||||||
- [ ] **Empty State**
|
- [ ] **Empty State**
|
||||||
- [ ] Wanneer geen block actief is, zie je de empty state met voorbeeld commando's
|
- [ ] Wanneer geen block actief is, zie je de empty state met voorbeeld commando's
|
||||||
- [ ] Empty state heeft "Wat wil je doen?" tekst
|
- [ ] Empty state heeft "Wat wil je doen?" tekst
|
||||||
|
|
||||||
- [ ] **Block Transitions**
|
- [ ] **Block Transitions**
|
||||||
- [ ] Wanneer een block opent, zie je een smooth fade-in animatie
|
- [ ] Wanneer een block opent, zie je een smooth fade-in animatie
|
||||||
- [ ] Wanneer een block sluit, zie je een smooth fade-out animatie
|
- [ ] Wanneer een block sluit, zie je een smooth fade-out animatie
|
||||||
- [ ] Geen flickering tussen blocks
|
- [ ] Geen flickering tussen blocks
|
||||||
|
|
||||||
- [ ] **PatientContextCard Auto-Display**
|
- [ ] **PatientContextCard Auto-Display**
|
||||||
- [ ] Wanneer je een patiënt selecteert in ZoekenBlock, verschijnt PatientContextCard automatisch
|
- [ ] Wanneer je een patiënt selecteert in ZoekenBlock, verschijnt PatientContextCard automatisch
|
||||||
- [ ] PatientContextCard toont patiënt naam in header
|
- [ ] PatientContextCard toont patiënt naam in header
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### E3.S1 - Block Container ✅
|
### E3.S1 - Block Container ✅
|
||||||
|
|
||||||
- [ ] **Container Styling**
|
- [ ] **Container Styling**
|
||||||
- [ ] Alle blocks hebben een donkere achtergrond (slate-800)
|
- [ ] Alle blocks hebben een donkere achtergrond (slate-800)
|
||||||
- [ ] Blocks hebben een border (slate-700)
|
- [ ] Blocks hebben een border (slate-700)
|
||||||
- [ ] Blocks hebben shadow-2xl
|
- [ ] Blocks hebben shadow-2xl
|
||||||
|
|
||||||
- [ ] **Close Button**
|
- [ ] **Close Button**
|
||||||
- [ ] Elke block heeft een X button rechtsboven
|
- [ ] Elke block heeft een X button rechtsboven
|
||||||
- [ ] Hover over X button verandert kleur
|
- [ ] Hover over X button verandert kleur
|
||||||
- [ ] Klik op X sluit het block
|
- [ ] Klik op X sluit het block
|
||||||
- [ ] ESC toets sluit ook het block
|
- [ ] ESC toets sluit ook het block
|
||||||
|
|
||||||
- [ ] **Sizes**
|
- [ ] **Sizes**
|
||||||
- [ ] DagnotatieBlock heeft size "md"
|
- [ ] DagnotatieBlock heeft size "md"
|
||||||
- [ ] ZoekenBlock heeft size "md"
|
- [ ] ZoekenBlock heeft size "md"
|
||||||
- [ ] OverdrachtBlock heeft size "lg"
|
- [ ] OverdrachtBlock heeft size "lg"
|
||||||
- [ ] PatientContextCard heeft size "lg"
|
- [ ] PatientContextCard heeft size "lg"
|
||||||
|
|
||||||
- [ ] **Animations**
|
- [ ] **Animations**
|
||||||
- [ ] Container heeft fade-in animatie
|
- [ ] Container heeft fade-in animatie
|
||||||
- [ ] Content heeft stagger animatie (items verschijnen na elkaar)
|
- [ ] Content heeft stagger animatie (items verschijnen na elkaar)
|
||||||
- [ ] Close button heeft hover/tap animaties
|
- [ ] Close button heeft hover/tap animaties
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### E3.S2 - DagnotatieBlock ✅
|
### E3.S2 - DagnotatieBlock ✅
|
||||||
|
|
||||||
- [ ] **Patient Search**
|
- [ ] **Patient Search**
|
||||||
- [ ] Typ "jan" in patient search veld
|
- [ ] Typ "jan" in patient search veld
|
||||||
- [ ] Na ~300ms zie je zoekresultaten
|
- [ ] Na ~300ms zie je zoekresultaten
|
||||||
- [ ] Resultaten tonen naam, geboortedatum, BSN
|
- [ ] Resultaten tonen naam, geboortedatum, BSN
|
||||||
- [ ] Klik op een patiënt selecteert deze
|
- [ ] Klik op een patiënt selecteert deze
|
||||||
|
|
||||||
- [ ] **Category Selector**
|
- [ ] **Category Selector**
|
||||||
- [ ] 5 categorie buttons zijn zichtbaar: medicatie, adl, gedrag, incident, observatie
|
- [ ] 5 categorie buttons zijn zichtbaar: medicatie, adl, gedrag, incident, observatie
|
||||||
- [ ] Klik op een categorie selecteert deze (visuele feedback)
|
- [ ] Klik op een categorie selecteert deze (visuele feedback)
|
||||||
- [ ] Alleen één categorie kan geselecteerd zijn
|
- [ ] Alleen één categorie kan geselecteerd zijn
|
||||||
|
|
||||||
- [ ] **Text Input**
|
- [ ] **Text Input**
|
||||||
- [ ] Textarea is beschikbaar
|
- [ ] Textarea is beschikbaar
|
||||||
- [ ] Character counter toont "0 / 500"
|
- [ ] Character counter toont "0 / 500"
|
||||||
- [ ] Typ tekst → counter update
|
- [ ] Typ tekst → counter update
|
||||||
- [ ] Max 500 karakters (kan niet meer typen)
|
- [ ] Max 500 karakters (kan niet meer typen)
|
||||||
|
|
||||||
- [ ] **Include in Handover**
|
- [ ] **Include in Handover**
|
||||||
- [ ] Checkbox "Opnemen in overdracht" is zichtbaar
|
- [ ] Checkbox "Opnemen in overdracht" is zichtbaar
|
||||||
- [ ] Checkbox kan aangevinkt worden
|
- [ ] Checkbox kan aangevinkt worden
|
||||||
|
|
||||||
- [ ] **Save Functionality**
|
- [ ] **Save Functionality**
|
||||||
- [ ] Klik "Opslaan" zonder patiënt → error message
|
- [ ] Klik "Opslaan" zonder patiënt → error message
|
||||||
- [ ] Klik "Opslaan" zonder categorie → error message
|
- [ ] Klik "Opslaan" zonder categorie → error message
|
||||||
- [ ] Klik "Opslaan" zonder tekst → error message
|
- [ ] Klik "Opslaan" zonder tekst → error message
|
||||||
- [ ] Vul alles in en klik "Opslaan"
|
- [ ] Vul alles in en klik "Opslaan"
|
||||||
- [ ] Success toast verschijnt
|
- [ ] Success toast verschijnt
|
||||||
- [ ] Block sluit automatisch na ~500ms
|
- [ ] Block sluit automatisch na ~500ms
|
||||||
|
|
||||||
- [ ] **Prefill Data**
|
- [ ] **Prefill Data**
|
||||||
- [ ] Typ "notitie jan medicatie" in command input
|
- [ ] Typ "notitie jan medicatie" in command input
|
||||||
- [ ] DagnotatieBlock opent met "jan" voorgevuld in patient search
|
- [ ] DagnotatieBlock opent met "jan" voorgevuld in patient search
|
||||||
- [ ] Categorie "medicatie" is geselecteerd
|
- [ ] Categorie "medicatie" is geselecteerd
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### E3.S3 - Patient Search API ✅
|
### E3.S3 - Patient Search API ✅
|
||||||
|
|
||||||
- [ ] **API Endpoint**
|
- [ ] **API Endpoint**
|
||||||
- [ ] Open DevTools → Network tab
|
- [ ] Open DevTools → Network tab
|
||||||
- [ ] Typ in ZoekenBlock of DagnotatieBlock
|
- [ ] Typ in ZoekenBlock of DagnotatieBlock
|
||||||
- [ ] Request naar `/api/patients/search?q=...` wordt gemaakt
|
- [ ] Request naar `/api/patients/search?q=...` wordt gemaakt
|
||||||
- [ ] Response heeft `patients` array met `matchScore`
|
- [ ] Response heeft `patients` array met `matchScore`
|
||||||
|
|
||||||
- [ ] **Search Functionality**
|
- [ ] **Search Functionality**
|
||||||
- [ ] Zoek op naam: "jan" → resultaten met "Jan" in naam
|
- [ ] Zoek op naam: "jan" → resultaten met "Jan" in naam
|
||||||
- [ ] Zoek op BSN: "123456789" → resultaten met deze BSN
|
- [ ] Zoek op BSN: "123456789" → resultaten met deze BSN
|
||||||
- [ ] Zoek op clientnummer: "12345" → resultaten met dit nummer
|
- [ ] Zoek op clientnummer: "12345" → resultaten met dit nummer
|
||||||
- [ ] Zoek op deel van naam: "mar" → resultaten met "Marie", "Maria", etc.
|
- [ ] Zoek op deel van naam: "mar" → resultaten met "Marie", "Maria", etc.
|
||||||
|
|
||||||
- [ ] **Match Scoring**
|
- [ ] **Match Scoring**
|
||||||
- [ ] Exacte naam match heeft hogere score
|
- [ ] Exacte naam match heeft hogere score
|
||||||
- [ ] Resultaten zijn gesorteerd op matchScore (hoogste eerst)
|
- [ ] Resultaten zijn gesorteerd op matchScore (hoogste eerst)
|
||||||
|
|
||||||
- [ ] **Error Handling**
|
- [ ] **Error Handling**
|
||||||
- [ ] Zoek op "x" (te kort) → geen request
|
- [ ] Zoek op "x" (te kort) → geen request
|
||||||
- [ ] Network error → error message in UI
|
- [ ] Network error → error message in UI
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### E3.S4 - ZoekenBlock ✅
|
### E3.S4 - ZoekenBlock ✅
|
||||||
|
|
||||||
- [ ] **Search Input**
|
- [ ] **Search Input**
|
||||||
- [ ] Typ in search input veld
|
- [ ] Typ in search input veld
|
||||||
- [ ] Debouncing werkt (geen request bij elke toetsaanslag)
|
- [ ] Debouncing werkt (geen request bij elke toetsaanslag)
|
||||||
- [ ] Loading indicator tijdens zoeken
|
- [ ] Loading indicator tijdens zoeken
|
||||||
|
|
||||||
- [ ] **Search Results**
|
- [ ] **Search Results**
|
||||||
- [ ] Resultaten verschijnen in dropdown
|
- [ ] Resultaten verschijnen in dropdown
|
||||||
- [ ] Elke resultaat toont: avatar, naam, geboortedatum, BSN, clientnummer
|
- [ ] Elke resultaat toont: avatar, naam, geboortedatum, BSN, clientnummer
|
||||||
- [ ] Max 5 resultaten getoond
|
- [ ] Max 5 resultaten getoond
|
||||||
|
|
||||||
- [ ] **Patient Selection**
|
- [ ] **Patient Selection**
|
||||||
- [ ] Klik op een patiënt in resultaten
|
- [ ] Klik op een patiënt in resultaten
|
||||||
- [ ] Loading indicator tijdens ophalen volledige data
|
- [ ] Loading indicator tijdens ophalen volledige data
|
||||||
- [ ] Success toast: "Patiënt geselecteerd"
|
- [ ] Success toast: "Patiënt geselecteerd"
|
||||||
- [ ] Block sluit automatisch
|
- [ ] Block sluit automatisch
|
||||||
- [ ] PatientContextCard verschijnt automatisch
|
- [ ] PatientContextCard verschijnt automatisch
|
||||||
|
|
||||||
- [ ] **Store Integration**
|
- [ ] **Store Integration**
|
||||||
- [ ] Na selectie is `activePatient` gezet in store
|
- [ ] Na selectie is `activePatient` gezet in store
|
||||||
- [ ] Recent action is toegevoegd: "Patiënt geselecteerd: [naam]"
|
- [ ] Recent action is toegevoegd: "Patiënt geselecteerd: [naam]"
|
||||||
|
|
||||||
- [ ] **Empty State**
|
- [ ] **Empty State**
|
||||||
- [ ] Geen resultaten → "Geen patiënten gevonden" message
|
- [ ] Geen resultaten → "Geen patiënten gevonden" message
|
||||||
- [ ] Te korte query → geen resultaten
|
- [ ] Te korte query → geen resultaten
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### E3.S5 - PatientContextCard ✅
|
### E3.S5 - PatientContextCard ✅
|
||||||
|
|
||||||
- [ ] **Auto-Open**
|
- [ ] **Auto-Open**
|
||||||
- [ ] Na patiënt selectie in ZoekenBlock verschijnt PatientContextCard automatisch
|
- [ ] Na patiënt selectie in ZoekenBlock verschijnt PatientContextCard automatisch
|
||||||
- [ ] PatientContextCard heeft patiënt naam in header
|
- [ ] PatientContextCard heeft patiënt naam in header
|
||||||
|
|
||||||
- [ ] **Loading State**
|
- [ ] **Loading State**
|
||||||
- [ ] Tijdens laden zie je "Context laden..." met spinner
|
- [ ] Tijdens laden zie je "Context laden..." met spinner
|
||||||
|
|
||||||
- [ ] **Notities Sectie**
|
- [ ] **Notities Sectie**
|
||||||
- [ ] Laatste 5 reports worden getoond
|
- [ ] Laatste 5 reports worden getoond
|
||||||
- [ ] Elke notitie toont: type badge, overdracht indicator, datum/tijd, content preview
|
- [ ] Elke notitie toont: type badge, overdracht indicator, datum/tijd, content preview
|
||||||
- [ ] Content is gelimiteerd tot 2 regels (line-clamp-2)
|
- [ ] Content is gelimiteerd tot 2 regels (line-clamp-2)
|
||||||
|
|
||||||
- [ ] **Vitals Sectie**
|
- [ ] **Vitals Sectie**
|
||||||
- [ ] Vitale functies van vandaag worden getoond
|
- [ ] Vitale functies van vandaag worden getoond
|
||||||
- [ ] Grid layout (2 kolommen)
|
- [ ] Grid layout (2 kolommen)
|
||||||
- [ ] Abnormale waarden hebben amber achtergrond
|
- [ ] Abnormale waarden hebben amber achtergrond
|
||||||
- [ ] Elke vital toont: naam, waarde, eenheid, tijdstip
|
- [ ] Elke vital toont: naam, waarde, eenheid, tijdstip
|
||||||
|
|
||||||
- [ ] **Diagnoses Sectie**
|
- [ ] **Diagnoses Sectie**
|
||||||
- [ ] Actieve diagnoses worden getoond
|
- [ ] Actieve diagnoses worden getoond
|
||||||
- [ ] Elke diagnose toont: naam, startdatum (indien beschikbaar)
|
- [ ] Elke diagnose toont: naam, startdatum (indien beschikbaar)
|
||||||
|
|
||||||
- [ ] **Risico's Sectie**
|
- [ ] **Risico's Sectie**
|
||||||
- [ ] Risk assessments worden getoond
|
- [ ] Risk assessments worden getoond
|
||||||
- [ ] Risico badges met kleurcodering (rood voor hoog, amber voor gemiddeld)
|
- [ ] Risico badges met kleurcodering (rood voor hoog, amber voor gemiddeld)
|
||||||
- [ ] Elke badge toont: type + niveau
|
- [ ] Elke badge toont: type + niveau
|
||||||
|
|
||||||
- [ ] **Empty State**
|
- [ ] **Empty State**
|
||||||
- [ ] Geen data beschikbaar → "Geen context beschikbaar voor deze patiënt"
|
- [ ] Geen data beschikbaar → "Geen context beschikbaar voor deze patiënt"
|
||||||
|
|
||||||
- [ ] **Error Handling**
|
- [ ] **Error Handling**
|
||||||
- [ ] API error → error message met retry optie
|
- [ ] API error → error message met retry optie
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### E3.S6 - OverdrachtBlock ✅
|
### E3.S6 - OverdrachtBlock ✅
|
||||||
|
|
||||||
- [ ] **Patients List**
|
- [ ] **Patients List**
|
||||||
- [ ] Lijst van patiënten met activiteit wordt geladen
|
- [ ] Lijst van patiënten met activiteit wordt geladen
|
||||||
- [ ] Loading state tijdens laden
|
- [ ] Loading state tijdens laden
|
||||||
- [ ] Elke patiënt toont: naam, alert count, risico indicator
|
- [ ] Elke patiënt toont: naam, alert count, risico indicator
|
||||||
|
|
||||||
- [ ] **Period Selector**
|
- [ ] **Period Selector**
|
||||||
- [ ] 4 period buttons: Vandaag, 3 dagen, 1 week, 2 weken
|
- [ ] 4 period buttons: Vandaag, 3 dagen, 1 week, 2 weken
|
||||||
- [ ] Geselecteerde periode heeft visuele feedback
|
- [ ] Geselecteerde periode heeft visuele feedback
|
||||||
- [ ] Beschrijving onder buttons update bij selectie
|
- [ ] Beschrijving onder buttons update bij selectie
|
||||||
|
|
||||||
- [ ] **Active Patient Filter**
|
- [ ] **Active Patient Filter**
|
||||||
- [ ] Wanneer `activePatient` is gezet, toont alleen die patiënt
|
- [ ] Wanneer `activePatient` is gezet, toont alleen die patiënt
|
||||||
- [ ] Wanneer geen `activePatient`, toont alle patiënten
|
- [ ] Wanneer geen `activePatient`, toont alle patiënten
|
||||||
|
|
||||||
- [ ] **Generate Summary**
|
- [ ] **Generate Summary**
|
||||||
- [ ] Klik "Genereer" button voor een patiënt
|
- [ ] Klik "Genereer" button voor een patiënt
|
||||||
- [ ] Loading state: "Samenvatting wordt gegenereerd..."
|
- [ ] Loading state: "Samenvatting wordt gegenereerd..."
|
||||||
- [ ] Na ~3-5 seconden verschijnt samenvatting
|
- [ ] Na ~3-5 seconden verschijnt samenvatting
|
||||||
|
|
||||||
- [ ] **Summary Display**
|
- [ ] **Summary Display**
|
||||||
- [ ] **Samenvatting**: AI-gegenereerde tekst in grijze box
|
- [ ] **Samenvatting**: AI-gegenereerde tekst in grijze box
|
||||||
- [ ] **Aandachtspunten**: Lijst met urgentie badges
|
- [ ] **Aandachtspunten**: Lijst met urgentie badges
|
||||||
- [ ] Urgente punten hebben rode border + alert icon
|
- [ ] Urgente punten hebben rode border + alert icon
|
||||||
- [ ] Bron type badges (observatie, rapportage, verpleegkundig, risico)
|
- [ ] Bron type badges (observatie, rapportage, verpleegkundig, risico)
|
||||||
- [ ] Bronverwijzingen met datum + label
|
- [ ] Bronverwijzingen met datum + label
|
||||||
- [ ] **Actiepunten**: Checklist met acties
|
- [ ] **Actiepunten**: Checklist met acties
|
||||||
- [ ] **Footer**: Tijdstip generatie + duration, refresh button
|
- [ ] **Footer**: Tijdstip generatie + duration, refresh button
|
||||||
|
|
||||||
- [ ] **Error Handling**
|
- [ ] **Error Handling**
|
||||||
- [ ] API error → error message met "Opnieuw proberen" button
|
- [ ] API error → error message met "Opnieuw proberen" button
|
||||||
- [ ] Network error → toast notification
|
- [ ] Network error → toast notification
|
||||||
|
|
||||||
- [ ] **Refresh**
|
- [ ] **Refresh**
|
||||||
- [ ] Klik "Vernieuwen" button → nieuwe samenvatting wordt gegenereerd
|
- [ ] Klik "Vernieuwen" button → nieuwe samenvatting wordt gegenereerd
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Cross-Feature Tests
|
## Cross-Feature Tests
|
||||||
|
|
||||||
- [ ] **Keyboard Shortcuts**
|
- [ ] **Keyboard Shortcuts**
|
||||||
- [ ] ESC sluit actieve block
|
- [ ] ESC sluit actieve block
|
||||||
- [ ] Cmd+K focust command input
|
- [ ] Cmd+K focust command input
|
||||||
|
|
||||||
- [ ] **Animations**
|
- [ ] **Animations**
|
||||||
- [ ] Alle transitions zijn smooth (geen janky animaties)
|
- [ ] Alle transitions zijn smooth (geen janky animaties)
|
||||||
- [ ] Geen layout shifts tijdens animaties
|
- [ ] Geen layout shifts tijdens animaties
|
||||||
|
|
||||||
- [ ] **Error States**
|
- [ ] **Error States**
|
||||||
- [ ] Network errors tonen user-friendly messages
|
- [ ] Network errors tonen user-friendly messages
|
||||||
- [ ] Validation errors zijn duidelijk
|
- [ ] Validation errors zijn duidelijk
|
||||||
- [ ] Retry functionaliteit werkt
|
- [ ] Retry functionaliteit werkt
|
||||||
|
|
||||||
- [ ] **Performance**
|
- [ ] **Performance**
|
||||||
- [ ] Blocks openen binnen 100ms
|
- [ ] Blocks openen binnen 100ms
|
||||||
- [ ] API calls zijn debounced waar nodig
|
- [ ] API calls zijn debounced waar nodig
|
||||||
- [ ] Geen onnodige re-renders
|
- [ ] Geen onnodige re-renders
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Known Issues / Notes
|
## Known Issues / Notes
|
||||||
|
|
||||||
- [ ] Noteer hier eventuele issues die je tegenkomt
|
- [ ] Noteer hier eventuele issues die je tegenkomt
|
||||||
- [ ] Noteer verbeteringen die je zou willen zien
|
- [ ] Noteer verbeteringen die je zou willen zien
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Test Resultaten
|
## Test Resultaten
|
||||||
|
|
||||||
**Tester:** _________________
|
**Tester:** _________________
|
||||||
**Datum:** _________________
|
**Datum:** _________________
|
||||||
**Status:** ⏳ In Progress / ✅ Passed / ❌ Failed
|
**Status:** ⏳ In Progress / ✅ Passed / ❌ Failed
|
||||||
|
|
||||||
**Totaal:** ___ / ___ tests passed
|
**Totaal:** ___ / ___ tests passed
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user