@@ -14,12 +14,10 @@ const path = require('path');
1414import { patchSetImmediate } from '../../../../scripts/jest/patchSetImmediate' ;
1515
1616let React ;
17- // let ReactServer;
1817let ReactServerDOMServer ;
1918let ReactServerDOMClient ;
2019let Stream ;
2120
22- // We test pass-through without encoding strings but it should work without it too.
2321const streamOptions = {
2422 objectMode : true ,
2523} ;
@@ -91,19 +89,17 @@ function getDebugInfo(obj) {
9189 return debugInfo ;
9290}
9391
94- describe ( 'ReactFlightAsyncDebugInfoNode ' , ( ) => {
92+ describe ( 'ReactFlightAsyncDebugInfo ' , ( ) => {
9593 beforeEach ( ( ) => {
9694 jest . resetModules ( ) ;
9795 jest . useRealTimers ( ) ;
9896 patchSetImmediate ( ) ;
9997 global . console = require ( 'console' ) ;
10098
101- // Simulate the condition resolution
10299 jest . mock ( 'react' , ( ) => require ( 'react/react.react-server' ) ) ;
103100 jest . mock ( 'react-server-dom-webpack/server' , ( ) =>
104101 require ( 'react-server-dom-webpack/server.node' ) ,
105102 ) ;
106- // ReactServer = require('react');
107103 ReactServerDOMServer = require ( 'react-server-dom-webpack/server' ) ;
108104
109105 jest . resetModules ( ) ;
@@ -116,7 +112,7 @@ describe('ReactFlightAsyncDebugInfoNode', () => {
116112 require ( 'react-server-dom-webpack/client.node' ) ,
117113 ) ;
118114
119- // React = require('react');
115+ React = require ( 'react' ) ;
120116 ReactServerDOMClient = require ( 'react-server-dom-webpack/client' ) ;
121117 Stream = require ( 'stream' ) ;
122118 } ) ;
@@ -127,7 +123,6 @@ describe('ReactFlightAsyncDebugInfoNode', () => {
127123 } ) ;
128124 }
129125
130- // @gate __DEV__ && enableComponentPerformanceTrack
131126 it ( 'can track async information when awaited' , async ( ) => {
132127 async function getData ( ) {
133128 await delay ( 1 ) ;
@@ -152,12 +147,137 @@ describe('ReactFlightAsyncDebugInfoNode', () => {
152147 stream . pipe ( readable ) ;
153148
154149 expect ( await result ) . toBe ( 'hi' ) ;
155- const debugInfo = getDebugInfo ( result ) ;
156- expect ( debugInfo . length ) . toBe ( 5 ) ;
157- expect ( getDebugInfo ( result ) ) . toMatchSnapshot ( ) ;
150+ if ( __DEV__ && gate ( flags => flags . enableComponentPerformanceTrack ) ) {
151+ expect ( getDebugInfo ( result ) ) . toMatchInlineSnapshot ( `
152+ [
153+ {
154+ "time": 0,
155+ },
156+ {
157+ "env": "Server",
158+ "key": null,
159+ "name": "Component",
160+ "owner": null,
161+ "props": {},
162+ "stack": [
163+ [
164+ "Object.<anonymous>",
165+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
166+ 139,
167+ 109,
168+ 126,
169+ 50,
170+ ],
171+ ],
172+ },
173+ {
174+ "awaited": {
175+ "end": 0,
176+ "stack": [
177+ [
178+ "delay",
179+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
180+ 121,
181+ 12,
182+ 120,
183+ 3,
184+ ],
185+ [
186+ "getData",
187+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
188+ 128,
189+ 13,
190+ 127,
191+ 5,
192+ ],
193+ [
194+ "Component",
195+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
196+ 135,
197+ 26,
198+ 134,
199+ 5,
200+ ],
201+ ],
202+ "start": 0,
203+ },
204+ "stack": [
205+ [
206+ "getData",
207+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
208+ 128,
209+ 13,
210+ 127,
211+ 5,
212+ ],
213+ [
214+ "Component",
215+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
216+ 135,
217+ 26,
218+ 134,
219+ 5,
220+ ],
221+ ],
222+ },
223+ {
224+ "awaited": {
225+ "end": 0,
226+ "stack": [
227+ [
228+ "delay",
229+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
230+ 121,
231+ 12,
232+ 120,
233+ 3,
234+ ],
235+ [
236+ "getData",
237+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
238+ 129,
239+ 21,
240+ 127,
241+ 5,
242+ ],
243+ [
244+ "Component",
245+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
246+ 135,
247+ 20,
248+ 134,
249+ 5,
250+ ],
251+ ],
252+ "start": 0,
253+ },
254+ "stack": [
255+ [
256+ "getData",
257+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
258+ 130,
259+ 21,
260+ 127,
261+ 5,
262+ ],
263+ [
264+ "Component",
265+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
266+ 135,
267+ 20,
268+ 134,
269+ 5,
270+ ],
271+ ],
272+ },
273+ {
274+ "time": 0,
275+ },
276+ ]
277+ ` ) ;
278+ }
158279 } ) ;
159280
160- // @gate __DEV__ && enableComponentPerformanceTrack
161281 it ( 'can track the start of I/O when no native promise is used' , async ( ) => {
162282 function Component ( ) {
163283 const callbacks = [ ] ;
@@ -182,8 +302,50 @@ describe('ReactFlightAsyncDebugInfoNode', () => {
182302 stream . pipe ( readable ) ;
183303
184304 expect ( await result ) . toBe ( 'hi' ) ;
185- const debugInfo = getDebugInfo ( result ) ;
186- expect ( debugInfo . length ) . toBe ( 4 ) ;
187- expect ( debugInfo ) . toMatchSnapshot ( ) ;
305+ if ( __DEV__ && gate ( flags => flags . enableComponentPerformanceTrack ) ) {
306+ expect ( getDebugInfo ( result ) ) . toMatchInlineSnapshot ( `
307+ [
308+ {
309+ "time": 0,
310+ },
311+ {
312+ "env": "Server",
313+ "key": null,
314+ "name": "Component",
315+ "owner": null,
316+ "props": {},
317+ "stack": [
318+ [
319+ "Object.<anonymous>",
320+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
321+ 171,
322+ 109,
323+ 158,
324+ 152,
325+ ],
326+ ],
327+ },
328+ {
329+ "awaited": {
330+ "end": 0,
331+ "stack": [
332+ [
333+ "Component",
334+ "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js",
335+ 161,
336+ 7,
337+ 159,
338+ 5,
339+ ],
340+ ],
341+ "start": 0,
342+ },
343+ },
344+ {
345+ "time": 0,
346+ },
347+ ]
348+ ` ) ;
349+ }
188350 } ) ;
189351} ) ;
0 commit comments