diff options
author | Alexander Early <alexander.early@gmail.com> | 2016-03-08 16:17:25 -0800 |
---|---|---|
committer | Alexander Early <alexander.early@gmail.com> | 2016-03-08 16:17:25 -0800 |
commit | 27230c22ccc567f7944b0dc7be23148c5e7304b0 (patch) | |
tree | ea3656e4554d8b4039aa9ec7d9837b2ff94b55a6 /mocha_test | |
parent | f6a19cec4dae3afd3dfb53d07baabd88ce282b5c (diff) | |
download | async-27230c22ccc567f7944b0dc7be23148c5e7304b0.tar.gz |
added autoInject, adapted from #608
Diffstat (limited to 'mocha_test')
-rw-r--r-- | mocha_test/autoInject.js | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/mocha_test/autoInject.js b/mocha_test/autoInject.js new file mode 100644 index 0000000..53a3d17 --- /dev/null +++ b/mocha_test/autoInject.js @@ -0,0 +1,77 @@ +var async = require('../lib'); +var expect = require('chai').expect; +var _ = require('lodash'); + +describe('autoInject', function () { + + it("basics", function (done) { + var callOrder = []; + async.autoInject({ + task1: function(task2, callback){ + expect(task2).to.equal(2); + setTimeout(function(){ + callOrder.push('task1'); + callback(null, 1); + }, 25); + }, + task2: function(callback){ + setTimeout(function(){ + callOrder.push('task2'); + callback(null, 2); + }, 50); + }, + task3: function(task2, callback){ + expect(task2).to.equal(2); + callOrder.push('task3'); + callback(null, 3); + }, + task4: function(task1, task2, callback){ + expect(task1).to.equal(1); + expect(task2).to.equal(2); + callOrder.push('task4'); + callback(null, 4); + }, + task5: function(task2, callback){ + expect(task2).to.equal(2); + setTimeout(function(){ + callOrder.push('task5'); + callback(null, 5); + }, 0); + }, + task6: function(task2, callback){ + expect(task2).to.equal(2); + callOrder.push('task6'); + callback(null, 6); + } + }, + function(err, results){ + expect(results.task6).to.equal(6); + expect(callOrder).to.eql(['task2','task6','task3','task5','task1','task4']); + done(); + }); + }); + + it('should work with array tasks', function (done) { + var callOrder = []; + + async.autoInject({ + task1: function (cb) { + callOrder.push('task1'); + cb(null, 1); + }, + task2: ['task3', function (task3, cb) { + expect(task3).to.equal(3); + callOrder.push('task2'); + cb(null, 2); + }], + task3: function (cb) { + callOrder.push('task3'); + cb(null, 3); + } + }, function () { + expect(callOrder).to.eql(['task1','task3','task2']); + done(); + }); + }); + +}); |