From 53660eadc93a1c69458f1a368b44b8e47fd612db Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 29 May 2026 18:49:03 +0200 Subject: [PATCH] test(stammbaum): assert drag-pan before release to avoid inertia flake (#692) Read the pan emission from the pointermove (deterministic) instead of the post-pointerup last call, which inertia could perturb when reduced-motion is not forced in vitest-browser (QA blocker). Co-Authored-By: Claude Opus 4.8 --- .../src/lib/person/genealogy/StammbaumTree.svelte.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/src/lib/person/genealogy/StammbaumTree.svelte.test.ts b/frontend/src/lib/person/genealogy/StammbaumTree.svelte.test.ts index 9b67f862..073e7acb 100644 --- a/frontend/src/lib/person/genealogy/StammbaumTree.svelte.test.ts +++ b/frontend/src/lib/person/genealogy/StammbaumTree.svelte.test.ts @@ -568,12 +568,15 @@ describe('StammbaumTree keyboard pan/zoom (#692)', () => { const opts = (x: number) => ({ pointerId: 1, clientX: x, clientY: 100, bubbles: true }); svg.dispatchEvent(new PointerEvent('pointerdown', opts(100))); svg.dispatchEvent(new PointerEvent('pointermove', opts(160))); - svg.dispatchEvent(new PointerEvent('pointerup', opts(160))); + // Assert on the move's emission *before* releasing: inertia starts on + // pointerup and could otherwise perturb the last recorded call. expect(onPanZoom).toHaveBeenCalled(); // Dragging right reveals content to the left → pan x decreases. expect(onPanZoom.mock.calls.at(-1)![0].x).toBeLessThan(0); + svg.dispatchEvent(new PointerEvent('pointerup', opts(160))); + // The synthetic click after a real drag must not select the node. node.dispatchEvent(new MouseEvent('click', { bubbles: true })); expect(onSelect).not.toHaveBeenCalled();