1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
import { describe, it, expect, beforeEach } from 'vitest'
import { useKeybindingsStore } from '../keybindings-store'
describe('Keybindings Store', () => {
beforeEach(() => {
// Reset store to default state before each test
useKeybindingsStore.getState().resetToDefaults()
})
describe('Default Keybindings', () => {
it('should include Enter key mapping to goto-start action', () => {
const { keybindings } = useKeybindingsStore.getState()
expect(keybindings.enter).toBe('goto-start')
})
it('should include Home key mapping to goto-start action', () => {
const { keybindings } = useKeybindingsStore.getState()
expect(keybindings.home).toBe('goto-start')
})
it('should have both Enter and Home keys for the same action', () => {
const { keybindings } = useKeybindingsStore.getState()
expect(keybindings.enter).toBe(keybindings.home)
})
})
describe('getKeybindingsForAction', () => {
it('should return both Enter and Home keys for goto-start action', () => {
const { getKeybindingsForAction } = useKeybindingsStore.getState()
const keys = getKeybindingsForAction('goto-start')
expect(keys).toContain('enter')
expect(keys).toContain('home')
expect(keys.length).toBeGreaterThanOrEqual(2)
})
})
describe('Keyboard Event Parsing', () => {
it('should generate correct keybinding string for Enter key', () => {
const { getKeybindingString } = useKeybindingsStore.getState()
// Mock KeyboardEvent for Enter key
const enterEvent = new KeyboardEvent('keydown', {
key: 'Enter',
code: 'Enter'
})
const result = getKeybindingString(enterEvent)
expect(result).toBe('enter')
})
it('should generate correct keybinding string for Home key', () => {
const { getKeybindingString } = useKeybindingsStore.getState()
// Mock KeyboardEvent for Home key
const homeEvent = new KeyboardEvent('keydown', {
key: 'Home',
code: 'Home'
})
const result = getKeybindingString(homeEvent)
expect(result).toBe('home')
})
})
})
|