@@ -16,13 +16,11 @@ import {scheduleMicroTask} from '../../src/util';
16
16
17
17
18
18
19
- // Schedules a microtasks (using a resolved promise .then())
20
- function microTask ( fn : Function ) : void {
21
- scheduleMicroTask ( ( ) => {
22
- // We do double dispatch so that we can wait for scheduleMicrotask in the Testability when
23
- // NgZone becomes stable.
24
- scheduleMicroTask ( fn ) ;
25
- } ) ;
19
+ // Schedules a task to be run after Testability checks for oustanding tasks. Since Testability
20
+ // uses a 0 second timeout to check for outstanding tasks we add our 0 second timeout after a
21
+ // micro task (which ensures Testability's timeout is run first).
22
+ function afterTestabilityCheck ( fn : Function ) : void {
23
+ scheduleMicroTask ( ( ) => setTimeout ( fn ) ) ;
26
24
}
27
25
28
26
@Injectable ( )
@@ -65,7 +63,7 @@ class MockNgZone extends NgZone {
65
63
it ( 'should fire whenstable callbacks if pending count is 0' ,
66
64
inject ( [ AsyncTestCompleter ] , ( async : AsyncTestCompleter ) => {
67
65
testability . whenStable ( execute ) ;
68
- microTask ( ( ) => {
66
+ afterTestabilityCheck ( ( ) => {
69
67
expect ( execute ) . toHaveBeenCalled ( ) ;
70
68
async . done ( ) ;
71
69
} ) ;
@@ -82,11 +80,11 @@ class MockNgZone extends NgZone {
82
80
testability . increasePendingRequestCount ( ) ;
83
81
testability . whenStable ( execute ) ;
84
82
85
- microTask ( ( ) => {
83
+ afterTestabilityCheck ( ( ) => {
86
84
expect ( execute ) . not . toHaveBeenCalled ( ) ;
87
85
testability . decreasePendingRequestCount ( ) ;
88
86
89
- microTask ( ( ) => {
87
+ afterTestabilityCheck ( ( ) => {
90
88
expect ( execute ) . not . toHaveBeenCalled ( ) ;
91
89
async . done ( ) ;
92
90
} ) ;
@@ -98,11 +96,11 @@ class MockNgZone extends NgZone {
98
96
testability . increasePendingRequestCount ( ) ;
99
97
testability . whenStable ( execute ) ;
100
98
101
- microTask ( ( ) => {
99
+ afterTestabilityCheck ( ( ) => {
102
100
expect ( execute ) . not . toHaveBeenCalled ( ) ;
103
101
testability . decreasePendingRequestCount ( ) ;
104
102
105
- microTask ( ( ) => {
103
+ afterTestabilityCheck ( ( ) => {
106
104
expect ( execute ) . toHaveBeenCalled ( ) ;
107
105
async . done ( ) ;
108
106
} ) ;
@@ -120,7 +118,7 @@ class MockNgZone extends NgZone {
120
118
it ( 'should fire whenstable callbacks with didWork if pending count is 0' ,
121
119
inject ( [ AsyncTestCompleter ] , ( async : AsyncTestCompleter ) => {
122
120
testability . whenStable ( execute ) ;
123
- microTask ( ( ) => {
121
+ afterTestabilityCheck ( ( ) => {
124
122
expect ( execute ) . toHaveBeenCalledWith ( false ) ;
125
123
async . done ( ) ;
126
124
} ) ;
@@ -131,14 +129,14 @@ class MockNgZone extends NgZone {
131
129
testability . increasePendingRequestCount ( ) ;
132
130
testability . whenStable ( execute ) ;
133
131
134
- microTask ( ( ) => {
132
+ afterTestabilityCheck ( ( ) => {
135
133
testability . decreasePendingRequestCount ( ) ;
136
134
137
- microTask ( ( ) => {
135
+ afterTestabilityCheck ( ( ) => {
138
136
expect ( execute ) . toHaveBeenCalledWith ( true ) ;
139
137
testability . whenStable ( execute2 ) ;
140
138
141
- microTask ( ( ) => {
139
+ afterTestabilityCheck ( ( ) => {
142
140
expect ( execute2 ) . toHaveBeenCalledWith ( false ) ;
143
141
async . done ( ) ;
144
142
} ) ;
@@ -154,7 +152,7 @@ class MockNgZone extends NgZone {
154
152
ngZone . stable ( ) ;
155
153
testability . whenStable ( execute ) ;
156
154
157
- microTask ( ( ) => {
155
+ afterTestabilityCheck ( ( ) => {
158
156
expect ( execute ) . toHaveBeenCalled ( ) ;
159
157
async . done ( ) ;
160
158
} ) ;
@@ -173,11 +171,11 @@ class MockNgZone extends NgZone {
173
171
ngZone . unstable ( ) ;
174
172
testability . whenStable ( execute ) ;
175
173
176
- microTask ( ( ) => {
174
+ afterTestabilityCheck ( ( ) => {
177
175
expect ( execute ) . not . toHaveBeenCalled ( ) ;
178
176
ngZone . stable ( ) ;
179
177
180
- microTask ( ( ) => {
178
+ afterTestabilityCheck ( ( ) => {
181
179
expect ( execute ) . toHaveBeenCalled ( ) ;
182
180
async . done ( ) ;
183
181
} ) ;
@@ -198,15 +196,15 @@ class MockNgZone extends NgZone {
198
196
testability . increasePendingRequestCount ( ) ;
199
197
testability . whenStable ( execute ) ;
200
198
201
- microTask ( ( ) => {
199
+ afterTestabilityCheck ( ( ) => {
202
200
expect ( execute ) . not . toHaveBeenCalled ( ) ;
203
201
testability . decreasePendingRequestCount ( ) ;
204
202
205
- microTask ( ( ) => {
203
+ afterTestabilityCheck ( ( ) => {
206
204
expect ( execute ) . not . toHaveBeenCalled ( ) ;
207
205
ngZone . stable ( ) ;
208
206
209
- microTask ( ( ) => {
207
+ afterTestabilityCheck ( ( ) => {
210
208
expect ( execute ) . toHaveBeenCalled ( ) ;
211
209
async . done ( ) ;
212
210
} ) ;
@@ -221,19 +219,19 @@ class MockNgZone extends NgZone {
221
219
testability . increasePendingRequestCount ( ) ;
222
220
testability . whenStable ( execute ) ;
223
221
224
- microTask ( ( ) => {
222
+ afterTestabilityCheck ( ( ) => {
225
223
expect ( execute ) . not . toHaveBeenCalled ( ) ;
226
224
ngZone . stable ( ) ;
227
225
228
- microTask ( ( ) => {
226
+ afterTestabilityCheck ( ( ) => {
229
227
expect ( execute ) . not . toHaveBeenCalled ( ) ;
230
228
testability . decreasePendingRequestCount ( ) ;
231
229
232
- microTask ( ( ) => {
230
+ afterTestabilityCheck ( ( ) => {
233
231
expect ( execute ) . not . toHaveBeenCalled ( ) ;
234
232
testability . decreasePendingRequestCount ( ) ;
235
233
236
- microTask ( ( ) => {
234
+ afterTestabilityCheck ( ( ) => {
237
235
expect ( execute ) . toHaveBeenCalled ( ) ;
238
236
async . done ( ) ;
239
237
} ) ;
@@ -248,11 +246,11 @@ class MockNgZone extends NgZone {
248
246
ngZone . stable ( ) ;
249
247
testability . whenStable ( execute ) ;
250
248
251
- microTask ( ( ) => {
249
+ afterTestabilityCheck ( ( ) => {
252
250
expect ( execute ) . toHaveBeenCalledWith ( true ) ;
253
251
testability . whenStable ( execute2 ) ;
254
252
255
- microTask ( ( ) => {
253
+ afterTestabilityCheck ( ( ) => {
256
254
expect ( execute2 ) . toHaveBeenCalledWith ( false ) ;
257
255
async . done ( ) ;
258
256
} ) ;
@@ -264,14 +262,14 @@ class MockNgZone extends NgZone {
264
262
ngZone . unstable ( ) ;
265
263
testability . whenStable ( execute ) ;
266
264
267
- microTask ( ( ) => {
265
+ afterTestabilityCheck ( ( ) => {
268
266
ngZone . stable ( ) ;
269
267
270
- microTask ( ( ) => {
268
+ afterTestabilityCheck ( ( ) => {
271
269
expect ( execute ) . toHaveBeenCalledWith ( true ) ;
272
270
testability . whenStable ( execute2 ) ;
273
271
274
- microTask ( ( ) => {
272
+ afterTestabilityCheck ( ( ) => {
275
273
expect ( execute2 ) . toHaveBeenCalledWith ( false ) ;
276
274
async . done ( ) ;
277
275
} ) ;
0 commit comments