diff options
author | Aydar Zartdinov <zartdinov@gmail.com> | 2015-07-09 07:25:46 +0300 |
---|---|---|
committer | Aydar Zartdinov <zartdinov@gmail.com> | 2015-07-09 07:25:46 +0300 |
commit | 725fdb2aaaa114b23583067a7099d817f806b146 (patch) | |
tree | 464d7f6bee4ab0f572fa75b833a2f4a9443136eb | |
parent | 4be3c68a8014acba23cde6d57f9a48efad31839c (diff) | |
download | async-725fdb2aaaa114b23583067a7099d817f806b146.tar.gz |
unit test for bluebird promisified functions
-rw-r--r-- | lib/async.js | 2 | ||||
-rwxr-xr-x | test/test-async.js | 33 |
2 files changed, 34 insertions, 1 deletions
diff --git a/lib/async.js b/lib/async.js index e756854..32a2d82 100644 --- a/lib/async.js +++ b/lib/async.js @@ -1194,7 +1194,7 @@ result.then(function(value) { callback(null, value); }).catch(function(err) { - callback(new Error(err)); + callback(err.message ? err : new Error(err)); }); } else { callback(null, result); diff --git a/test/test-async.js b/test/test-async.js index 3eb1324..37322c3 100755 --- a/test/test-async.js +++ b/test/test-async.js @@ -4269,6 +4269,39 @@ exports['asyncify'] = { } }, + 'bluebird': { + 'setUp': function (callback) { + this.Promise = require('bluebird'); + callback(); + }, + + 'resolve': function(test) { + var promisified = this.Promise.promisify(function(argument, callback) { + setTimeout(function () { + callback(null, argument + " resolved"); + }, 15); + }); + async.asyncify(promisified)("argument", function (err, value) { + if (err) { + return test.done(new Error(err)); + } + test.ok(value === "argument resolved"); + test.done(); + }); + }, + + 'reject': function(test) { + var promisified = this.Promise.promisify(function(argument, callback) { + callback("argument rejected"); + }); + async.asyncify(promisified)("argument", function (err) { + test.ok(err); + test.ok(err.message === "argument rejected"); + test.done(); + }); + } + }, + 'es6-promise': { 'setUp': function (callback) { this.Promise = require('es6-promise').Promise; |