From 2bd36682ada530c360b6d9d9a83d0e293b772c29 Mon Sep 17 00:00:00 2001 From: Raul Macarie Date: Tue, 1 Sep 2026 11:34:33 +0200 Subject: [PATCH] test: works in combination with `keyboard` --- .../fixtures/user-event/pointer.test.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/browser/fixtures/user-event/pointer.test.ts b/test/browser/fixtures/user-event/pointer.test.ts index ff48c465f..2735e139e 100644 --- a/test/browser/fixtures/user-event/pointer.test.ts +++ b/test/browser/fixtures/user-event/pointer.test.ts @@ -358,3 +358,28 @@ test('modifiers work with coordinates', async ({ expect }) => { clientY: expect.closeTo(11), })) }) + +test('keyboard-fired modifiers apply to pointer events', async ({ expect }) => { + document.body.innerHTML = `` + + const click = vi.fn() + + const buttonElement = document.body.querySelector('button')! + + buttonElement.addEventListener('click', click) + + const target = page.getByRole('button') + + + await userEvent.keyboard('[ShiftLeft>]') + await userEvent.pointer({ keys: '[MouseLeft]', target }) + await userEvent.keyboard('[/ShiftLeft][AltLeft>]') + await userEvent.pointer({ keys: '[MouseLeft]', target }) + await userEvent.keyboard('[/AltLeft][MetaLeft>]') + await userEvent.pointer({ keys: '[MouseLeft]', target }) + await userEvent.keyboard('[/MetaLeft]') + + expect(click).toHaveBeenNthCalledWith(1, expect.objectContaining({ shiftKey: true })) + expect(click).toHaveBeenNthCalledWith(2, expect.objectContaining({ altKey: true })) + expect(click).toHaveBeenNthCalledWith(3, expect.objectContaining({ metaKey: true })) +}) -- 2.54.0