Files
openchamber/packages/ui/src/hooks/keyboard-shortcut-dom.test.ts
T

31 lines
1.0 KiB
TypeScript

import { expect, test } from 'bun:test';
import { hasOpenDropdown } from './keyboard-shortcut-dom';
test('does not treat an unrelated visible listbox as an open dropdown', () => {
const promptNavigator = {} as Element;
const root = {
querySelector: (selector: string) => selector.includes('[role="listbox"]') ? promptNavigator : null,
} as unknown as ParentNode;
expect(hasOpenDropdown(root)).toBe(false);
});
test('detects an open dropdown popup', () => {
const dropdown = {} as Element;
const root = {
querySelector: (selector: string) => selector.includes('[data-slot="dropdown-menu-content"][data-open]') ? dropdown : null,
} as unknown as ParentNode;
expect(hasOpenDropdown(root)).toBe(true);
});
test('detects an open select popup', () => {
const select = {} as Element;
const root = {
querySelector: (selector: string) => selector.includes('[data-slot="select-content"][data-open]') ? select : null,
} as unknown as ParentNode;
expect(hasOpenDropdown(root)).toBe(true);
});