summaryrefslogtreecommitdiff
path: root/mocha_test
diff options
context:
space:
mode:
authorAlex Early <alexander.early@gmail.com>2017-04-06 22:46:22 -0700
committerGitHub <noreply@github.com>2017-04-06 22:46:22 -0700
commit7aa90f39cf8ed4e92a9c939f0521ce1482312c67 (patch)
treef4084b132306af7702050ebbeaadc0fff47b2b90 /mocha_test
parentb3679d50bee2a98c7b399ed7cbb6cc0081c578e5 (diff)
parent465cfe8c919d949e12a1c3215d9eb616cdccc910 (diff)
downloadasync-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.js86
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();
+ });
+ });
+});
+