diff --git a/frontend/src/routes/documents/[id]/edit/page.svelte.spec.ts b/frontend/src/routes/documents/[id]/edit/page.svelte.spec.ts index 0172d09c..a20d08a0 100644 --- a/frontend/src/routes/documents/[id]/edit/page.svelte.spec.ts +++ b/frontend/src/routes/documents/[id]/edit/page.svelte.spec.ts @@ -61,8 +61,14 @@ describe('Edit page — delete button', () => { context: new Map([[CONFIRM_KEY, mockService]]) }); - await page.getByRole('button', { name: /löschen/i }).click(); - await vi.waitFor(() => expect(capturedOptions).not.toBeNull()); + // Playwright CDP click has latency that can exceed vi.waitFor's 1000ms deadline. + // Dispatching the MouseEvent directly from browser-JS context is synchronous and + // reliably triggers Svelte 5 onclick — same pattern as GeschichteEditor.svelte.spec.ts. + const btn = (await page + .getByRole('button', { name: /löschen/i }) + .element()) as HTMLButtonElement; + btn.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true })); + expect(capturedOptions).not.toBeNull(); expect(capturedOptions).toMatchObject({ destructive: true }); settleRef?.(false); });