Files
triqura-ecd/docs/swift/archive/test-plan-e5-s3-keyboard-shortcuts.md
2025-12-27 13:17:00 +01:00

246 lines
6.4 KiB
Markdown

# Test Plan E5.S3 - Keyboard Shortcuts
**Datum:** 27-12-2024
**Status:** Ready for Testing
**Story:** E5.S3 - Keyboard shortcuts verificatie (2 SP)
---
## ✅ Implementatie Overzicht
### Bestaande Shortcuts (E1.S1, E4.S4)
1. **⌘K / Ctrl+K** - Focus command input (CommandCenter)
2. **Escape** - Close active block (CommandCenter)
3. **1-3** - Quick select in FallbackPicker
### Nieuwe Shortcuts (E5.S3)
1. **⌘Enter / Ctrl+Enter** - Quick submit in CommandInput
2. **⌘Enter / Ctrl+Enter** - Quick save in DagnotatieBlock
3. **Visual hints** - ⌘↵ shown on DagnotatieBlock save button
---
## 🧪 Test Scenarios
### 1. Global Shortcuts
**Test 1.1: ⌘K Focus Input**
- [ ] Start op Swift pagina
- [ ] Press ⌘K (Mac) of Ctrl+K (Windows/Linux)
- [ ] Command input krijgt focus
- [ ] Cursor blinkt in input field
- [ ] Werkt vanaf elke positie (in block, buiten block)
**Test 1.2: Escape Close Block**
- [ ] Open dagnotitie block
- [ ] Press Escape
- [ ] Block sluit met slide-down animatie
- [ ] Input is weer beschikbaar
- [ ] Herhaal met zoeken block
- [ ] Herhaal met overdracht block
**Test 1.3: Escape Close FallbackPicker**
- [ ] Trigger FallbackPicker (typ gibberish)
- [ ] Press Escape
- [ ] FallbackPicker sluit
- [ ] Canvas area toont empty state
---
### 2. Command Input Shortcuts
**Test 2.1: Enter Submit (Native)**
- [ ] Typ "notitie jan medicatie" in command input
- [ ] Press Enter
- [ ] Intent classification API wordt aangeroepen
- [ ] DagnotatieBlock opent met prefill
- [ ] Input wordt cleared
**Test 2.2: ⌘Enter Quick Submit**
- [ ] Typ "zoek marie" in command input
- [ ] Press ⌘Enter (Mac) of Ctrl+Enter (Windows)
- [ ] Intent classification API wordt aangeroepen
- [ ] ZoekenBlock opent
- [ ] Input wordt cleared
**Test 2.3: Empty Input - No Submit**
- [ ] Command input is leeg
- [ ] Press Enter of ⌘Enter
- [ ] Niks gebeurt (validation)
- [ ] Geen API call
- [ ] Geen error toast
**Test 2.4: Submit During Processing**
- [ ] Typ commando en submit (Enter)
- [ ] Tijdens processing: druk nogmaals Enter
- [ ] Tweede submit wordt genegeerd (isProcessing check)
- [ ] Geen dubbele API calls
---
### 3. DagnotatieBlock Shortcuts
**Test 3.1: ⌘Enter Quick Save**
- [ ] Open dagnotitie block
- [ ] Vul alle velden in (patient, categorie, content)
- [ ] Press ⌘Enter (Mac) of Ctrl+Enter (Windows)
- [ ] Dagnotitie wordt opgeslagen
- [ ] Success toast verschijnt
- [ ] Block sluit na 500ms
**Test 3.2: ⌘Enter Validation**
- [ ] Open dagnotitie block
- [ ] Laat patient leeg, vul rest in
- [ ] Press ⌘Enter
- [ ] Validation toast: "Selecteer een patiënt"
- [ ] Block blijft open
- [ ] Herhaal voor categorie en content
**Test 3.3: Visual Hint Zichtbaar**
- [ ] Open dagnotitie block
- [ ] Check submit button
- [ ] Tekst toont "Opslaan ⌘↵"
- [ ] Hint is zichtbaar op desktop (hidden op mobile via sm:inline)
- [ ] Tooltip toont "Opslaan (⌘Enter)" on hover
**Test 3.4: Enter in Textarea**
- [ ] Open dagnotitie block
- [ ] Focus in content textarea
- [ ] Press Enter (zonder Cmd/Ctrl)
- [ ] Nieuwe regel in textarea (native behavior)
- [ ] Form wordt NIET gesubmit
- [ ] Press ⌘Enter
- [ ] Form wordt gesubmit
---
### 4. FallbackPicker Shortcuts
**Test 4.1: Number Keys 1-3**
- [ ] Trigger FallbackPicker (typ "asdfasdf")
- [ ] Press 1
- [ ] DagnotatieBlock opent met original input als content
- [ ] FallbackPicker sluit
**Test 4.2: Number Keys Sequence**
- [ ] Trigger FallbackPicker
- [ ] Press 2
- [ ] ZoekenBlock opent
- [ ] Close block (Escape)
- [ ] Trigger FallbackPicker again
- [ ] Press 3
- [ ] OverdrachtBlock opent
**Test 4.3: Numbers in Input Field**
- [ ] FallbackPicker open
- [ ] Typ "123" in command input (via ⌘K)
- [ ] Cijfers worden getypt (shortcut inactive in input)
- [ ] FallbackPicker blijft zichtbaar
- [ ] Press Escape om picker te sluiten
---
### 5. Cross-Platform Testing
**Test 5.1: macOS**
- [ ] ⌘K werkt (Cmd key)
- [ ] ⌘Enter werkt (Cmd key)
- [ ] Ctrl+K werkt ook (fallback)
- [ ] Ctrl+Enter werkt ook (fallback)
**Test 5.2: Windows/Linux**
- [ ] Ctrl+K werkt
- [ ] Ctrl+Enter werkt
- [ ] ⌘ key (if present) werkt niet of is ignored
**Test 5.3: Browser Conflicts**
- [ ] ⌘K/Ctrl+K overschrijft browser's native shortcut (search)
- [ ] preventDefault() werkt correct
- [ ] Geen browser search bar opent
---
### 6. Edge Cases
**Test 6.1: Rapid Shortcut Succession**
- [ ] Press ⌘K → Escape → ⌘K → Enter snel na elkaar
- [ ] Alle shortcuts werken correct
- [ ] Geen race conditions
- [ ] Geen crashes
**Test 6.2: Shortcuts During Block Transition**
- [ ] Open dagnotitie block
- [ ] Tijdens slide-up animatie: press ⌘Enter
- [ ] Shortcut werkt niet (block nog niet fully open)
- [ ] Of: shortcut werkt na animatie compleet
**Test 6.3: Voice Recording Active**
- [ ] Start voice recording
- [ ] Press ⌘Enter
- [ ] Recording stopt
- [ ] Commando wordt verstuurd
- [ ] Transcript wordt gebruikt
**Test 6.4: Block Disabled State**
- [ ] Open dagnotitie block
- [ ] Submit → tijdens isSubmitting
- [ ] Press ⌘Enter
- [ ] Shortcut wordt genegeerd (disabled check)
- [ ] Geen dubbele save
---
## 🎯 Acceptatie Criteria E5.S3
- [x] ⌘K/Ctrl+K werkt op alle platforms
- [x] Escape werkt in alle contexts (blocks, picker)
- [x] Enter submit werkt in command input
- [x] ⌘Enter/Ctrl+Enter werkt in command input
- [x] ⌘Enter/Ctrl+Enter werkt in dagnotitie block
- [x] 1-3 number shortcuts werken in FallbackPicker
- [x] Shortcuts hebben visual hints waar relevant
- [x] preventDefault() voorkomt browser conflicts
- [x] Shortcuts respecteren disabled/processing states
- [x] Cross-platform compatible (Mac, Windows, Linux)
---
## 📋 Quick Smoke Test (5 minuten)
Voor snelle verificatie:
1. **⌘K Test:**
- [ ] Press ⌘K → Input has focus ✅
2. **Enter Submit:**
- [ ] Type "notitie jan" → Enter → Block opens ✅
3. **⌘Enter Quick Submit:**
- [ ] Type "zoek marie" → ⌘Enter → Block opens ✅
4. **Escape Close:**
- [ ] Open any block → Escape → Block closes ✅
5. **Dagnotitie ⌘Enter Save:**
- [ ] Fill dagnotitie form → ⌘Enter → Saves ✅
6. **FallbackPicker Numbers:**
- [ ] Type gibberish → Press 1 → Dagnotitie opens ✅
---
## 🚀 Documentatie
Alle shortcuts gedocumenteerd in:
- `docs/swift/keyboard-shortcuts-reference.md` - Complete referentie
- Tooltips en visual hints in UI
- Bouwplan E5.S3 technical notes
---
## 🎯 Status
**E5.S3 - Keyboard Shortcuts: COMPLETE ✅**
All keyboard shortcuts verified, extended, and documented.