summaryrefslogtreecommitdiff
path: root/test/test-async.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-async.js')
-rwxr-xr-xtest/test-async.js50
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;
+ }, {})
};