diff options
author | Alex Early <alexander.early@gmail.com> | 2016-02-27 15:19:13 -0800 |
---|---|---|
committer | Alex Early <alexander.early@gmail.com> | 2016-02-27 15:19:13 -0800 |
commit | 0440883b0b3e010a81adb348d89eb1b2931d8648 (patch) | |
tree | 15aab1787669a27eb1ac13dde695887924742d5e /mocha_test/every.js | |
parent | 7ee15953293b5ca8e173ab281742c3dfdcc5df50 (diff) | |
parent | 53c3c4947fd2fd9a5e771dc90b491d941d9ebbe0 (diff) | |
download | async-0440883b0b3e010a81adb348d89eb1b2931d8648.tar.gz |
Merge pull request #1041 from caolan/predicate-standardization
Predicate standardization
Diffstat (limited to 'mocha_test/every.js')
-rw-r--r-- | mocha_test/every.js | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/mocha_test/every.js b/mocha_test/every.js new file mode 100644 index 0000000..2f562ce --- /dev/null +++ b/mocha_test/every.js @@ -0,0 +1,90 @@ +var async = require('../lib'); +var expect = require('chai').expect; + +describe("every", function () { + + it('everyLimit true', function(done){ + async.everyLimit([3,1,2], 1, function(x, callback){ + setTimeout(function(){callback(null, x >= 1);}, 0); + }, function(err, result){ + expect(err).to.equal(null); + expect(result).to.equal(true); + done(); + }); + }); + + it('everyLimit false', function(done){ + async.everyLimit([3,1,2], 2, function(x, callback){ + setTimeout(function(){callback(null, x === 2);}, 0); + }, function(err, result){ + expect(err).to.equal(null); + expect(result).to.equal(false); + done(); + }); + }); + + it('everyLimit short-circuit', function(done){ + var calls = 0; + async.everyLimit([3,1,2], 1, function(x, callback){ + calls++; + callback(null, x === 1); + }, function(err, result){ + expect(err).to.equal(null); + expect(result).to.equal(false); + expect(calls).to.equal(1); + done(); + }); + }); + + + it('true', function(done){ + async.every([1,2,3], function(x, callback){ + setTimeout(function(){callback(null, true);}, 0); + }, function(err, result){ + expect(err).to.equal(null); + expect(result).to.equal(true); + done(); + }); + }); + + it('false', function(done){ + async.every([1,2,3], function(x, callback){ + setTimeout(function(){callback(null, x % 2);}, 0); + }, function(err, result){ + expect(err).to.equal(null); + expect(result).to.equal(false); + done(); + }); + }); + + it('early return', function(done){ + var call_order = []; + async.every([1,2,3], function(x, callback){ + setTimeout(function(){ + call_order.push(x); + callback(null, x === 1); + }, x*25); + }, function(){ + call_order.push('callback'); + }); + setTimeout(function(){ + expect(call_order).to.eql([1,2,'callback',3]); + done(); + }, 100); + }); + + it('error', function(done){ + async.every([1,2,3], function(x, callback){ + setTimeout(function(){callback('error');}, 0); + }, function(err, result){ + expect(err).to.equal('error'); + expect(result).to.not.exist; + done(); + }); + }); + + it('all alias', function(){ + expect(async.all).to.equal(async.every); + }); + +}); |