Skip to content

Commit 400aff2

Browse files
committed
fix test in React 16/17
1 parent e9526b6 commit 400aff2

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

packages/react-aria/test/utils/useId.test.jsx

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,10 @@ describe('useId', function () {
2929

3030
jest.isolateModules(() => {
3131
let React = require('react');
32-
let {createRoot} = require('react-dom/client');
32+
let ReactDOM = require('react-dom');
3333
let {act} = require('react-dom/test-utils');
3434
let {useId} = require('../../src/utils/useId');
35-
let previousActEnvironment = global.IS_REACT_ACT_ENVIRONMENT;
36-
global.IS_REACT_ACT_ENVIRONMENT = true;
35+
let isReact18OrHigher = parseInt(React.version, 10) >= 18;
3736

3837
function Test({tick}) {
3938
let id = useId();
@@ -42,30 +41,41 @@ describe('useId', function () {
4241

4342
let container = document.createElement('div');
4443
document.body.appendChild(container);
45-
let root = createRoot(container);
44+
45+
let renderElement;
46+
let unmount;
47+
if (isReact18OrHigher) {
48+
let {createRoot} = require('react-dom/client');
49+
global.IS_REACT_ACT_ENVIRONMENT = true;
50+
let root = createRoot(container);
51+
renderElement = (el) => root.render(el);
52+
unmount = () => root.unmount();
53+
} else {
54+
renderElement = (el) => ReactDOM.render(el, container);
55+
unmount = () => ReactDOM.unmountComponentAtNode(container);
56+
}
4657

4758
act(() => {
48-
root.render(React.createElement(Test, {tick: 0}));
59+
renderElement(React.createElement(Test, {tick: 0}));
4960
});
5061

5162
act(() => {
52-
root.render(React.createElement(Test, {tick: 1}));
63+
renderElement(React.createElement(Test, {tick: 1}));
5364
});
5465

5566
act(() => {
56-
root.render(React.createElement(Test, {tick: 2}));
67+
renderElement(React.createElement(Test, {tick: 2}));
5768
});
5869

5970
expect(register).toHaveBeenCalledTimes(1);
6071
expect(register.mock.calls[0][1]).toEqual(expect.any(String));
6172
expect(register.mock.calls[0][2]).toBe(register.mock.calls[0][0]);
6273

6374
act(() => {
64-
root.unmount();
75+
unmount();
6576
});
6677

6778
document.body.removeChild(container);
68-
global.IS_REACT_ACT_ENVIRONMENT = previousActEnvironment;
6979

7080
expect(unregister).toHaveBeenCalledTimes(1);
7181
expect(unregister).toHaveBeenCalledWith(register.mock.calls[0][2]);

0 commit comments

Comments
 (0)