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