From e17f3d7d534dc6bf9aad530c3a3e77924a9070fe Mon Sep 17 00:00:00 2001 From: ezubarev Date: Fri, 6 May 2016 13:31:54 +0600 Subject: Convert during/ensureAsync tests to mocha --- mocha_test/ensureAsync.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'mocha_test/ensureAsync.js') 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 -- cgit v1.2.1