From 1adff5a93a50e667e060087beff465b065176082 Mon Sep 17 00:00:00 2001 From: Rob Snow Date: Tue, 4 Aug 2026 11:32:02 +1000 Subject: [PATCH] chore: upgrade User Event --- ...ry-user-event-npm-14.6.3-15ecebe390.patch} | 30 +++++++++---------- package.json | 4 +-- .../react-spectrum/test/list/ListView.test.js | 5 ++-- .../test/table/TreeGridTable.test.tsx | 8 ++--- .../test-utils/src/userEventMaps.ts | 2 +- packages/@react-aria/test-utils/src/utils.ts | 2 +- packages/@react-spectrum/ai/package.json | 2 +- packages/@react-spectrum/s2/package.json | 2 +- .../@react-spectrum/test-utils/package.json | 2 +- packages/dev/test-utils/package.json | 2 +- yarn.lock | 26 ++++++++-------- 11 files changed, 42 insertions(+), 43 deletions(-) rename .yarn/patches/{@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch => @testing-library-user-event-npm-14.6.3-15ecebe390.patch} (83%) diff --git a/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch b/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch similarity index 83% rename from .yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch rename to .yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch index 16bf2b3d7d1..027009f60b6 100644 --- a/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch +++ b/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch @@ -12,7 +12,7 @@ index 39a24b8f2ccdc52739d130480ab18975073616cb..0c3f5199401c15b90230c25a02de364e UI.clearInitialValue(el); } diff --git a/dist/cjs/event/behavior/keydown.js b/dist/cjs/event/behavior/keydown.js -index 55027cb256f66b808d17280dc01bc55a796a1032..993d5de5a838a711d7ae009344354772a42ed0c1 100644 +index 47aaf21bd48856df8bfe88b7509955c5947bf89b..5a5b2030ebbd5b86fb0456597bf13b13902f86cf 100644 --- a/dist/cjs/event/behavior/keydown.js +++ b/dist/cjs/event/behavior/keydown.js @@ -110,7 +110,7 @@ const keydownBehavior = { @@ -38,10 +38,10 @@ index 18f5b4b8eb995fe5ecb352230f71b25e90f2a8a0..e5e17d1d3089aa8ea5c3f55a06aa746e await wait.wait(instance.config); } diff --git a/dist/cjs/system/keyboard.js b/dist/cjs/system/keyboard.js -index 3272fd7e642e79a8f67052b4b521355314cbc496..e1b16e9213eb609e7cd2335ecee792c3c19d35b4 100644 +index 85857d66108baa3ddd31dd7d8ef5bc00fdc5caba..f4ce65278983653766afce94e083856af522f51d 100644 --- a/dist/cjs/system/keyboard.js +++ b/dist/cjs/system/keyboard.js -@@ -52,7 +52,7 @@ class KeyboardHost { +@@ -50,7 +50,7 @@ class KeyboardHost { getPressedKeys() { return this.pressed.values().map((p)=>p.keyDef); } @@ -50,7 +50,7 @@ index 3272fd7e642e79a8f67052b4b521355314cbc496..e1b16e9213eb609e7cd2335ecee792c3 const key = String(keyDef.key); const code = String(keyDef.code); const target = getActiveElement.getActiveElementOrBody(instance.config.document); -@@ -63,7 +63,8 @@ class KeyboardHost { +@@ -61,7 +61,8 @@ class KeyboardHost { } const unprevented = instance.dispatchUIEvent(target, 'keydown', { key, @@ -61,18 +61,18 @@ index 3272fd7e642e79a8f67052b4b521355314cbc496..e1b16e9213eb609e7cd2335ecee792c3 if (isModifierLock(key) && !this.modifiers[key]) { this.modifiers[key] = true; diff --git a/dist/cjs/utils/focus/getActiveElement.js b/dist/cjs/utils/focus/getActiveElement.js -index d25f3a8ef67e856e43614559f73012899c0b53d7..4ed9ee45565ed438ee9284d8d3043c0bd50463eb 100644 +index d80eef7fcfe64e66df7e2e1d92d9a4a5dc7b1543..0e3b4181b88426b1947de7d5dbe6a3e977d5b77b 100644 --- a/dist/cjs/utils/focus/getActiveElement.js +++ b/dist/cjs/utils/focus/getActiveElement.js -@@ -6,6 +6,8 @@ function getActiveElement(document) { - const activeElement = document.activeElement; - if (activeElement === null || activeElement === undefined ? undefined : activeElement.shadowRoot) { - return getActiveElement(activeElement.shadowRoot); +@@ -9,6 +9,8 @@ function getActiveElement(document) { + if (activeElementInShadowTree) { + return activeElementInShadowTree; + } + } else if (activeElement && activeElement.tagName === 'IFRAME') { + return getActiveElement(activeElement.contentWindow.document); - } else { - // Browser does not yield disabled elements as document.activeElement - jsdom does - if (isDisabled.isDisabled(activeElement)) { + } + // Browser does not yield disabled elements as document.activeElement - jsdom does + if (isDisabled.isDisabled(activeElement)) { diff --git a/dist/esm/keyboard/index.js b/dist/esm/keyboard/index.js index 9c9feb7b82aabeadd8acbd9ec8f4127e302a4634..1456a5cf406382ee08b4bb7184499632bd8d3bd3 100644 --- a/dist/esm/keyboard/index.js @@ -87,10 +87,10 @@ index 9c9feb7b82aabeadd8acbd9ec8f4127e302a4634..1456a5cf406382ee08b4bb7184499632 await wait(instance.config); } diff --git a/dist/esm/system/keyboard.js b/dist/esm/system/keyboard.js -index 43700ca3a873aa6eb1cb4553c0889b685ff90fff..9607372660dcb1737b26abcdc4bc71f35e4d43c3 100644 +index 76ffd4266d28cdd252d38d32ae4117711a95adb6..0f75b6875e58f9f5e7b84009e0b691870cb77793 100644 --- a/dist/esm/system/keyboard.js +++ b/dist/esm/system/keyboard.js -@@ -50,7 +50,7 @@ class KeyboardHost { +@@ -48,7 +48,7 @@ class KeyboardHost { getPressedKeys() { return this.pressed.values().map((p)=>p.keyDef); } @@ -99,7 +99,7 @@ index 43700ca3a873aa6eb1cb4553c0889b685ff90fff..9607372660dcb1737b26abcdc4bc71f3 const key = String(keyDef.key); const code = String(keyDef.code); const target = getActiveElementOrBody(instance.config.document); -@@ -61,7 +61,8 @@ class KeyboardHost { +@@ -59,7 +59,8 @@ class KeyboardHost { } const unprevented = instance.dispatchUIEvent(target, 'keydown', { key, diff --git a/package.json b/package.json index 699a56203c8..14441595c00 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch", + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@typescript/native-preview": "^7.0.0-dev.20251223.1", @@ -223,7 +223,7 @@ "@mdx-js/react": "2.0.0-rc.2", "@parcel/packager-react-static": "^2.16.3", "@sinclair/typebox": "0.27.10", - "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch", + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch", "@types/node@npm:*": "^24", "@types/node@npm:>= 8": "^24", "@types/node@npm:^18.0.0": "^24", diff --git a/packages/@adobe/react-spectrum/test/list/ListView.test.js b/packages/@adobe/react-spectrum/test/list/ListView.test.js index 3f096884cb0..12054ffffe1 100644 --- a/packages/@adobe/react-spectrum/test/list/ListView.test.js +++ b/packages/@adobe/react-spectrum/test/list/ListView.test.js @@ -1355,8 +1355,7 @@ describe('ListView', function () { await user.keyboard('[ControlLeft>]'); await user.pointer({ target: getRow(tree, 'Bar'), - keys: '[MouseLeft]', - coords: {pressure: 0.5} + keys: '[MouseLeft]' }); await user.keyboard('[/ControlLeft]'); @@ -1496,7 +1495,7 @@ describe('ListView', function () { }); let rows = tree.getAllByRole('row'); - await user.pointer({target: rows[0], keys: '[MouseLeft]', coords: {pressure: 0.5}}); + await user.pointer({target: rows[0], keys: '[MouseLeft]'}); checkSelection(onSelectionChange, ['foo']); onSelectionChange.mockClear(); expect(announce).toHaveBeenLastCalledWith('Foo selected.'); diff --git a/packages/@adobe/react-spectrum/test/table/TreeGridTable.test.tsx b/packages/@adobe/react-spectrum/test/table/TreeGridTable.test.tsx index 7274878465e..15820e1cbb0 100644 --- a/packages/@adobe/react-spectrum/test/table/TreeGridTable.test.tsx +++ b/packages/@adobe/react-spectrum/test/table/TreeGridTable.test.tsx @@ -1787,7 +1787,7 @@ describe('TableView with expandable rows', function () { let cell = getCell(treegrid, 'Row 1, Lvl 3, Foo'); checkRowSelection(rows, false); - await user.pointer({target: cell, keys: '[MouseLeft]', coords: {pressure: 0.5}}); + await user.pointer({target: cell, keys: '[MouseLeft]'}); act(() => jest.runAllTimers()); expect(announce).toHaveBeenLastCalledWith('Row 1, Lvl 3, Foo selected.'); expect(announce).toHaveBeenCalledTimes(1); @@ -1796,7 +1796,7 @@ describe('TableView with expandable rows', function () { onSelectionChange.mockReset(); cell = getCell(treegrid, 'Row 1, Lvl 1, Foo'); - await user.pointer({target: cell, keys: '[MouseLeft]', coords: {pressure: 0.5}}); + await user.pointer({target: cell, keys: '[MouseLeft]'}); act(() => jest.runAllTimers()); expect(announce).toHaveBeenLastCalledWith('Row 1, Lvl 1, Foo selected.'); expect(announce).toHaveBeenCalledTimes(2); @@ -1904,14 +1904,14 @@ describe('TableView with expandable rows', function () { let cell = getCell(treegrid, 'Row 1, Lvl 3, Foo'); checkRowSelection(rows, false); - await user.pointer({target: cell, keys: '[MouseLeft]', coords: {pressure: 0.5}}); + await user.pointer({target: cell, keys: '[MouseLeft]'}); act(() => jest.runAllTimers()); expect(announce).toHaveBeenLastCalledWith('Row 1, Lvl 3, Foo selected.'); expect(announce).toHaveBeenCalledTimes(1); checkSelection(onSelectionChange, ['Row 1 Lvl 3']); expect(onAction).not.toHaveBeenCalled(); onSelectionChange.mockReset(); - await user.pointer({target: cell, keys: '[MouseLeft][MouseLeft]', coords: {pressure: 0.5}}); + await user.pointer({target: cell, keys: '[MouseLeft][MouseLeft]'}); act(() => jest.runAllTimers()); expect(announce).toHaveBeenCalledTimes(1); expect(onSelectionChange).not.toHaveBeenCalled(); diff --git a/packages/@react-aria/test-utils/src/userEventMaps.ts b/packages/@react-aria/test-utils/src/userEventMaps.ts index 890e9cc1655..c9e79fddaee 100644 --- a/packages/@react-aria/test-utils/src/userEventMaps.ts +++ b/packages/@react-aria/test-utils/src/userEventMaps.ts @@ -1,7 +1,7 @@ import {pointerKey} from '@testing-library/user-event'; export let pointerMap: pointerKey[] = [ - {name: 'MouseLeft', pointerType: 'mouse', button: 'primary', height: 1, width: 1, pressure: 0.5}, + {name: 'MouseLeft', pointerType: 'mouse', button: 'primary'}, {name: 'MouseRight', pointerType: 'mouse', button: 'secondary'}, {name: 'MouseMiddle', pointerType: 'mouse', button: 'auxiliary'}, {name: 'TouchA', pointerType: 'touch', height: 1, width: 1}, diff --git a/packages/@react-aria/test-utils/src/utils.ts b/packages/@react-aria/test-utils/src/utils.ts index d9d6e0e6747..4fd6b964051 100644 --- a/packages/@react-aria/test-utils/src/utils.ts +++ b/packages/@react-aria/test-utils/src/utils.ts @@ -145,7 +145,7 @@ export async function pressElement( ): Promise { if (interactionType === 'mouse') { // Add coords with pressure so this isn't detected as a virtual click - await user.pointer({target: element, keys: '[MouseLeft]', coords: {pressure: 0.5}}); + await user.pointer({target: element, keys: '[MouseLeft]'}); } else if (interactionType === 'keyboard') { act(() => element.focus()); await user.keyboard('[Space]'); diff --git a/packages/@react-spectrum/ai/package.json b/packages/@react-spectrum/ai/package.json index d404a777d83..4ef1018129f 100644 --- a/packages/@react-spectrum/ai/package.json +++ b/packages/@react-spectrum/ai/package.json @@ -58,7 +58,7 @@ "@storybook/jest": "^0.2.3", "@testing-library/dom": "^10.1.0", "@testing-library/react": "^16.0.0", - "@testing-library/user-event": "^14.0.0", + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch", "react": "^19.0.0-rc.1", "react-dom": "^19.0.0-rc.1" }, diff --git a/packages/@react-spectrum/s2/package.json b/packages/@react-spectrum/s2/package.json index 4c8d8bf4490..7baa4455d24 100644 --- a/packages/@react-spectrum/s2/package.json +++ b/packages/@react-spectrum/s2/package.json @@ -99,7 +99,7 @@ "@storybook/jest": "^0.2.3", "@testing-library/dom": "^10.1.0", "@testing-library/react": "^16.0.0", - "@testing-library/user-event": "^14.0.0", + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch", "react": "^19.0.0-rc.1", "react-dom": "^19.0.0-rc.1" }, diff --git a/packages/@react-spectrum/test-utils/package.json b/packages/@react-spectrum/test-utils/package.json index f23c3c19161..8aec47c68b4 100644 --- a/packages/@react-spectrum/test-utils/package.json +++ b/packages/@react-spectrum/test-utils/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@testing-library/dom": "^10.1.0", "@testing-library/react": "^16.0.0", - "@testing-library/user-event": "^14.0.0", + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch", "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" }, diff --git a/packages/dev/test-utils/package.json b/packages/dev/test-utils/package.json index f7874cef398..7b316f61893 100644 --- a/packages/dev/test-utils/package.json +++ b/packages/dev/test-utils/package.json @@ -30,7 +30,7 @@ "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.0.0", + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch", "jest": "^30.0.0", "react-aria": "^3.47.0", "resolve": "^2.0.0-next.6" diff --git a/yarn.lock b/yarn.lock index 6330a4fde4f..1b904da1b46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7382,7 +7382,7 @@ __metadata: "@storybook/jest": "npm:^0.2.3" "@testing-library/dom": "npm:^10.1.0" "@testing-library/react": "npm:^16.0.0" - "@testing-library/user-event": "npm:^14.0.0" + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch" react: "npm:^19.0.0-rc.1" react-aria: "npm:3.51.0" react-aria-components: "npm:1.20.0" @@ -8120,7 +8120,7 @@ __metadata: "@storybook/jest": "npm:^0.2.3" "@testing-library/dom": "npm:^10.1.0" "@testing-library/react": "npm:^16.0.0" - "@testing-library/user-event": "npm:^14.0.0" + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch" react: "npm:^19.0.0-rc.1" react-aria: "npm:3.51.0" react-aria-components: "npm:1.20.0" @@ -8280,7 +8280,7 @@ __metadata: "@testing-library/dom": "npm:^10.1.0" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^16.3.0" - "@testing-library/user-event": "npm:^14.0.0" + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch" jest: "npm:^30.0.0" react: "npm:^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" react-aria: "npm:^3.47.0" @@ -8301,7 +8301,7 @@ __metadata: "@swc/helpers": "npm:^0.5.0" "@testing-library/dom": "npm:^10.1.0" "@testing-library/react": "npm:^16.0.0" - "@testing-library/user-event": "npm:^14.0.0" + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch" react: "npm:^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" react-dom: "npm:^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" peerDependencies: @@ -10693,21 +10693,21 @@ __metadata: languageName: node linkType: hard -"@testing-library/user-event@npm:14.6.1": - version: 14.6.1 - resolution: "@testing-library/user-event@npm:14.6.1" +"@testing-library/user-event@npm:14.6.3": + version: 14.6.3 + resolution: "@testing-library/user-event@npm:14.6.3" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: 10c0/75fea130a52bf320d35d46ed54f3eec77e71a56911b8b69a3fe29497b0b9947b2dc80d30f04054ad4ce7f577856ae3e5397ea7dff0ef14944d3909784c7a93fe + checksum: 10c0/60c401edcc1b39f98aefd0e236af69c1a0454e3a7b91b92d62e2d654b044c51d39abc4a7ee0f5675566e7246dc5fc5e91af872a49da7e30a5f0e9e52f5a83a82 languageName: node linkType: hard -"@testing-library/user-event@patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch": - version: 14.6.1 - resolution: "@testing-library/user-event@patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch::version=14.6.1&hash=13c598" +"@testing-library/user-event@patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch": + version: 14.6.3 + resolution: "@testing-library/user-event@patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch::version=14.6.3&hash=794207" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: 10c0/e8a21739fb7bcba5956394b4e0ef001613566bb3a31aa0788398ea614b846a26aa1cc496ca036dbbbf6f9038c4b863f4d419d80e82bfe69240e9622b8ba0a50e + checksum: 10c0/636938a4a6ed39eff53c8b44d48719d8b9bae7999fd2253ba0249cc0edaa9f89e01fed7f54857cd8c62eac97e842ea4a4adedc17e0b26fbe91b0e79c2e01fb13 languageName: node linkType: hard @@ -26590,7 +26590,7 @@ __metadata: "@testing-library/dom": "npm:^10.1.0" "@testing-library/jest-dom": "npm:^6.9.1" "@testing-library/react": "npm:^16.3.0" - "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch" + "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.3#~/.yarn/patches/@testing-library-user-event-npm-14.6.3-15ecebe390.patch" "@types/react": "npm:^19.0.0" "@types/react-dom": "npm:^19.0.0" "@typescript/native-preview": "npm:^7.0.0-dev.20251223.1"