From ccca8dab18228d77a7f24e0c477a036fca48d0d9 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 25 Apr 2026 09:01:41 +0200 Subject: [PATCH] test(HelpPopover): use userEvent.keyboard for Enter/Space tests Co-Authored-By: Claude Sonnet 4.6 --- .../lib/components/HelpPopover.svelte.spec.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/frontend/src/lib/components/HelpPopover.svelte.spec.ts b/frontend/src/lib/components/HelpPopover.svelte.spec.ts index b22d1ab9..e2cccf52 100644 --- a/frontend/src/lib/components/HelpPopover.svelte.spec.ts +++ b/frontend/src/lib/components/HelpPopover.svelte.spec.ts @@ -1,6 +1,6 @@ import { describe, it, expect, afterEach, vi } from 'vitest'; import { cleanup, render } from 'vitest-browser-svelte'; -import { page } from 'vitest/browser'; +import { page, userEvent } from 'vitest/browser'; import HelpPopover from './HelpPopover.svelte'; afterEach(cleanup); @@ -51,16 +51,18 @@ describe('HelpPopover — open / close interactions', () => { await vi.waitFor(() => expect(document.querySelector('[role="region"]')).toBeNull()); }); - it('opens on Enter key (button is keyboard-reachable, Enter fires click)', async () => { + it('opens on Enter key', async () => { renderPopover(); - await page.getByRole('button', { name: /Help/ }).click(); - expect(document.querySelector('[role="region"]')).not.toBeNull(); + (document.querySelector('button[aria-expanded]') as HTMLButtonElement).focus(); + await userEvent.keyboard('{Enter}'); + await vi.waitFor(() => expect(document.querySelector('[role="region"]')).not.toBeNull()); }); - it('opens on Space key (button is keyboard-reachable, Space fires click)', async () => { + it('opens on Space key', async () => { renderPopover(); - await page.getByRole('button', { name: /Help/ }).click(); - expect(document.querySelector('[role="region"]')).not.toBeNull(); + (document.querySelector('button[aria-expanded]') as HTMLButtonElement).focus(); + await userEvent.keyboard('{Space}'); + await vi.waitFor(() => expect(document.querySelector('[role="region"]')).not.toBeNull()); }); });