diff options
author | ezubarev <zubarev.eugene@gmail.com> | 2016-05-06 13:31:54 +0600 |
---|---|---|
committer | ezubarev <zubarev.eugene@gmail.com> | 2016-05-06 13:31:54 +0600 |
commit | e17f3d7d534dc6bf9aad530c3a3e77924a9070fe (patch) | |
tree | e827fa04ffd529afffeb173b2903e86529b265a2 /mocha_test/ensureAsync.js | |
parent | d474084c90a60648fea6900ea5376d76c74bc222 (diff) | |
download | async-e17f3d7d534dc6bf9aad530c3a3e77924a9070fe.tar.gz |
Convert during/ensureAsync tests to mocha
Diffstat (limited to 'mocha_test/ensureAsync.js')
-rw-r--r-- | mocha_test/ensureAsync.js | 53 |
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
|