diff options
author | Tim Vergenz <tvergenz@palantir.com> | 2014-09-30 11:10:37 -0400 |
---|---|---|
committer | Tim Vergenz <vergenzt@gmail.com> | 2015-10-25 11:16:54 -0400 |
commit | f801c686525431ee13fe6de8d4e09945f1256abe (patch) | |
tree | 7ed6a319735d4d97133852117fe136f1f2659937 /test | |
parent | 56bdb50912df8de4b1aba09c357c808965cd1b96 (diff) | |
download | async-f801c686525431ee13fe6de8d4e09945f1256abe.tar.gz |
Add concurrency argument to async.auto
Diffstat (limited to 'test')
-rwxr-xr-x | test/test-async.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/test-async.js b/test/test-async.js index e98eaf4..34fabaf 100755 --- a/test/test-async.js +++ b/test/test-async.js @@ -331,6 +331,35 @@ exports['auto'] = function(test){ }); }; +exports['auto concurrency'] = function (test) { + var concurrency = 2; + var runningTasks = []; + var makeCallback = function(taskName) { + return function(callback) { + runningTasks.push(taskName); + setTimeout(function(){ + // Each task returns the array of running tasks as results. + var result = runningTasks.slice(0); + runningTasks.splice(runningTasks.indexOf(taskName), 1); + callback(null, result); + }); + }; + }; + async.auto({ + task1: ['task2', makeCallback('task1')], + task2: makeCallback('task2'), + task3: ['task2', makeCallback('task3')], + task4: ['task1', 'task2', makeCallback('task4')], + task5: ['task2', makeCallback('task5')], + task6: ['task2', makeCallback('task6')] + }, function(err, results){ + Object.keys(results).forEach(function(taskName) { + test.ok(results[taskName].length <= concurrency); + }); + test.done(); + }, concurrency); +}; + exports['auto petrify'] = function (test) { var callOrder = []; async.auto({ |