File tree Expand file tree Collapse file tree 1 file changed +36
-1
lines changed Expand file tree Collapse file tree 1 file changed +36
-1
lines changed Original file line number Diff line number Diff line change @@ -227,7 +227,7 @@ describe('Promise', () => {
227
227
jest . runAllTimers ( ) ;
228
228
} ) ) ;
229
229
230
- it ( 'can handle promises in parallel' , asyncHelper ( function ( done ) {
230
+ it ( 'can handle promises in parallel with array ' , asyncHelper ( function ( done ) {
231
231
var COUNT = 5 ;
232
232
233
233
var delay = function ( ms ) {
@@ -262,6 +262,41 @@ describe('Promise', () => {
262
262
jest . runAllTimers ( ) ;
263
263
} ) ) ;
264
264
265
+ it ( 'can handle promises in parallel with arguments' , asyncHelper ( function ( done ) {
266
+ var COUNT = 5 ;
267
+
268
+ var delay = function ( ms ) {
269
+ var promise = new ParsePromise ( ) ;
270
+ setTimeout ( ( ) => { promise . resolve ( ) ; } , ms ) ;
271
+ return promise ;
272
+ } ;
273
+
274
+ var called = 0 ;
275
+ var promises = [ ] ;
276
+ function generate ( i ) {
277
+ promises [ i ] = delay ( ( i % 2 ) ? ( i * 10 ) : ( COUNT * 10 ) - ( i * 10 ) ) . then (
278
+ function ( ) {
279
+ called ++ ;
280
+ return 5 * i ;
281
+ } ) ;
282
+ }
283
+ for ( var i = 0 ; i < COUNT ; i ++ ) {
284
+ generate ( i ) ;
285
+ }
286
+
287
+ ParsePromise . when . apply ( null , promises ) . then ( function ( ) {
288
+ expect ( called ) . toBe ( COUNT ) ;
289
+ expect ( COUNT ) . toBe ( arguments . length ) ;
290
+ var actual = arguments ;
291
+ for ( var i = 0 ; i < actual . length ; i ++ ) {
292
+ expect ( actual [ i ] ) . toBe ( 5 * i ) ;
293
+ }
294
+ done ( ) ;
295
+ } ) ;
296
+
297
+ jest . runAllTimers ( ) ;
298
+ } ) ) ;
299
+
265
300
it ( 'passes on errors' , ( ) => {
266
301
ParsePromise . error ( 'foo' ) . then ( ( ) => {
267
302
// This should not be reached
You can’t perform that action at this time.
0 commit comments