@@ -31,23 +31,20 @@ describe('ReactSuspense', () => {
31
31
32
32
function createThenable ( ) {
33
33
let completed = false ;
34
- const resolveRef = { current : null } ;
35
- const promise = {
36
- then ( resolve , reject ) {
37
- resolveRef . current = ( ) => {
38
- completed = true ;
39
- resolve ( ) ;
40
- } ;
41
- } ,
42
- } ;
43
-
34
+ let resolve ;
35
+ const promise = new Promise ( res => {
36
+ resolve = ( ) => {
37
+ completed = true ;
38
+ res ( ) ;
39
+ } ;
40
+ } ) ;
44
41
const PromiseComp = ( ) => {
45
42
if ( ! completed ) {
46
43
throw promise ;
47
44
}
48
45
return 'Done' ;
49
46
} ;
50
- return { promise, resolveRef , PromiseComp} ;
47
+ return { promise, resolve , PromiseComp} ;
51
48
}
52
49
53
50
it ( 'check type' , ( ) => {
@@ -74,8 +71,8 @@ describe('ReactSuspense', () => {
74
71
expect ( ( ) => Scheduler . unstable_flushAll ( ) ) . toErrorDev ( [ ] ) ;
75
72
} ) ;
76
73
77
- it ( '1 then 0 suspense callback' , ( ) => {
78
- const { promise, resolveRef , PromiseComp} = createThenable ( ) ;
74
+ it ( '1 then 0 suspense callback' , async ( ) => {
75
+ const { promise, resolve , PromiseComp} = createThenable ( ) ;
79
76
80
77
let ops = [ ] ;
81
78
const suspenseCallback = thenables => {
@@ -94,21 +91,21 @@ describe('ReactSuspense', () => {
94
91
expect ( ops ) . toEqual ( [ new Set ( [ promise ] ) ] ) ;
95
92
ops = [ ] ;
96
93
97
- resolveRef . current ( ) ;
94
+ await resolve ( ) ;
98
95
expect ( Scheduler ) . toFlushWithoutYielding ( ) ;
99
96
expect ( ReactNoop . getChildren ( ) ) . toEqual ( [ text ( 'Done' ) ] ) ;
100
97
expect ( ops ) . toEqual ( [ ] ) ;
101
98
} ) ;
102
99
103
- it ( '2 then 1 then 0 suspense callback' , ( ) => {
100
+ it ( '2 then 1 then 0 suspense callback' , async ( ) => {
104
101
const {
105
102
promise : promise1 ,
106
- resolveRef : resolveRef1 ,
103
+ resolve : resolve1 ,
107
104
PromiseComp : PromiseComp1 ,
108
105
} = createThenable ( ) ;
109
106
const {
110
107
promise : promise2 ,
111
- resolveRef : resolveRef2 ,
108
+ resolve : resolve2 ,
112
109
PromiseComp : PromiseComp2 ,
113
110
} = createThenable ( ) ;
114
111
@@ -132,14 +129,14 @@ describe('ReactSuspense', () => {
132
129
expect ( ops ) . toEqual ( [ new Set ( [ promise1 , promise2 ] ) ] ) ;
133
130
ops = [ ] ;
134
131
135
- resolveRef1 . current ( ) ;
132
+ await resolve1 ( ) ;
136
133
ReactNoop . render ( element ) ;
137
134
expect ( Scheduler ) . toFlushWithoutYielding ( ) ;
138
135
expect ( ReactNoop . getChildren ( ) ) . toEqual ( [ text ( 'Waiting Tier 1' ) ] ) ;
139
136
expect ( ops ) . toEqual ( [ new Set ( [ promise2 ] ) ] ) ;
140
137
ops = [ ] ;
141
138
142
- resolveRef2 . current ( ) ;
139
+ await resolve2 ( ) ;
143
140
ReactNoop . render ( element ) ;
144
141
expect ( Scheduler ) . toFlushWithoutYielding ( ) ;
145
142
expect ( ReactNoop . getChildren ( ) ) . toEqual ( [ text ( 'Done' ) , text ( 'Done' ) ] ) ;
@@ -177,15 +174,15 @@ describe('ReactSuspense', () => {
177
174
expect ( ops2 ) . toEqual ( [ new Set ( [ promise ] ) ] ) ;
178
175
} ) ;
179
176
180
- it ( 'competing suspense promises' , ( ) => {
177
+ it ( 'competing suspense promises' , async ( ) => {
181
178
const {
182
179
promise : promise1 ,
183
- resolveRef : resolveRef1 ,
180
+ resolve : resolve1 ,
184
181
PromiseComp : PromiseComp1 ,
185
182
} = createThenable ( ) ;
186
183
const {
187
184
promise : promise2 ,
188
- resolveRef : resolveRef2 ,
185
+ resolve : resolve2 ,
189
186
PromiseComp : PromiseComp2 ,
190
187
} = createThenable ( ) ;
191
188
@@ -219,7 +216,7 @@ describe('ReactSuspense', () => {
219
216
ops1 = [ ] ;
220
217
ops2 = [ ] ;
221
218
222
- resolveRef1 . current ( ) ;
219
+ await resolve1 ( ) ;
223
220
ReactNoop . render ( element ) ;
224
221
expect ( Scheduler ) . toFlushWithoutYielding ( ) ;
225
222
expect ( ReactNoop . getChildren ( ) ) . toEqual ( [
@@ -231,7 +228,7 @@ describe('ReactSuspense', () => {
231
228
ops1 = [ ] ;
232
229
ops2 = [ ] ;
233
230
234
- resolveRef2 . current ( ) ;
231
+ await resolve2 ( ) ;
235
232
ReactNoop . render ( element ) ;
236
233
expect ( Scheduler ) . toFlushWithoutYielding ( ) ;
237
234
expect ( ReactNoop . getChildren ( ) ) . toEqual ( [ text ( 'Done' ) , text ( 'Done' ) ] ) ;
0 commit comments