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', () => {
227227 jest . runAllTimers ( ) ;
228228 } ) ) ;
229229
230- it ( 'can handle promises in parallel' , asyncHelper ( function ( done ) {
230+ it ( 'can handle promises in parallel with array ' , asyncHelper ( function ( done ) {
231231 var COUNT = 5 ;
232232
233233 var delay = function ( ms ) {
@@ -262,6 +262,41 @@ describe('Promise', () => {
262262 jest . runAllTimers ( ) ;
263263 } ) ) ;
264264
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+
265300 it ( 'passes on errors' , ( ) => {
266301 ParsePromise . error ( 'foo' ) . then ( ( ) => {
267302 // This should not be reached
You can’t perform that action at this time.
0 commit comments