99 */
1010
1111'use strict' ;
12+ import { AsyncLocalStorage } from 'node:async_hooks' ;
1213
1314let act ;
1415let React ;
@@ -39,10 +40,21 @@ function normalizeCodeLocInfo(str) {
3940 ) ;
4041}
4142
43+ const currentTask = new AsyncLocalStorage ( { defaultValue : null } ) ;
44+
4245describe ( 'ReactServer' , ( ) => {
4346 beforeEach ( ( ) => {
4447 jest . resetModules ( ) ;
4548
49+ console . createTask = jest . fn ( taskName => {
50+ return {
51+ run : taskFn => {
52+ const parentTask = currentTask . getStore ( ) || '' ;
53+ return currentTask . run ( parentTask + '\n' + taskName , taskFn ) ;
54+ } ,
55+ } ;
56+ } ) ;
57+
4658 act = require ( 'internal-test-utils' ) . act ;
4759 React = require ( 'react' ) ;
4860 ReactNoopServer = require ( 'react-noop-renderer/server' ) ;
@@ -91,6 +103,7 @@ describe('ReactServer', () => {
91103 let caughtError ;
92104 let componentStack ;
93105 let ownerStack ;
106+ let task ;
94107 const result = ReactNoopServer . render (
95108 < Context value = "provided" >
96109 < App promise = { new Promise ( ( ) => { } ) } />
@@ -100,6 +113,7 @@ describe('ReactServer', () => {
100113 caughtError = error ;
101114 componentStack = errorInfo . componentStack ;
102115 ownerStack = __DEV__ ? React . captureOwnerStack ( ) : null ;
116+ task = currentTask . getStore ( ) ;
103117 } ,
104118 } ,
105119 ) ;
@@ -128,5 +142,6 @@ describe('ReactServer', () => {
128142 '\n in App (at **)'
129143 : null ,
130144 ) ;
145+ expect ( task ) . toEqual ( __DEV__ ? '\n<Component>' : null ) ;
131146 } ) ;
132147} ) ;
0 commit comments