summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAydar Zartdinov <zartdinov@gmail.com>2015-07-09 15:07:06 +0300
committerAydar Zartdinov <zartdinov@gmail.com>2015-07-09 15:07:06 +0300
commitedee839eb23488f0e65376d43a49b68abfb61b67 (patch)
treea051f190d36f54197d607f8970f79fb0d4bc11b3
parent479d36cf6ee1d6abfe3d2cf7da44e4d85de711be (diff)
downloadasync-edee839eb23488f0e65376d43a49b68abfb61b67.tar.gz
don't repeat yourself (DRY)
-rwxr-xr-xtest/test-async.js135
1 files changed, 32 insertions, 103 deletions
diff --git a/test/test-async.js b/test/test-async.js
index ebde554..62e7e47 100755
--- a/test/test-async.js
+++ b/test/test-async.js
@@ -4269,110 +4269,39 @@ exports['asyncify'] = {
}
},
- 'promisified by 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("should not get an error here"));
- }
- 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();
- });
- }
- },
-
- 'promisified by es6-promise': {
- 'setUp': function (callback) {
- this.Promise = require('es6-promise').Promise;
- callback();
- },
-
- 'resolve': function(test) {
- var promisified = function(argument) {
- return new this.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 this.Promise(function (resolve, reject) {
- reject(argument + " rejected");
- });
- };
- async.asyncify(promisified)("argument", function (err) {
- test.ok(err);
- test.ok(err.message === "argument rejected");
- test.done();
- });
- }
- },
-
- 'promisified by rsvp': {
- 'setUp': function (callback) {
- this.Promise = require('rsvp').Promise;
- callback();
- },
-
- 'resolve': function(test) {
- var promisified = function(argument) {
- return new this.Promise(function (resolve) {
- setTimeout(function () {
- resolve(argument + " resolved");
- }, 15);
+ 'promisified': ['bluebird', 'es6-promise', 'rsvp'].reduce(function(promises, name) {
+ var Promise = require(name).Promise;
+ promises[name] = {
+ 'resolve': function(test) {
+ var promisified = function(argument) {
+ return new this.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();
});
- };
- 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 this.Promise(function (resolve, reject) {
- reject(argument + " rejected");
+ 'reject': function(test) {
+ var promisified = function(argument) {
+ return new this.Promise(function (resolve, reject) {
+ reject(argument + " rejected");
+ });
+ };
+ async.asyncify(promisified)("argument", function (err) {
+ test.ok(err);
+ test.ok(err.message === "argument rejected");
+ test.done();
});
- };
- async.asyncify(promisified)("argument", function (err) {
- test.ok(err);
- test.ok(err.message === "argument rejected");
- test.done();
- });
- }
- }
+ }
+ };
+ return promises;
+ }, {})
};