From 8ee1855fa6f5233ece5c00714c787ad4f1b715fd Mon Sep 17 00:00:00 2001 From: IvanCCO Date: Sat, 4 Jul 2026 19:35:21 -0300 Subject: [PATCH] test: enhance controller drag click suppression test - Added a mock implementation for performance.now to control timing in tests. - Updated pointerup event to include client coordinates for more accurate simulation. - Adjusted click events to verify visibility state changes of the axis trigger after drag interactions. --- src/content.test.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/content.test.ts b/src/content.test.ts index cf74803..d6acdaf 100644 --- a/src/content.test.ts +++ b/src/content.test.ts @@ -372,6 +372,9 @@ describe('background/popup messaging', () => { describe('controller drag suppresses the trailing click', () => { it('does not toggle visibility when a click follows a drag', async () => { + let now = 1_000; + vi.spyOn(performance, 'now').mockImplementation(() => now); + await loadContentScript(); const overlay = getOverlay(); const controller = overlay.querySelector('.grid-ui__controller') as HTMLElement; @@ -385,11 +388,19 @@ describe('controller drag suppresses the trailing click', () => { ); expect(overlay.classList.contains('grid-ui--dragging')).toBe(true); - controller.dispatchEvent(new PointerEvent('pointerup', { pointerId: 1 })); + controller.dispatchEvent( + new PointerEvent('pointerup', { pointerId: 1, clientX: 140, clientY: 100 }), + ); expect(overlay.classList.contains('grid-ui--dragging')).toBe(false); + now = 1_100; axisTrigger.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true })); expect(axisTrigger.dataset.state).toBe('visible'); + + now = 1_500; + axisTrigger.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true })); + + expect(axisTrigger.dataset.state).toBe('hidden'); }); });