@@ -36,11 +36,8 @@ describe('ReactDOMFizzServer', () => {
36
36
writable . on ( 'error' , error => {
37
37
writable . error = error ;
38
38
} ) ;
39
- return writable ;
40
- }
41
-
42
- function waitUntilClose ( writable ) {
43
- return new Promise ( resolve => writable . on ( 'close' , resolve ) ) ;
39
+ const closed = new Promise ( resolve => writable . on ( 'close' , resolve ) ) ;
40
+ return { writable, closed} ;
44
41
}
45
42
46
43
const theError = new Error ( 'This is an error' ) ;
@@ -54,31 +51,32 @@ describe('ReactDOMFizzServer', () => {
54
51
55
52
// @gate experimental
56
53
it ( 'should call pipeToNodeWritable' , ( ) => {
57
- const writable = getTestWritable ( ) ;
54
+ const { writable} = getTestWritable ( ) ;
58
55
ReactDOMFizzServer . pipeToNodeWritable ( < div > hello world</ div > , writable ) ;
59
56
jest . runAllTimers ( ) ;
60
57
expect ( writable . result ) . toBe ( '<div>hello world</div>' ) ;
61
58
} ) ;
62
59
63
60
// @gate experimental
64
61
it ( 'should error the stream when an error is thrown at the root' , async ( ) => {
65
- const writable = getTestWritable ( ) ;
62
+ const { writable, closed } = getTestWritable ( ) ;
66
63
ReactDOMFizzServer . pipeToNodeWritable (
67
64
< div >
68
65
< Throw />
69
66
</ div > ,
70
67
writable ,
71
68
) ;
69
+ jest . runAllTimers ( ) ;
72
70
73
- await waitUntilClose ( writable ) ;
71
+ await closed ;
74
72
75
73
expect ( writable . error ) . toBe ( theError ) ;
76
74
expect ( writable . result ) . toBe ( '' ) ;
77
75
} ) ;
78
76
79
77
// @gate experimental
80
78
it ( 'should error the stream when an error is thrown inside a fallback' , async ( ) => {
81
- const writable = getTestWritable ( ) ;
79
+ const { writable, closed } = getTestWritable ( ) ;
82
80
ReactDOMFizzServer . pipeToNodeWritable (
83
81
< div >
84
82
< Suspense fallback = { < Throw /> } >
@@ -88,15 +86,17 @@ describe('ReactDOMFizzServer', () => {
88
86
writable ,
89
87
) ;
90
88
91
- await waitUntilClose ( writable ) ;
89
+ jest . runAllTimers ( ) ;
90
+
91
+ await closed ;
92
92
93
93
expect ( writable . error ) . toBe ( theError ) ;
94
94
expect ( writable . result ) . toBe ( '' ) ;
95
95
} ) ;
96
96
97
97
// @gate experimental
98
98
it ( 'should not error the stream when an error is thrown inside suspense boundary' , async ( ) => {
99
- const writable = getTestWritable ( ) ;
99
+ const { writable, closed } = getTestWritable ( ) ;
100
100
ReactDOMFizzServer . pipeToNodeWritable (
101
101
< div >
102
102
< Suspense fallback = { < div > Loading</ div > } >
@@ -106,7 +106,9 @@ describe('ReactDOMFizzServer', () => {
106
106
writable ,
107
107
) ;
108
108
109
- await waitUntilClose ( writable ) ;
109
+ jest . runAllTimers ( ) ;
110
+
111
+ await closed ;
110
112
111
113
expect ( writable . error ) . toBe ( undefined ) ;
112
114
expect ( writable . result ) . toContain ( 'Loading' ) ;
0 commit comments