10
10
'use strict' ;
11
11
12
12
let React ;
13
- let ReactDOM ;
13
+ let ReactDOMClient ;
14
14
let ReactTestUtils ;
15
+ let act ;
15
16
16
17
describe ( 'ReactJSXElement' , ( ) => {
17
18
let Component ;
@@ -20,8 +21,10 @@ describe('ReactJSXElement', () => {
20
21
jest . resetModules ( ) ;
21
22
22
23
React = require ( 'react' ) ;
23
- ReactDOM = require ( 'react-dom' ) ;
24
+ ReactDOMClient = require ( 'react-dom/client ' ) ;
24
25
ReactTestUtils = require ( 'react-dom/test-utils' ) ;
26
+ act = require ( 'internal-test-utils' ) . act ;
27
+
25
28
Component = class extends React . Component {
26
29
render ( ) {
27
30
return < div /> ;
@@ -172,14 +175,20 @@ describe('ReactJSXElement', () => {
172
175
expect ( element . constructor ) . toBe ( object . constructor ) ;
173
176
} ) ;
174
177
175
- it ( 'should use default prop value when removing a prop' , ( ) => {
178
+ it ( 'should use default prop value when removing a prop' , async ( ) => {
176
179
Component . defaultProps = { fruit : 'persimmon' } ;
177
180
178
181
const container = document . createElement ( 'div' ) ;
179
- const instance = ReactDOM . render ( < Component fruit = "mango" /> , container ) ;
182
+ const root = ReactDOMClient . createRoot ( container ) ;
183
+ let instance ;
184
+ await act ( ( ) => {
185
+ root . render ( < Component fruit = "mango" ref = { ref => ( instance = ref ) } /> ) ;
186
+ } ) ;
180
187
expect ( instance . props . fruit ) . toBe ( 'mango' ) ;
181
188
182
- ReactDOM . render ( < Component /> , container ) ;
189
+ await act ( ( ) => {
190
+ root . render ( < Component ref = { ref => ( instance = ref ) } /> ) ;
191
+ } ) ;
183
192
expect ( instance . props . fruit ) . toBe ( 'persimmon' ) ;
184
193
} ) ;
185
194
0 commit comments