123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- var tape = require("tape");
-
- var asPromise = require("..");
-
- tape.test("aspromise", function(test) {
-
- test.test(this.name + " - resolve", function(test) {
-
- function fn(arg1, arg2, callback) {
- test.equal(this, ctx, "function should be called with this = ctx");
- test.equal(arg1, 1, "function should be called with arg1 = 1");
- test.equal(arg2, 2, "function should be called with arg2 = 2");
- callback(null, arg2);
- }
-
- var ctx = {};
-
- var promise = asPromise(fn, ctx, 1, 2);
- promise.then(function(arg2) {
- test.equal(arg2, 2, "promise should be resolved with arg2 = 2");
- test.end();
- }).catch(function(err) {
- test.fail("promise should not be rejected (" + err + ")");
- });
- });
-
- test.test(this.name + " - reject", function(test) {
-
- function fn(arg1, arg2, callback) {
- test.equal(this, ctx, "function should be called with this = ctx");
- test.equal(arg1, 1, "function should be called with arg1 = 1");
- test.equal(arg2, 2, "function should be called with arg2 = 2");
- callback(arg1);
- }
-
- var ctx = {};
-
- var promise = asPromise(fn, ctx, 1, 2);
- promise.then(function() {
- test.fail("promise should not be resolved");
- }).catch(function(err) {
- test.equal(err, 1, "promise should be rejected with err = 1");
- test.end();
- });
- });
-
- test.test(this.name + " - resolve twice", function(test) {
-
- function fn(arg1, arg2, callback) {
- test.equal(this, ctx, "function should be called with this = ctx");
- test.equal(arg1, 1, "function should be called with arg1 = 1");
- test.equal(arg2, 2, "function should be called with arg2 = 2");
- callback(null, arg2);
- callback(null, arg1);
- }
-
- var ctx = {};
- var count = 0;
-
- var promise = asPromise(fn, ctx, 1, 2);
- promise.then(function(arg2) {
- test.equal(arg2, 2, "promise should be resolved with arg2 = 2");
- if (++count > 1)
- test.fail("promise should not be resolved twice");
- test.end();
- }).catch(function(err) {
- test.fail("promise should not be rejected (" + err + ")");
- });
- });
-
- test.test(this.name + " - reject twice", function(test) {
-
- function fn(arg1, arg2, callback) {
- test.equal(this, ctx, "function should be called with this = ctx");
- test.equal(arg1, 1, "function should be called with arg1 = 1");
- test.equal(arg2, 2, "function should be called with arg2 = 2");
- callback(arg1);
- callback(arg2);
- }
-
- var ctx = {};
- var count = 0;
-
- var promise = asPromise(fn, ctx, 1, 2);
- promise.then(function() {
- test.fail("promise should not be resolved");
- }).catch(function(err) {
- test.equal(err, 1, "promise should be rejected with err = 1");
- if (++count > 1)
- test.fail("promise should not be rejected twice");
- test.end();
- });
- });
-
- test.test(this.name + " - reject error", function(test) {
-
- function fn(callback) {
- test.ok(arguments.length === 1 && typeof callback === "function", "function should be called with just a callback");
- throw 3;
- }
-
- var promise = asPromise(fn, null);
- promise.then(function() {
- test.fail("promise should not be resolved");
- }).catch(function(err) {
- test.equal(err, 3, "promise should be rejected with err = 3");
- test.end();
- });
- });
-
- test.test(this.name + " - reject and error", function(test) {
-
- function fn(callback) {
- callback(3);
- throw 4;
- }
-
- var count = 0;
-
- var promise = asPromise(fn, null);
- promise.then(function() {
- test.fail("promise should not be resolved");
- }).catch(function(err) {
- test.equal(err, 3, "promise should be rejected with err = 3");
- if (++count > 1)
- test.fail("promise should not be rejected twice");
- test.end();
- });
- });
- });
|