11import * as React from 'react' ;
2- import type { HostElement , JsonElement , Root , RootOptions } from 'universal-test-renderer' ;
3-
4- import act from './act' ;
2+ import {
3+ createRoot ,
4+ type HostElement ,
5+ type JsonElement ,
6+ type Root ,
7+ type RootOptions ,
8+ } from 'universal-test-renderer' ;
9+
10+ import { act } from './act' ;
511import { addToCleanupQueue } from './cleanup' ;
612import { getConfig } from './config' ;
713import type { DebugOptions } from './helpers/debug' ;
814import { debug } from './helpers/debug' ;
915import { HOST_TEXT_NAMES } from './helpers/host-component-names' ;
10- import { renderWithAsyncAct } from './render-act' ;
1116import { setRenderResult } from './screen' ;
1217import { getQueriesForElement } from './within' ;
1318
@@ -28,7 +33,7 @@ export type RenderResult = Awaited<ReturnType<typeof render>>;
2833 * Renders test component deeply using React Test Renderer and exposes helpers
2934 * to assert on the output.
3035 */
31- export async function render < T > ( component : React . ReactElement < T > , options : RenderOptions = { } ) {
36+ export async function render < T > ( element : React . ReactElement < T > , options : RenderOptions = { } ) {
3237 const { wrapper : Wrapper , createNodeMock } = options || { } ;
3338
3439 const rendererOptions : RootOptions = {
@@ -37,26 +42,22 @@ export async function render<T>(component: React.ReactElement<T>, options: Rende
3742 } ;
3843
3944 const wrap = ( element : React . ReactElement ) => ( Wrapper ? < Wrapper > { element } </ Wrapper > : element ) ;
40- const renderer = await renderWithAsyncAct ( wrap ( component ) , rendererOptions ) ;
41- return buildRenderResult ( renderer , wrap ) ;
42- }
45+ const renderer = createRoot ( rendererOptions ) ;
46+
47+ await act ( ( ) => {
48+ renderer . render ( wrap ( element ) ) ;
49+ } ) ;
4350
44- function buildRenderResult (
45- renderer : Root ,
46- wrap : ( element : React . ReactElement ) => React . JSX . Element ,
47- ) {
4851 const container = renderer . container ;
4952
5053 const rerender = async ( component : React . ReactElement ) => {
51- // eslint-disable-next-line require-await
52- await act ( async ( ) => {
54+ await act ( ( ) => {
5355 renderer . render ( wrap ( component ) ) ;
5456 } ) ;
5557 } ;
5658
5759 const unmount = async ( ) => {
58- // eslint-disable-next-line require-await
59- await act ( async ( ) => {
60+ await act ( ( ) => {
6061 renderer . unmount ( ) ;
6162 } ) ;
6263 } ;
0 commit comments