@@ -15,16 +15,22 @@ describe('ReactMismatchedVersions-test', () => {
15
15
require ( 'web-streams-polyfill/ponyfill/es6' ) . ReadableStream ;
16
16
global . TextEncoder = require ( 'util' ) . TextEncoder ;
17
17
18
- jest . mock ( 'react' , ( ) => {
19
- const actualReact = jest . requireActual ( 'react' ) ;
20
- return {
21
- ...actualReact ,
22
- version : '18.0.0-whoa-this-aint-the-right-react' ,
23
- __actualVersion : actualReact . version ,
24
- } ;
18
+ let React ;
19
+ let actualReactVersion ;
20
+
21
+ beforeEach ( ( ) => {
22
+ jest . resetModules ( ) ;
23
+ jest . mock ( 'react' , ( ) => {
24
+ const actualReact = jest . requireActual ( 'react' ) ;
25
+ return {
26
+ ...actualReact ,
27
+ version : '18.0.0-whoa-this-aint-the-right-react' ,
28
+ __actualVersion : actualReact . version ,
29
+ } ;
30
+ } ) ;
31
+ React = require ( 'react' ) ;
32
+ actualReactVersion = React . __actualVersion ;
25
33
} ) ;
26
- const React = require ( 'react' ) ;
27
- const actualReactVersion = React . __actualVersion ;
28
34
29
35
test ( 'importing "react-dom/client" throws if version does not match React version' , async ( ) => {
30
36
expect ( ( ) => require ( 'react-dom/client' ) ) . toThrow (
@@ -124,4 +130,14 @@ describe('ReactMismatchedVersions-test', () => {
124
130
` - react-dom: ${ actualReactVersion } ` ,
125
131
) ;
126
132
} ) ;
133
+
134
+ // @gate source
135
+ test ( 'importing "react-native-renderer" throws if version does not match React version' , async ( ) => {
136
+ expect ( ( ) => require ( 'react-native-renderer' ) ) . toThrow (
137
+ 'Incompatible React versions: The "react" and "react-native-renderer" packages ' +
138
+ 'must have the exact same version. Instead got:\n' +
139
+ ' - react: 18.0.0-whoa-this-aint-the-right-react\n' +
140
+ ` - react-native-renderer: ${ actualReactVersion } ` ,
141
+ ) ;
142
+ } ) ;
127
143
} ) ;
0 commit comments