import { h, createRef } from 'preact'; import RelativeModal from '../RelativeModal'; import userEvent from '@testing-library/user-event'; import { fireEvent, render, screen } from '@testing-library/preact'; describe('RelativeModal', () => { test('keeps tab focus', async () => { const ref = createRef(); render(
); const inputs = screen.queryAllByTestId(/modal-input/); expect(document.activeElement).toBe(inputs[0]); userEvent.tab(); expect(document.activeElement).toBe(inputs[1]); userEvent.tab(); expect(document.activeElement).toBe(inputs[0]); }); test('pressing ESC dismisses', async () => { const handleDismiss = jest.fn(); const ref = createRef(); render(
); const dialog = screen.queryByRole('dialog'); expect(dialog).toBeInTheDocument(); fireEvent.keyDown(document.activeElement, { key: 'Escape', code: 'Escape' }); expect(handleDismiss).toHaveBeenCalled(); }); test('clicking a scrim dismisses', async () => { const handleDismiss = jest.fn(); const ref = createRef(); render(
); fireEvent.click(screen.queryByTestId('scrim')); expect(handleDismiss).toHaveBeenCalled(); }); });