diff options
Diffstat (limited to 'test/test-async.js')
-rwxr-xr-x | test/test-async.js | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/test/test-async.js b/test/test-async.js index 7bc46e6..fdb949b 100755 --- a/test/test-async.js +++ b/test/test-async.js @@ -4267,5 +4267,53 @@ exports['asyncify'] = { test.ok(e.message === "callback error"); test.done(); } - } + }, + + 'promisified': [ + 'native-promise-only', + 'bluebird', + 'es6-promise', + 'rsvp' + ].reduce(function(promises, name) { + if (isBrowser()) { + // node only test + return; + } + var Promise = require(name); + if (typeof Promise.Promise === 'function') { + Promise = Promise.Promise; + } + promises[name] = { + 'resolve': function(test) { + var promisified = function(argument) { + return new Promise(function (resolve) { + setTimeout(function () { + resolve(argument + " resolved"); + }, 15); + }); + }; + async.asyncify(promisified)("argument", function (err, value) { + if (err) { + return test.done(new Error("should not get an error here")); + } + test.ok(value === "argument resolved"); + test.done(); + }); + }, + + 'reject': function(test) { + var promisified = function(argument) { + return new Promise(function (resolve, reject) { + reject(argument + " rejected"); + }); + }; + async.asyncify(promisified)("argument", function (err) { + test.ok(err); + test.ok(err.message === "argument rejected"); + test.done(); + }); + } + }; + return promises; + }, {}) }; |