import { describe, it, expect } from 'vitest' import { createRoot } from '../vdom.ts' import { invariant } from '../invariant.ts' import { on } from './on-mixin.ts' import { keys } from './keys-mixin.ts' describe('keysEvents mixin', () => { it('dispatches keydown:Space events and prevents default', () => { let calls = 0 let keydownResult = true let container = document.createElement('div') let root = createRoot(container) root.render(
{ calls++ }), ]} />, ) root.flush() let div = container.querySelector('div') invariant(div) keydownResult = div.dispatchEvent( new KeyboardEvent('keydown', { key: ' ', bubbles: true, cancelable: true }), ) root.flush() expect(calls).toBe(1) expect(keydownResult).toBe(false) }) it('dispatches keydown:ArrowUp events', () => { let calls = 0 let container = document.createElement('div') let root = createRoot(container) root.render(
{ calls++ }), ]} />, ) root.flush() let div = container.querySelector('div') invariant(div) div.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true })) root.flush() expect(calls).toBe(1) }) })