78 lines
3.1 KiB
JavaScript
78 lines
3.1 KiB
JavaScript
"use strict";
|
|
|
|
var adapter = global.adapter;
|
|
var resolved = adapter.resolved;
|
|
var rejected = adapter.rejected;
|
|
|
|
var dummy = { dummy: "dummy" }; // we fulfill or reject with this when we don't intend to test against it
|
|
|
|
describe("2.2.1: Both `onFulfilled` and `onRejected` are optional arguments.", function () {
|
|
describe("2.2.1.1: If `onFulfilled` is not a function, it must be ignored.", function () {
|
|
describe("applied to a directly-rejected promise", function () {
|
|
function testNonFunction(nonFunction, stringRepresentation) {
|
|
specify("`onFulfilled` is " + stringRepresentation, function (done) {
|
|
rejected(dummy).then(nonFunction, function () {
|
|
done();
|
|
});
|
|
});
|
|
}
|
|
|
|
testNonFunction(undefined, "`undefined`");
|
|
testNonFunction(null, "`null`");
|
|
testNonFunction(false, "`false`");
|
|
testNonFunction(5, "`5`");
|
|
testNonFunction({}, "an object");
|
|
});
|
|
|
|
describe("applied to a promise rejected and then chained off of", function () {
|
|
function testNonFunction(nonFunction, stringRepresentation) {
|
|
specify("`onFulfilled` is " + stringRepresentation, function (done) {
|
|
rejected(dummy).then(function () { }, undefined).then(nonFunction, function () {
|
|
done();
|
|
});
|
|
});
|
|
}
|
|
|
|
testNonFunction(undefined, "`undefined`");
|
|
testNonFunction(null, "`null`");
|
|
testNonFunction(false, "`false`");
|
|
testNonFunction(5, "`5`");
|
|
testNonFunction({}, "an object");
|
|
});
|
|
});
|
|
|
|
describe("2.2.1.2: If `onRejected` is not a function, it must be ignored.", function () {
|
|
describe("applied to a directly-fulfilled promise", function () {
|
|
function testNonFunction(nonFunction, stringRepresentation) {
|
|
specify("`onRejected` is " + stringRepresentation, function (done) {
|
|
resolved(dummy).then(function () {
|
|
done();
|
|
}, nonFunction);
|
|
});
|
|
}
|
|
|
|
testNonFunction(undefined, "`undefined`");
|
|
testNonFunction(null, "`null`");
|
|
testNonFunction(false, "`false`");
|
|
testNonFunction(5, "`5`");
|
|
testNonFunction({}, "an object");
|
|
});
|
|
|
|
describe("applied to a promise fulfilled and then chained off of", function () {
|
|
function testNonFunction(nonFunction, stringRepresentation) {
|
|
specify("`onFulfilled` is " + stringRepresentation, function (done) {
|
|
resolved(dummy).then(undefined, function () { }).then(function () {
|
|
done();
|
|
}, nonFunction);
|
|
});
|
|
}
|
|
|
|
testNonFunction(undefined, "`undefined`");
|
|
testNonFunction(null, "`null`");
|
|
testNonFunction(false, "`false`");
|
|
testNonFunction(5, "`5`");
|
|
testNonFunction({}, "an object");
|
|
});
|
|
});
|
|
});
|