Skip to content

Commit 0b5321d

Browse files
authored
Upgrade user event (#4426)
* Upgrade testing tools
1 parent 1e98470 commit 0b5321d

File tree

97 files changed

+3411
-2677
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+3411
-2677
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
"@testing-library/dom": "^9.2.0",
9595
"@testing-library/jest-dom": "^5.16.5",
9696
"@testing-library/react": "^14.0.0",
97-
"@testing-library/user-event": "^12.1.3",
97+
"@testing-library/user-event": "^14.4.3",
9898
"@types/react": "^18.2.7",
9999
"@types/storybook__react": "^5.2.1",
100100
"@typescript-eslint/eslint-plugin": "^5.40.0",

packages/@react-aria/checkbox/test/useCheckboxGroup.test.tsx

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
* governing permissions and limitations under the License.
1111
*/
1212

13-
import {act, render} from '@react-spectrum/test-utils';
1413
import {AriaCheckboxGroupItemProps, AriaCheckboxGroupProps} from '@react-types/checkbox';
1514
import {CheckboxGroupState, useCheckboxGroupState} from '@react-stately/checkbox';
15+
import {pointerMap, render} from '@react-spectrum/test-utils';
1616
import React, {useRef} from 'react';
1717
import {useCheckboxGroup, useCheckboxGroupItem} from '../';
1818
import userEvent from '@testing-library/user-event';
@@ -38,7 +38,12 @@ function CheckboxGroup({groupProps, checkboxProps}: {groupProps: AriaCheckboxGro
3838
}
3939

4040
describe('useCheckboxGroup', () => {
41-
it('handles defaults', () => {
41+
let user;
42+
beforeAll(() => {
43+
user = userEvent.setup({delay: null, pointerMap});
44+
});
45+
46+
it('handles defaults', async () => {
4247
let onChangeSpy = jest.fn();
4348
let {getByRole, getAllByRole, getByLabelText} = render(
4449
<CheckboxGroup
@@ -68,7 +73,7 @@ describe('useCheckboxGroup', () => {
6873
expect(checkboxes[2].checked).toBeFalsy();
6974

7075
let dragons = getByLabelText('Dragons');
71-
userEvent.click(dragons);
76+
await user.click(dragons);
7277
expect(onChangeSpy).toHaveBeenCalledTimes(1);
7378
expect(onChangeSpy).toHaveBeenCalledWith(['dragons']);
7479

@@ -158,7 +163,7 @@ describe('useCheckboxGroup', () => {
158163
expect(checkboxGroup).toHaveAttribute('data-testid', 'favorite-pet');
159164
});
160165

161-
it('sets aria-disabled and makes checkboxes disabled when isDisabled is true', () => {
166+
it('sets aria-disabled and makes checkboxes disabled when isDisabled is true', async () => {
162167
let groupOnChangeSpy = jest.fn();
163168
let checkboxOnChangeSpy = jest.fn();
164169
let {getAllByRole, getByRole, getByLabelText} = render(
@@ -180,7 +185,7 @@ describe('useCheckboxGroup', () => {
180185
expect(checkboxes[2]).toHaveAttribute('disabled');
181186
let dragons = getByLabelText('Dragons');
182187

183-
act(() => {userEvent.click(dragons);});
188+
await user.click(dragons);
184189

185190
expect(groupOnChangeSpy).toHaveBeenCalledTimes(0);
186191
expect(checkboxOnChangeSpy).toHaveBeenCalledTimes(0);
@@ -227,7 +232,7 @@ describe('useCheckboxGroup', () => {
227232
expect(checkboxes[2]).not.toHaveAttribute('disabled');
228233
});
229234

230-
it('sets aria-readonly="true" on each checkbox', () => {
235+
it('sets aria-readonly="true" on each checkbox', async () => {
231236
let groupOnChangeSpy = jest.fn();
232237
let checkboxOnChangeSpy = jest.fn();
233238
let {getAllByRole, getByLabelText} = render(
@@ -247,14 +252,14 @@ describe('useCheckboxGroup', () => {
247252
expect(checkboxes[2].checked).toBeFalsy();
248253
let dragons = getByLabelText('Dragons');
249254

250-
act(() => {userEvent.click(dragons);});
255+
await user.click(dragons);
251256

252257
expect(groupOnChangeSpy).toHaveBeenCalledTimes(0);
253258
expect(checkboxOnChangeSpy).toHaveBeenCalledTimes(0);
254259
expect(checkboxes[2].checked).toBeFalsy();
255260
});
256261

257-
it('should not update state for readonly checkbox', () => {
262+
it('should not update state for readonly checkbox', async () => {
258263
let groupOnChangeSpy = jest.fn();
259264
let checkboxOnChangeSpy = jest.fn();
260265
let {getAllByRole, getByLabelText} = render(
@@ -270,7 +275,7 @@ describe('useCheckboxGroup', () => {
270275
let checkboxes = getAllByRole('checkbox') as HTMLInputElement[];
271276
let dragons = getByLabelText('Dragons');
272277

273-
userEvent.click(dragons);
278+
await user.click(dragons);
274279

275280
expect(groupOnChangeSpy).toHaveBeenCalledTimes(0);
276281
expect(checkboxOnChangeSpy).toHaveBeenCalledTimes(0);

packages/@react-aria/color/test/useColorWheel.test.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* governing permissions and limitations under the License.
1111
*/
1212

13-
import {act, fireEvent, installMouseEvent, installPointerEvent, render} from '@react-spectrum/test-utils';
13+
import {act, fireEvent, installMouseEvent, installPointerEvent, pointerMap, render} from '@react-spectrum/test-utils';
1414
import {ColorWheelProps} from '@react-types/color';
1515
import {parseColor, useColorWheelState} from '@react-stately/color';
1616
import React, {useRef} from 'react';
@@ -50,8 +50,10 @@ function ColorWheel(props: ColorWheelProps) {
5050

5151
describe('useColorWheel', () => {
5252
let onChangeSpy = jest.fn();
53+
let user;
5354

5455
beforeAll(() => {
56+
user = userEvent.setup({delay: null, pointerMap});
5557
jest.useFakeTimers();
5658
});
5759

@@ -72,7 +74,7 @@ describe('useColorWheel', () => {
7274
expect(slider).toHaveAttribute('value', '0');
7375
});
7476

75-
it('the slider is focusable', () => {
77+
it('the slider is focusable', async () => {
7678
let {getAllByRole, getByRole} = render(<div>
7779
<button>A</button>
7880
<ColorWheel />
@@ -81,17 +83,17 @@ describe('useColorWheel', () => {
8183
let slider = getByRole('slider');
8284
let [buttonA, buttonB] = getAllByRole('button');
8385

84-
userEvent.tab();
86+
await user.tab();
8587
expect(document.activeElement).toBe(buttonA);
86-
userEvent.tab();
88+
await user.tab();
8789
expect(document.activeElement).toBe(slider);
88-
userEvent.tab();
90+
await user.tab();
8991
expect(document.activeElement).toBe(buttonB);
90-
userEvent.tab({shift: true});
92+
await user.tab({shift: true});
9193
expect(document.activeElement).toBe(slider);
9294
});
9395

94-
it('disabled', () => {
96+
it('disabled', async () => {
9597
let {getAllByRole, getByRole} = render(<div>
9698
<button>A</button>
9799
<ColorWheel isDisabled />
@@ -101,11 +103,11 @@ describe('useColorWheel', () => {
101103
let [buttonA, buttonB] = getAllByRole('button');
102104
expect(slider).toHaveAttribute('disabled');
103105

104-
userEvent.tab();
106+
await user.tab();
105107
expect(document.activeElement).toBe(buttonA);
106-
userEvent.tab();
108+
await user.tab();
107109
expect(document.activeElement).toBe(buttonB);
108-
userEvent.tab({shift: true});
110+
await user.tab({shift: true});
109111
expect(document.activeElement).toBe(buttonA);
110112
});
111113

0 commit comments

Comments
 (0)