17 lines
728 B
TypeScript
17 lines
728 B
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { getKbxShortcutDebugSnapshot, registerKbxShortcuts } from '@kbx/ui'
|
|
|
|
describe('KBX shortcut manager contract',()=>{
|
|
it('rejects protected browser shortcuts',()=>{
|
|
for(const key of ['F5','Ctrl+L','Ctrl+T','Ctrl+W','Ctrl+R']){
|
|
expect(()=>registerKbxShortcuts([{key,scope:'application',execute(){}}])).toThrow(/protected/)
|
|
}
|
|
})
|
|
|
|
it('registers semantic scope without page-level window ownership',()=>{
|
|
const unregister=registerKbxShortcuts([{key:'F8',scope:'page',priority:10,execute(){}}])
|
|
expect(getKbxShortcutDebugSnapshot()).toEqual(expect.arrayContaining([expect.objectContaining({key:'F8',scope:'page',priority:10})]))
|
|
unregister()
|
|
})
|
|
})
|