diff --git a/test/browser/fixtures/user-event/pointer.test.ts b/test/browser/fixtures/user-event/pointer.test.ts index 282853928..38fcef4d5 100644 --- a/test/browser/fixtures/user-event/pointer.test.ts +++ b/test/browser/fixtures/user-event/pointer.test.ts @@ -566,4 +566,33 @@ describe('keeps using previous target or coordinates', () => { expect(click).toHaveBeenCalledTimes(3) expect(click.mock.calls).toEqual(expectedCalls) }) + + test('reuses previous target even after other user events', async ({ expect }) => { + document.body.innerHTML = /* html */` + + + ` + + const aButton = document.getElementById('a')! + const bButton = document.getElementById('b')! + const aSpy = vi.fn() + const bSpy = vi.fn() + + aButton.addEventListener('click', aSpy) + bButton.addEventListener('click', bSpy) + + await userEvent.pointer({ target: aButton, keys: '[MouseLeft]' }) + + expect(aSpy).toHaveBeenCalledOnce() + + await userEvent.click(bButton) + + expect(aSpy).toHaveBeenCalledOnce() + expect(bSpy).toHaveBeenCalledOnce() + + await userEvent.pointer('[MouseLeft]') + + expect(aSpy).toHaveBeenCalledTimes(2) + expect(bSpy).toHaveBeenCalledOnce() + }) }) diff --git a/test/browser/specs/pointer.test.ts b/test/browser/specs/pointer.test.ts index 6aadc8857..d0f5505cd 100644 --- a/test/browser/specs/pointer.test.ts +++ b/test/browser/specs/pointer.test.ts @@ -41,6 +41,7 @@ test('pointer API works with UI enabled', async () => { "previous coordinates same action": "passed", "previous target different action": "passed", "previous target same action": "passed", + "reuses previous target even after other user events": "passed", "target resets previous coords": "passed", }, "keyboard-fired modifiers apply to pointer events": "passed", @@ -68,6 +69,7 @@ test('pointer API works with UI enabled', async () => { "previous coordinates same action": "passed", "previous target different action": "passed", "previous target same action": "passed", + "reuses previous target even after other user events": "passed", "target resets previous coords": "passed", }, "keyboard-fired modifiers apply to pointer events": "passed", @@ -95,6 +97,7 @@ test('pointer API works with UI enabled', async () => { "previous coordinates same action": "passed", "previous target different action": "passed", "previous target same action": "passed", + "reuses previous target even after other user events": "passed", "target resets previous coords": "passed", }, "keyboard-fired modifiers apply to pointer events": "passed",