import { describe, expect, it } from 'vitest';
import { isImeCompositionEvent, isImeEnterEvent } from './ime';
describe('IME keyboard helpers', () => {
it('detects active composition from the DOM event', () => {
expect(isImeCompositionEvent({ key: 'Enter', isComposing: true })).toBe(true);
});
it('detects active composition from the native event', () => {
expect(isImeCompositionEvent({ key: 'Enter', nativeEvent: { isComposing: true } })).toBe(true);
});
it('detects IME process keyCode 229', () => {
expect(isImeCompositionEvent({ key: 'Enter', keyCode: 229 })).toBe(true);
expect(isImeCompositionEvent({ key: 'Enter', nativeEvent: { keyCode: 229 } })).toBe(true);
});
it('only treats composing Enter as an IME Enter event', () => {
expect(isImeEnterEvent({ key: 'Enter', keyCode: 229 })).toBe(true);
expect(isImeEnterEvent({ key: 'Enter', keyCode: 13 })).toBe(false);
expect(isImeEnterEvent({ key: 'a', keyCode: 229 })).toBe(false);
});
});