Skip to content

Commit f28f022

Browse files
authored
Convert InvalidEventListeners to createRoot (#28180)
1 parent e9c13cd commit f28f022

File tree

1 file changed

+32
-18
lines changed

1 file changed

+32
-18
lines changed

packages/react-dom/src/__tests__/InvalidEventListeners-test.js

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@ jest.mock('react-dom-bindings/src/events/isEventSupported');
1313

1414
describe('InvalidEventListeners', () => {
1515
let React;
16-
let ReactDOM;
16+
let ReactDOMClient;
17+
let act;
1718
let container;
1819

1920
beforeEach(() => {
2021
jest.resetModules();
2122
React = require('react');
22-
ReactDOM = require('react-dom');
23+
ReactDOMClient = require('react-dom/client');
24+
act = require('internal-test-utils').act;
2325

2426
container = document.createElement('div');
2527
document.body.appendChild(container);
@@ -30,13 +32,16 @@ describe('InvalidEventListeners', () => {
3032
container = null;
3133
});
3234

33-
it('should prevent non-function listeners, at dispatch', () => {
34-
let node;
35-
expect(() => {
36-
node = ReactDOM.render(<div onClick="not a function" />, container);
35+
it('should prevent non-function listeners, at dispatch', async () => {
36+
const root = ReactDOMClient.createRoot(container);
37+
await expect(async () => {
38+
await act(() => {
39+
root.render(<div onClick="not a function" />);
40+
});
3741
}).toErrorDev(
3842
'Expected `onClick` listener to be a function, instead got a value of `string` type.',
3943
);
44+
const node = container.firstChild;
4045

4146
spyOnProd(console, 'error');
4247

@@ -46,11 +51,13 @@ describe('InvalidEventListeners', () => {
4651
}
4752
window.addEventListener('error', handleWindowError);
4853
try {
49-
node.dispatchEvent(
50-
new MouseEvent('click', {
51-
bubbles: true,
52-
}),
53-
);
54+
await act(() => {
55+
node.dispatchEvent(
56+
new MouseEvent('click', {
57+
bubbles: true,
58+
}),
59+
);
60+
});
5461
} finally {
5562
window.removeEventListener('error', handleWindowError);
5663
}
@@ -77,12 +84,19 @@ describe('InvalidEventListeners', () => {
7784
}
7885
});
7986

80-
it('should not prevent null listeners, at dispatch', () => {
81-
const node = ReactDOM.render(<div onClick={null} />, container);
82-
node.dispatchEvent(
83-
new MouseEvent('click', {
84-
bubbles: true,
85-
}),
86-
);
87+
it('should not prevent null listeners, at dispatch', async () => {
88+
const root = ReactDOMClient.createRoot(container);
89+
await act(() => {
90+
root.render(<div onClick={null} />);
91+
});
92+
93+
const node = container.firstChild;
94+
await act(() => {
95+
node.dispatchEvent(
96+
new MouseEvent('click', {
97+
bubbles: true,
98+
}),
99+
);
100+
});
87101
});
88102
});

0 commit comments

Comments
 (0)