1010'use strict' ;
1111
1212let React ;
13- let ReactDOM ;
13+ let ReactDOMClient ;
1414let ReactTestUtils ;
15+ let act ;
1516
1617describe ( 'ReactJSXElement' , ( ) => {
1718 let Component ;
@@ -20,8 +21,10 @@ describe('ReactJSXElement', () => {
2021 jest . resetModules ( ) ;
2122
2223 React = require ( 'react' ) ;
23- ReactDOM = require ( 'react-dom' ) ;
24+ ReactDOMClient = require ( 'react-dom/client ' ) ;
2425 ReactTestUtils = require ( 'react-dom/test-utils' ) ;
26+ act = require ( 'internal-test-utils' ) . act ;
27+
2528 Component = class extends React . Component {
2629 render ( ) {
2730 return < div /> ;
@@ -172,14 +175,20 @@ describe('ReactJSXElement', () => {
172175 expect ( element . constructor ) . toBe ( object . constructor ) ;
173176 } ) ;
174177
175- it ( 'should use default prop value when removing a prop' , ( ) => {
178+ it ( 'should use default prop value when removing a prop' , async ( ) => {
176179 Component . defaultProps = { fruit : 'persimmon' } ;
177180
178181 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+ } ) ;
180187 expect ( instance . props . fruit ) . toBe ( 'mango' ) ;
181188
182- ReactDOM . render ( < Component /> , container ) ;
189+ await act ( ( ) => {
190+ root . render ( < Component ref = { ref => ( instance = ref ) } /> ) ;
191+ } ) ;
183192 expect ( instance . props . fruit ) . toBe ( 'persimmon' ) ;
184193 } ) ;
185194
0 commit comments