summaryrefslogtreecommitdiff
path: root/test/test-async.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-async.js')
-rwxr-xr-xtest/test-async.js328
1 files changed, 0 insertions, 328 deletions
diff --git a/test/test-async.js b/test/test-async.js
index c8a1c7c..1110012 100755
--- a/test/test-async.js
+++ b/test/test-async.js
@@ -278,334 +278,6 @@ exports['seq without callback'] = function (test) {
add2mul3.call(testcontext, 3);
};
-exports['auto'] = function(test){
- test.expect(2);
- var callOrder = [];
- async.auto({
- task1: ['task2', function(callback){
- setTimeout(function(){
- callOrder.push('task1');
- callback();
- }, 25);
- }],
- task2: function(callback){
- setTimeout(function(){
- callOrder.push('task2');
- callback();
- }, 50);
- },
- task3: ['task2', function(callback){
- callOrder.push('task3');
- callback();
- }],
- task4: ['task1', 'task2', function(callback){
- callOrder.push('task4');
- callback();
- }],
- task5: ['task2', function(callback){
- setTimeout(function(){
- callOrder.push('task5');
- callback();
- }, 0);
- }],
- task6: ['task2', function(callback){
- callOrder.push('task6');
- callback();
- }]
- },
- function(err){
- test.ok(err === null, err + " passed instead of 'null'");
- test.same(callOrder, ['task2','task6','task3','task5','task1','task4']);
- test.done();
- });
-};
-
-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')]
- }, concurrency, function(err, results){
- Object.keys(results).forEach(function(taskName) {
- test.ok(results[taskName].length <= concurrency);
- });
- test.done();
- });
-};
-
-exports['auto petrify'] = function (test) {
- var callOrder = [];
- async.auto({
- task1: ['task2', function (callback) {
- setTimeout(function () {
- callOrder.push('task1');
- callback();
- }, 100);
- }],
- task2: function (callback) {
- setTimeout(function () {
- callOrder.push('task2');
- callback();
- }, 200);
- },
- task3: ['task2', function (callback) {
- callOrder.push('task3');
- callback();
- }],
- task4: ['task1', 'task2', function (callback) {
- callOrder.push('task4');
- callback();
- }]
- },
- function (err) {
- if (err) throw err;
- test.same(callOrder, ['task2', 'task3', 'task1', 'task4']);
- test.done();
- });
-};
-
-exports['auto results'] = function(test){
- var callOrder = [];
- async.auto({
- task1: ['task2', function(callback, results){
- test.same(results.task2, 'task2');
- setTimeout(function(){
- callOrder.push('task1');
- callback(null, 'task1a', 'task1b');
- }, 25);
- }],
- task2: function(callback){
- setTimeout(function(){
- callOrder.push('task2');
- callback(null, 'task2');
- }, 50);
- },
- task3: ['task2', function(callback, results){
- test.same(results.task2, 'task2');
- callOrder.push('task3');
- callback(null);
- }],
- task4: ['task1', 'task2', function(callback, results){
- test.same(results.task1, ['task1a','task1b']);
- test.same(results.task2, 'task2');
- callOrder.push('task4');
- callback(null, 'task4');
- }]
- },
- function(err, results){
- test.same(callOrder, ['task2','task3','task1','task4']);
- test.same(results, {task1: ['task1a','task1b'], task2: 'task2', task3: undefined, task4: 'task4'});
- test.done();
- });
-};
-
-exports['auto empty object'] = function(test){
- async.auto({}, function(err){
- test.ok(err === null, err + " passed instead of 'null'");
- test.done();
- });
-};
-
-exports['auto error'] = function(test){
- test.expect(1);
- async.auto({
- task1: function(callback){
- callback('testerror');
- },
- task2: ['task1', function(callback){
- test.ok(false, 'task2 should not be called');
- callback();
- }],
- task3: function(callback){
- callback('testerror2');
- }
- },
- function(err){
- test.equals(err, 'testerror');
- });
- setTimeout(test.done, 100);
-};
-
-exports['auto no callback'] = function(test){
- async.auto({
- task1: function(callback){callback();},
- task2: ['task1', function(callback){callback(); test.done();}]
- });
-};
-
-exports['auto concurrency no callback'] = function(test){
- async.auto({
- task1: function(callback){callback();},
- task2: ['task1', function(callback){callback(); test.done();}]
- }, 1);
-};
-
-exports['auto error should pass partial results'] = function(test) {
- async.auto({
- task1: function(callback){
- callback(false, 'result1');
- },
- task2: ['task1', function(callback){
- callback('testerror', 'result2');
- }],
- task3: ['task2', function(){
- test.ok(false, 'task3 should not be called');
- }]
- },
- function(err, results){
- test.equals(err, 'testerror');
- test.equals(results.task1, 'result1');
- test.equals(results.task2, 'result2');
- test.done();
- });
-};
-
-// Issue 24 on github: https://github.com/caolan/async/issues#issue/24
-// Issue 76 on github: https://github.com/caolan/async/issues#issue/76
-exports['auto removeListener has side effect on loop iterator'] = function(test) {
- async.auto({
- task1: ['task3', function(/*callback*/) { test.done(); }],
- task2: ['task3', function(/*callback*/) { /* by design: DON'T call callback */ }],
- task3: function(callback) { callback(); }
- });
-};
-
-// Issue 410 on github: https://github.com/caolan/async/issues/410
-exports['auto calls callback multiple times'] = function(test) {
- if (isBrowser()) {
- // node only test
- test.done();
- return;
- }
- var finalCallCount = 0;
- var domain = require('domain').create();
- domain.on('error', function (e) {
- // ignore test error
- if (!e._test_error) {
- return test.done(e);
- }
- });
- domain.run(function () {
- async.auto({
- task1: function(callback) { callback(null); },
- task2: ['task1', function(callback) { callback(null); }]
- },
-
- // Error throwing final callback. This should only run once
- function() {
- finalCallCount++;
- var e = new Error("An error");
- e._test_error = true;
- throw e;
- });
- });
- setTimeout(function () {
- test.equal(finalCallCount, 1,
- "Final auto callback should only be called once"
- );
- test.done();
- }, 10);
-};
-
-
-exports['auto calls callback multiple times with parallel functions'] = function(test) {
- test.expect(1);
- async.auto({
- task1: function(callback) { setTimeout(callback,0,"err"); },
- task2: function(callback) { setTimeout(callback,0,"err"); }
- },
- // Error throwing final callback. This should only run once
- function(err) {
- test.equal(err, "err");
- test.done();
- });
-};
-
-
-// Issue 462 on github: https://github.com/caolan/async/issues/462
-exports['auto modifying results causes final callback to run early'] = function(test) {
- async.auto({
- task1: function(callback, results){
- results.inserted = true;
- callback(null, 'task1');
- },
- task2: function(callback){
- setTimeout(function(){
- callback(null, 'task2');
- }, 50);
- },
- task3: function(callback){
- setTimeout(function(){
- callback(null, 'task3');
- }, 100);
- }
- },
- function(err, results){
- test.equal(results.inserted, true);
- test.ok(results.task3, 'task3');
- test.done();
- });
-};
-
-// Issue 263 on github: https://github.com/caolan/async/issues/263
-exports['auto prevent dead-locks due to inexistant dependencies'] = function(test) {
- test.throws(function () {
- async.auto({
- task1: ['noexist', function(callback){
- callback(null, 'task1');
- }]
- });
- }, Error);
- test.done();
-};
-
-// Issue 263 on github: https://github.com/caolan/async/issues/263
-exports['auto prevent dead-locks due to cyclic dependencies'] = function(test) {
- test.throws(function () {
- async.auto({
- task1: ['task2', function(callback){
- callback(null, 'task1');
- }],
- task2: ['task1', function(callback){
- callback(null, 'task2');
- }]
- });
- }, Error);
- test.done();
-};
-
-// Issue 988 on github: https://github.com/caolan/async/issues/988
-exports['auto stops running tasks on error'] = function(test) {
- async.auto({
- task1: function (callback) {
- callback('error');
- },
- task2: function (callback) {
- test.ok(false, 'test2 should not be called');
- callback();
- }
- }, 1, function (error) {
- test.equal(error, 'error', 'finishes with error');
- test.done();
- });
-};
-
// Issue 306 on github: https://github.com/caolan/async/issues/306
exports['retry when attempt succeeds'] = function(test) {
var failed = 3;