diff options
author | Alex Early <alexander.early@gmail.com> | 2017-04-06 22:46:22 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-06 22:46:22 -0700 |
commit | 7aa90f39cf8ed4e92a9c939f0521ce1482312c67 (patch) | |
tree | f4084b132306af7702050ebbeaadc0fff47b2b90 /mocha_test | |
parent | b3679d50bee2a98c7b399ed7cbb6cc0081c578e5 (diff) | |
parent | 465cfe8c919d949e12a1c3215d9eb616cdccc910 (diff) | |
download | async-7aa90f39cf8ed4e92a9c939f0521ce1482312c67.tar.gz |
Merge pull request #1365 from alFReD-NSH/try
Add async.tryEach
Diffstat (limited to 'mocha_test')
-rw-r--r-- | mocha_test/tryEach.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/mocha_test/tryEach.js b/mocha_test/tryEach.js new file mode 100644 index 0000000..5e997a6 --- /dev/null +++ b/mocha_test/tryEach.js @@ -0,0 +1,86 @@ +var async = require('../lib'); +var expect = require('chai').expect; +var assert = require('assert'); + +describe('try', function () { + it('no callback', function () { + async.tryEach([]); + }); + it('empty', function (done) { + async.tryEach([], function (err, results) { + expect(err).to.equal(null); + expect(results).to.eql(undefined); + done(); + }); + }); + it('one task, multiple results', function (done) { + var RESULTS = ['something', 'something2']; + async.tryEach([ + function (callback) { + callback(null, RESULTS[0], RESULTS[1]); + } + ], function (err, results) { + expect(err).to.equal(null); + expect(results).to.eql(RESULTS); + done(); + }); + }); + it('one task', function (done) { + var RESULT = 'something'; + async.tryEach([ + function (callback) { + callback(null, RESULT); + } + ], function (err, results) { + expect(err).to.equal(null); + expect(results).to.eql(RESULT); + done(); + }); + }); + it('two tasks, one failing', function (done) { + var RESULT = 'something'; + async.tryEach([ + function (callback) { + callback(new Error('Failure'), {}); + }, + function (callback) { + callback(null, RESULT); + } + ], function (err, results) { + expect(err).to.equal(null); + expect(results).to.eql(RESULT); + done(); + }); + }); + it('two tasks, both failing', function (done) { + var ERROR_RESULT = new Error('Failure2'); + async.tryEach([ + function (callback) { + callback(new Error('Should not stop here')); + }, + function (callback) { + callback(ERROR_RESULT); + } + ], function (err, results) { + expect(err).to.equal(ERROR_RESULT); + expect(results).to.eql(undefined); + done(); + }); + }); + it('two tasks, non failing', function (done) { + var RESULT = 'something'; + async.tryEach([ + function (callback) { + callback(null, RESULT); + }, + function () { + assert.fail('Should not been called'); + }, + ], function (err, results) { + expect(err).to.equal(null); + expect(results).to.eql(RESULT); + done(); + }); + }); +}); + |