31 lines
1.0 KiB
TypeScript
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);
|
|
});
|