summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTim Vergenz <tvergenz@palantir.com>2014-09-30 11:10:37 -0400
committerTim Vergenz <vergenzt@gmail.com>2015-10-25 11:16:54 -0400
commitf801c686525431ee13fe6de8d4e09945f1256abe (patch)
tree7ed6a319735d4d97133852117fe136f1f2659937 /test
parent56bdb50912df8de4b1aba09c357c808965cd1b96 (diff)
downloadasync-f801c686525431ee13fe6de8d4e09945f1256abe.tar.gz
Add concurrency argument to async.auto
Diffstat (limited to 'test')
-rwxr-xr-xtest/test-async.js29
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({