Update test to reset modules instead of using private state (#24055)
Sebastian Markbåge committed
Mar 8, 2022 at 23:13 UTC
b9de50d2f9ad6ff8caae0729976c3cc9a69c176e
1 file changed
+15
-9
packages/react-client/src/__tests__/ReactFlight-test.js
+15
-9
@@ -18,7 +18,6 @@ let ReactNoopFlightClient;
18
let ErrorBoundary;
19
let NoErrorExpected;
20
let Scheduler;
21
-let ContextRegistry;
21
22
describe('ReactFlight', () => {
23
beforeEach(() => {
@@ -30,9 +29,6 @@ describe('ReactFlight', () => {
29
ReactNoopFlightClient = require('react-noop-renderer/flight-client');
30
act = require('jest-react').act;
31
Scheduler = require('scheduler');
33
- const ReactSharedInternals =
34
- React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
35
- ContextRegistry = ReactSharedInternals.ContextRegistry;
32
33
ErrorBoundary = class extends React.Component {
34
state = {hasError: false, error: null};
@@ -429,8 +425,6 @@ describe('ReactFlight', () => {
425
426
const transport = ReactNoopFlightServer.render(<Foo />);
427
act(() => {
432
- ServerContext._currentRenderer = null;
433
- ServerContext._currentRenderer2 = null;
428
ReactNoop.render(ReactNoopFlightClient.read(transport));
429
});
430
@@ -631,14 +625,26 @@ describe('ReactFlight', () => {
625
const transport = ReactNoopFlightServer.render(<ServerApp />);
626
627
expect(ClientContext).toBe(undefined);
628
+
629
+ // Reset all modules, except flight-modules which keeps the registry of client components
630
+ const flightModules = require('react-noop-renderer/flight-modules');
631
+ jest.resetModules();
632
+ jest.mock('react-noop-renderer/flight-modules', () => flightModules);
633
+
634
+ React = require('react');
635
+ ReactNoop = require('react-noop-renderer');
636
+ ReactNoopFlightServer = require('react-noop-renderer/flight-server');
637
+ ReactNoopFlightClient = require('react-noop-renderer/flight-client');
638
+ act = require('jest-react').act;
639
+ Scheduler = require('scheduler');
640
+
641
act(() => {
635
- delete ContextRegistry.ServerContext;
636
- ServerContext._currentRenderer = null;
637
- ServerContext._currentRenderer2 = null;
642
const serverModel = ReactNoopFlightClient.read(transport);
643
ReactNoop.render(<ClientApp serverModel={serverModel} />);
644
});
645
646
+ expect(ClientContext).not.toBe(ServerContext);
647
+
648
expect(ReactNoop).toMatchRenderedOutput(
649
<>
650
<article>