From 63431133dfdc2de696f925e3710c70817c38d9a1 Mon Sep 17 00:00:00 2001 From: "kolodny (Moshe Kolodny)" Date: Fri, 12 Jun 2015 11:26:50 -0400 Subject: [PATCH] tightened up tests for throttle-promises --- throttle-promises/test.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/throttle-promises/test.js b/throttle-promises/test.js index b9b6a71..f0d4e8e 100644 --- a/throttle-promises/test.js +++ b/throttle-promises/test.js @@ -6,19 +6,20 @@ describe('throttle-promises', function() { var passed = true; var limit = 5; var currentlyExecuting = 0; - var maxCurrentlyExecuting = 0; + var currentlyExecutingHistory = [currentlyExecuting]; var nextValue = 0; var asyncFactory = function() { return new Promise(function(resolve) { var resolveWith = nextValue++; currentlyExecuting++; - maxCurrentlyExecuting = Math.max(maxCurrentlyExecuting, currentlyExecuting); + currentlyExecutingHistory.push(currentlyExecuting); if (currentlyExecuting > limit) { passed = false; } setTimeout(function() { resolve(resolveWith + '!'); currentlyExecuting--; + currentlyExecutingHistory.push(currentlyExecuting); }, Math.random() * 100); }); }; @@ -32,9 +33,13 @@ describe('throttle-promises', function() { var expectedResults = Array(101).join('.').split('').map(function(dot, index) { return index + '!'; }); + var expectedHistory = Array(202).join('.').split('').map(function(dot, index) { + return index < 5 ? index : index >= 200 - 5 ? 200 - index : index % 2 ? 5 : 4; + }); + assert(passed, 'more than ' + limit + ' promises ran in parallel'); - assert.equal(maxCurrentlyExecuting, limit); assert.deepEqual(results, expectedResults); + assert.deepEqual(currentlyExecutingHistory, expectedHistory); done(); });