summaryrefslogtreecommitdiff
path: root/mocha_test/ensureAsync.js
diff options
context:
space:
mode:
authorezubarev <zubarev.eugene@gmail.com>2016-05-06 13:31:54 +0600
committerezubarev <zubarev.eugene@gmail.com>2016-05-06 13:31:54 +0600
commite17f3d7d534dc6bf9aad530c3a3e77924a9070fe (patch)
treee827fa04ffd529afffeb173b2903e86529b265a2 /mocha_test/ensureAsync.js
parentd474084c90a60648fea6900ea5376d76c74bc222 (diff)
downloadasync-e17f3d7d534dc6bf9aad530c3a3e77924a9070fe.tar.gz
Convert during/ensureAsync tests to mocha
Diffstat (limited to 'mocha_test/ensureAsync.js')
-rw-r--r--mocha_test/ensureAsync.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/mocha_test/ensureAsync.js b/mocha_test/ensureAsync.js
index c33e344..fd8cc3f 100644
--- a/mocha_test/ensureAsync.js
+++ b/mocha_test/ensureAsync.js
@@ -1,11 +1,64 @@
var async = require('../lib');
var expect = require('chai').expect;
+var assert = require('assert');
describe('ensureAsync', function() {
var passContext = function(cb) {
cb(this);
};
+ it('defer sync functions', function(done) {
+ var sync = true;
+ async.ensureAsync(function (arg1, arg2, cb) {
+ expect(arg1).to.equal(1);
+ expect(arg2).to.equal(2);
+ cb(null, 4, 5);
+ })(1, 2, function (err, arg4, arg5) {
+ expect(err).to.equal(null);
+ expect(arg4).to.equal(4);
+ expect(arg5).to.equal(5);
+ assert(!sync, 'callback called on same tick');
+ done();
+ });
+ sync = false;
+ });
+
+ it('do not defer async functions', function(done) {
+ var sync = false;
+ async.ensureAsync(function (arg1, arg2, cb) {
+ expect(arg1).to.equal(1);
+ expect(arg2).to.equal(2);
+ async.setImmediate(function () {
+ sync = true;
+ cb(null, 4, 5);
+ sync = false;
+ });
+ })(1, 2, function (err, arg4, arg5) {
+ expect(err).to.equal(null);
+ expect(arg4).to.equal(4);
+ expect(arg5).to.equal(5);
+ assert(sync, 'callback called on next tick');
+ done();
+ });
+ });
+
+ it('double wrapping', function(done) {
+ var sync = true;
+ async.ensureAsync(async.ensureAsync(function (arg1, arg2, cb) {
+ expect(arg1).to.equal(1);
+ expect(arg2).to.equal(2);
+ cb(null, 4, 5);
+ }))(1, 2, function (err, arg4, arg5) {
+ expect(err).to.equal(null);
+ expect(arg4).to.equal(4);
+ expect(arg5).to.equal(5);
+ assert(!sync, 'callback called on same tick');
+ done();
+ });
+ sync = false;
+ });
+
+
it('should propely bind context to the wrapped function', function(done) {
// call bind after wrapping with ensureAsync