test(app): cover menu shortcut conversion
This commit is contained in:
parent
38d30e25e0
commit
75d1726640
|
|
@ -175,7 +175,8 @@
|
|||
},
|
||||
{
|
||||
"id": "dev-tools",
|
||||
"label": "Developer Tools"
|
||||
"label": "Developer Tools",
|
||||
"accelerator": "CmdOrCtrl+Alt+I"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ export const APP_MENU_SCHEMA = [
|
|||
{
|
||||
id: 'dev-tools',
|
||||
label: 'Developer Tools',
|
||||
accelerator: 'CmdOrCtrl+Alt+I',
|
||||
target: 'native'
|
||||
}
|
||||
]
|
||||
|
|
|
|||
32
tests/engine/app/shell/menu/shortcut.test.ts
Normal file
32
tests/engine/app/shell/menu/shortcut.test.ts
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import { describe, expect, test } from 'bun:test'
|
||||
|
||||
import {
|
||||
appMenuAccelerator,
|
||||
appMenuShortcut,
|
||||
shortcutTokenToAccelerator,
|
||||
shortcutTokenToTinykeys
|
||||
} from '@/app/shell/menu/shortcut'
|
||||
|
||||
describe('app menu shortcut conversion', () => {
|
||||
test('looks up canonical shortcut tokens from the menu schema', () => {
|
||||
expect(appMenuShortcut('save-as')).toBe('MOD+SHIFT+S')
|
||||
expect(appMenuShortcut('selection.createComponent')).toBe('MOD+ALT+K')
|
||||
})
|
||||
|
||||
test('converts shortcut tokens to tinykeys bindings', () => {
|
||||
expect(shortcutTokenToTinykeys('MOD+SHIFT+S')).toBe('$mod+Shift+S')
|
||||
expect(shortcutTokenToTinykeys('ALT+Delete')).toBe('Alt+Delete')
|
||||
expect(shortcutTokenToTinykeys('⌫')).toBe('Backspace')
|
||||
})
|
||||
|
||||
test('converts shortcut tokens to native accelerators', () => {
|
||||
expect(shortcutTokenToAccelerator('MOD+SHIFT+S')).toBe('CmdOrCtrl+Shift+S')
|
||||
expect(shortcutTokenToAccelerator('ALT+A')).toBe('Alt+A')
|
||||
expect(shortcutTokenToAccelerator('⌫')).toBe('Backspace')
|
||||
})
|
||||
|
||||
test('derives native accelerators from menu ids', () => {
|
||||
expect(appMenuAccelerator('save-as')).toBe('CmdOrCtrl+Shift+S')
|
||||
expect(appMenuAccelerator('selection.delete')).toBe('Backspace')
|
||||
})
|
||||
})
|
||||
Loading…
Reference in a new issue