Skip to content

Commit 30e2938

Browse files
authored
[Tests] Reset modules by default (#28254)
## Overview Sets `resetModules: true` in the base Jest config, and deletes all the `jest.resetModule()` calls we don't need.
1 parent 8b5f0c4 commit 30e2938

File tree

198 files changed

+98
-391
lines changed

Some content is hidden

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

198 files changed

+98
-391
lines changed

packages/react-art/src/__tests__/ReactART-test.js

+20-15
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,11 @@ import Circle from 'react-art/Circle';
2222
import Rectangle from 'react-art/Rectangle';
2323
import Wedge from 'react-art/Wedge';
2424

25-
// Isolate DOM renderer.
26-
jest.resetModules();
27-
28-
const ReactDOMClient = require('react-dom/client');
29-
const act = require('internal-test-utils').act;
30-
31-
// Isolate test renderer.
32-
jest.resetModules();
33-
const ReactTestRenderer = require('react-test-renderer');
34-
35-
// Isolate the noop renderer
36-
jest.resetModules();
37-
const ReactNoop = require('react-noop-renderer');
38-
const Scheduler = require('scheduler');
39-
25+
let ReactDOMClient;
26+
let act;
27+
let ReactTestRenderer;
28+
let ReactNoop;
29+
let Scheduler;
4030
let Group;
4131
let Shape;
4232
let Surface;
@@ -73,6 +63,21 @@ describe('ReactART', () => {
7363
let container;
7464

7565
beforeEach(() => {
66+
// Isolate DOM renderer.
67+
jest.resetModules();
68+
69+
ReactDOMClient = require('react-dom/client');
70+
act = require('internal-test-utils').act;
71+
72+
// Isolate test renderer.
73+
jest.resetModules();
74+
ReactTestRenderer = require('react-test-renderer');
75+
76+
// Isolate the noop renderer
77+
jest.resetModules();
78+
ReactNoop = require('react-noop-renderer');
79+
Scheduler = require('scheduler');
80+
7681
container = document.createElement('div');
7782
document.body.appendChild(container);
7883

packages/react-client/src/__tests__/ReactFlight-test.js

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ let assertLog;
4242

4343
describe('ReactFlight', () => {
4444
beforeEach(() => {
45-
jest.resetModules();
4645
jest.mock('react', () => require('react/react.react-server'));
4746
ReactServer = require('react');
4847
ReactNoopFlightServer = require('react-noop-renderer/flight-server');

packages/react-debug-tools/src/__tests__/ReactDevToolsHooksIntegration-test.js

-2
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ describe('React hooks DevTools integration', () => {
3434
onCommitFiberUnmount: () => {},
3535
};
3636

37-
jest.resetModules();
38-
3937
React = require('react');
4038
ReactDebugTools = require('react-debug-tools');
4139
ReactTestRenderer = require('react-test-renderer');

packages/react-debug-tools/src/__tests__/ReactHooksInspection-test.js

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ let ReactDebugTools;
1515

1616
describe('ReactHooksInspection', () => {
1717
beforeEach(() => {
18-
jest.resetModules();
1918
React = require('react');
2019
ReactDebugTools = require('react-debug-tools');
2120
});

packages/react-debug-tools/src/__tests__/ReactHooksInspectionIntegration-test.js

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ let useMemoCache;
1919

2020
describe('ReactHooksInspectionIntegration', () => {
2121
beforeEach(() => {
22-
jest.resetModules();
2322
React = require('react');
2423
ReactTestRenderer = require('react-test-renderer');
2524
ReactDOM = require('react-dom');

packages/react-devtools-shared/src/__tests__/console-test.js

-2
Original file line numberDiff line numberDiff line change
@@ -924,8 +924,6 @@ describe('console', () => {
924924

925925
describe('console error', () => {
926926
beforeEach(() => {
927-
jest.resetModules();
928-
929927
const Console = require('react-devtools-shared/src/backend/console');
930928
patchConsole = Console.patch;
931929
unpatchConsole = Console.unpatch;

packages/react-devtools-shared/src/hooks/__tests__/parseHookNames-test.js

-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ describe('parseHookNames', () => {
4848
let parseHookNames;
4949

5050
beforeEach(() => {
51-
jest.resetModules();
52-
5351
jest.mock('source-map-support', () => {
5452
console.trace('source-map-support');
5553
});

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

-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ describe('DOMPropertyOperations', () => {
2121
let act;
2222

2323
beforeEach(() => {
24-
jest.resetModules();
2524
React = require('react');
2625
ReactDOMClient = require('react-dom/client');
2726
({act} = require('internal-test-utils'));

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

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ describe('InvalidEventListeners', () => {
1818
let container;
1919

2020
beforeEach(() => {
21-
jest.resetModules();
2221
React = require('react');
2322
ReactDOMClient = require('react-dom/client');
2423
act = require('internal-test-utils').act;

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

-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ let container;
4545
// It should probably be rewritten but we're keeping it for some extra coverage.
4646
describe('ReactBrowserEventEmitter', () => {
4747
beforeEach(() => {
48-
jest.resetModules();
4948
LISTENER.mockClear();
5049

5150
React = require('react');

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

-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ let act;
1818

1919
describe('ReactChildReconciler', () => {
2020
beforeEach(() => {
21-
jest.resetModules();
22-
2321
React = require('react');
2422
ReactDOMClient = require('react-dom/client');
2523
act = require('internal-test-utils').act;

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

-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ let act;
1717

1818
describe('ReactComponent', () => {
1919
beforeEach(() => {
20-
jest.resetModules();
21-
2220
React = require('react');
2321
ReactDOM = require('react-dom');
2422
ReactDOMClient = require('react-dom/client');

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

-2
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,6 @@ function getLifeCycleState(instance): ComponentLifeCycle {
9090
*/
9191
describe('ReactComponentLifeCycle', () => {
9292
beforeEach(() => {
93-
jest.resetModules();
94-
9593
act = require('internal-test-utils').act;
9694

9795
React = require('react');

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

-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ describe('ReactCompositeComponent', () => {
6363
}
6464

6565
beforeEach(() => {
66-
jest.resetModules();
6766
React = require('react');
6867
ReactDOM = require('react-dom');
6968
ReactDOMClient = require('react-dom/client');

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

+64-60
Original file line numberDiff line numberDiff line change
@@ -520,78 +520,82 @@ describe('ReactCompositeComponent-state', () => {
520520
assertLog([
521521
'render -- step: 3, extra: false',
522522
'callback -- step: 3, extra: false',
523-
524-
// A second time for the retry.
525-
'render -- step: 3, extra: false',
526-
'callback -- step: 3, extra: false',
527523
]);
528524
});
529525

530-
if (!require('shared/ReactFeatureFlags').disableModulePatternComponents) {
531-
it('should support stateful module pattern components', async () => {
532-
function Child() {
533-
return {
534-
state: {
535-
count: 123,
536-
},
537-
render() {
538-
return <div>{`count:${this.state.count}`}</div>;
539-
},
540-
};
541-
}
542-
543-
const el = document.createElement('div');
544-
const root = ReactDOMClient.createRoot(el);
545-
expect(() => {
546-
ReactDOM.flushSync(() => {
547-
root.render(<Child />);
548-
});
549-
}).toErrorDev(
550-
'Warning: The <Child /> component appears to be a function component that returns a class instance. ' +
551-
'Change Child to a class that extends React.Component instead. ' +
552-
"If you can't use a class try assigning the prototype on the function as a workaround. " +
553-
'`Child.prototype = React.Component.prototype`. ' +
554-
"Don't use an arrow function since it cannot be called with `new` by React.",
555-
);
526+
// @gate !disableModulePatternComponents
527+
it('should support stateful module pattern components', async () => {
528+
function Child() {
529+
return {
530+
state: {
531+
count: 123,
532+
},
533+
render() {
534+
return <div>{`count:${this.state.count}`}</div>;
535+
},
536+
};
537+
}
556538

557-
expect(el.textContent).toBe('count:123');
558-
});
539+
const el = document.createElement('div');
540+
const root = ReactDOMClient.createRoot(el);
541+
expect(() => {
542+
ReactDOM.flushSync(() => {
543+
root.render(<Child />);
544+
});
545+
}).toErrorDev(
546+
'Warning: The <Child /> component appears to be a function component that returns a class instance. ' +
547+
'Change Child to a class that extends React.Component instead. ' +
548+
"If you can't use a class try assigning the prototype on the function as a workaround. " +
549+
'`Child.prototype = React.Component.prototype`. ' +
550+
"Don't use an arrow function since it cannot be called with `new` by React.",
551+
);
552+
553+
expect(el.textContent).toBe('count:123');
554+
});
559555

560-
it('should support getDerivedStateFromProps for module pattern components', async () => {
561-
function Child() {
562-
return {
563-
state: {
564-
count: 1,
565-
},
566-
render() {
567-
return <div>{`count:${this.state.count}`}</div>;
568-
},
569-
};
570-
}
571-
Child.getDerivedStateFromProps = (props, prevState) => {
572-
return {
573-
count: prevState.count + props.incrementBy,
574-
};
556+
// @gate !disableModulePatternComponents
557+
it('should support getDerivedStateFromProps for module pattern components', async () => {
558+
function Child() {
559+
return {
560+
state: {
561+
count: 1,
562+
},
563+
render() {
564+
return <div>{`count:${this.state.count}`}</div>;
565+
},
566+
};
567+
}
568+
Child.getDerivedStateFromProps = (props, prevState) => {
569+
return {
570+
count: prevState.count + props.incrementBy,
575571
};
572+
};
576573

577-
const el = document.createElement('div');
578-
const root = ReactDOMClient.createRoot(el);
579-
await act(() => {
574+
const el = document.createElement('div');
575+
const root = ReactDOMClient.createRoot(el);
576+
expect(() => {
577+
ReactDOM.flushSync(() => {
580578
root.render(<Child incrementBy={0} />);
581579
});
580+
}).toErrorDev(
581+
'Warning: The <Child /> component appears to be a function component that returns a class instance. ' +
582+
'Change Child to a class that extends React.Component instead. ' +
583+
"If you can't use a class try assigning the prototype on the function as a workaround. " +
584+
'`Child.prototype = React.Component.prototype`. ' +
585+
"Don't use an arrow function since it cannot be called with `new` by React.",
586+
);
582587

583-
expect(el.textContent).toBe('count:1');
584-
await act(() => {
585-
root.render(<Child incrementBy={2} />);
586-
});
587-
expect(el.textContent).toBe('count:3');
588+
expect(el.textContent).toBe('count:1');
589+
await act(() => {
590+
root.render(<Child incrementBy={2} />);
591+
});
592+
expect(el.textContent).toBe('count:3');
588593

589-
await act(() => {
590-
root.render(<Child incrementBy={1} />);
591-
});
592-
expect(el.textContent).toBe('count:4');
594+
await act(() => {
595+
root.render(<Child incrementBy={1} />);
593596
});
594-
}
597+
expect(el.textContent).toBe('count:4');
598+
});
595599

596600
it('should not support setState in componentWillUnmount', async () => {
597601
let subscription;

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

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ let act;
1919

2020
describe('ReactDOM', () => {
2121
beforeEach(() => {
22-
jest.resetModules();
2322
React = require('react');
2423
ReactDOM = require('react-dom');
2524
ReactDOMClient = require('react-dom/client');

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

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ describe('ReactDOM unknown attribute', () => {
1515
let act;
1616

1717
beforeEach(() => {
18-
jest.resetModules();
1918
React = require('react');
2019
ReactDOMClient = require('react-dom/client');
2120
act = require('internal-test-utils').act;

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

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ describe('ReactDOMComponent', () => {
2020
let act;
2121

2222
beforeEach(() => {
23-
jest.resetModules();
2423
React = require('react');
2524
ReactDOM = require('react-dom');
2625
ReactDOMClient = require('react-dom/client');

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

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ describe('ReactDOMConsoleErrorReporting', () => {
1919
let waitForThrow;
2020

2121
beforeEach(() => {
22-
jest.resetModules();
2322
act = require('internal-test-utils').act;
2423
React = require('react');
2524
ReactDOMClient = require('react-dom/client');

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

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ describe('ReactDOMConsoleErrorReporting', () => {
1919
let waitForThrow;
2020

2121
beforeEach(() => {
22-
jest.resetModules();
2322
act = require('internal-test-utils').act;
2423
React = require('react');
2524
ReactDOM = require('react-dom');

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

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ describe('ReactDOMEventListener', () => {
1717
let act;
1818

1919
beforeEach(() => {
20-
jest.resetModules();
2120
React = require('react');
2221
ReactDOM = require('react-dom');
2322
ReactDOMClient = require('react-dom/client');

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

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ describe('ReactDOMEventListener', () => {
1818

1919
beforeEach(() => {
2020
window.TextEvent = function () {};
21-
jest.resetModules();
2221
jest.isolateModules(() => {
2322
React = require('react');
2423
act = require('internal-test-utils').act;

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

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ describe('ReactDOMFiber', () => {
2222
let container;
2323

2424
beforeEach(() => {
25-
jest.resetModules();
2625
React = require('react');
2726
ReactDOM = require('react-dom');
2827
PropTypes = require('prop-types');

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

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ let Suspense;
3232

3333
describe('ReactDOMFizzForm', () => {
3434
beforeEach(() => {
35-
jest.resetModules();
3635
React = require('react');
3736
Scheduler = require('scheduler');
3837
ReactDOMServer = require('react-dom/server.browser');

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

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ let useFormState;
2727

2828
describe('ReactDOMFizzForm', () => {
2929
beforeEach(() => {
30-
jest.resetModules();
3130
React = require('react');
3231
ReactDOMServer = require('react-dom/server.browser');
3332
ReactDOMClient = require('react-dom/client');

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

-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ let streamingContainer;
4949

5050
describe('ReactDOMFizzServer', () => {
5151
beforeEach(() => {
52-
jest.resetModules();
5352
JSDOM = require('jsdom').JSDOM;
5453

5554
const jsdom = new JSDOM(

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

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ let Suspense;
2020

2121
describe('ReactDOMFizzServerBrowser', () => {
2222
beforeEach(() => {
23-
jest.resetModules();
2423
React = require('react');
2524
ReactDOMFizzServer = require('react-dom/server.browser');
2625
Suspense = React.Suspense;

0 commit comments

Comments
 (0)