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

6.4 KiB

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

  • ⌘K/Ctrl+K werkt op alle platforms
  • Escape werkt in alle contexts (blocks, picker)
  • Enter submit werkt in command input
  • ⌘Enter/Ctrl+Enter werkt in command input
  • ⌘Enter/Ctrl+Enter werkt in dagnotitie block
  • 1-3 number shortcuts werken in FallbackPicker
  • Shortcuts hebben visual hints waar relevant
  • preventDefault() voorkomt browser conflicts
  • Shortcuts respecteren disabled/processing states
  • 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.