|
@ -4,32 +4,34 @@ const common = require('../../common'); |
|
|
const test_promise = require(`./build/${common.buildType}/test_promise`); |
|
|
const test_promise = require(`./build/${common.buildType}/test_promise`); |
|
|
const assert = require('assert'); |
|
|
const assert = require('assert'); |
|
|
|
|
|
|
|
|
let expected_result, promise; |
|
|
|
|
|
|
|
|
|
|
|
// A resolution
|
|
|
// A resolution
|
|
|
expected_result = 42; |
|
|
{ |
|
|
promise = test_promise.createPromise(); |
|
|
const expected_result = 42; |
|
|
promise.then( |
|
|
const promise = test_promise.createPromise(); |
|
|
common.mustCall(function(result) { |
|
|
promise.then( |
|
|
assert.strictEqual(result, expected_result, |
|
|
common.mustCall(function(result) { |
|
|
'promise resolved as expected'); |
|
|
assert.strictEqual(result, expected_result, |
|
|
}), |
|
|
`promise resolved as expected, received ${result}`); |
|
|
common.mustNotCall()); |
|
|
}), |
|
|
test_promise.concludeCurrentPromise(expected_result, true); |
|
|
common.mustNotCall()); |
|
|
|
|
|
test_promise.concludeCurrentPromise(expected_result, true); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// A rejection
|
|
|
// A rejection
|
|
|
expected_result = 'It\'s not you, it\'s me.'; |
|
|
{ |
|
|
promise = test_promise.createPromise(); |
|
|
const expected_result = 'It\'s not you, it\'s me.'; |
|
|
promise.then( |
|
|
const promise = test_promise.createPromise(); |
|
|
common.mustNotCall(), |
|
|
promise.then( |
|
|
common.mustCall(function(result) { |
|
|
common.mustNotCall(), |
|
|
assert.strictEqual(result, expected_result, |
|
|
common.mustCall(function(result) { |
|
|
'promise rejected as expected'); |
|
|
assert.strictEqual(result, expected_result, |
|
|
})); |
|
|
`promise rejected as expected, received ${result}`); |
|
|
test_promise.concludeCurrentPromise(expected_result, false); |
|
|
})); |
|
|
|
|
|
test_promise.concludeCurrentPromise(expected_result, false); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// Chaining
|
|
|
// Chaining
|
|
|
promise = test_promise.createPromise(); |
|
|
const promise = test_promise.createPromise(); |
|
|
promise.then( |
|
|
promise.then( |
|
|
common.mustCall(function(result) { |
|
|
common.mustCall(function(result) { |
|
|
assert.strictEqual(result, 'chained answer', |
|
|
assert.strictEqual(result, 'chained answer', |
|
@ -38,23 +40,10 @@ promise.then( |
|
|
common.mustNotCall()); |
|
|
common.mustNotCall()); |
|
|
test_promise.concludeCurrentPromise(Promise.resolve('chained answer'), true); |
|
|
test_promise.concludeCurrentPromise(Promise.resolve('chained answer'), true); |
|
|
|
|
|
|
|
|
assert.strictEqual(test_promise.isPromise(promise), true, |
|
|
assert.strictEqual(test_promise.isPromise(promise), true); |
|
|
'natively created promise is recognized as a promise'); |
|
|
assert.strictEqual(test_promise.isPromise(Promise.reject(-1)), true); |
|
|
|
|
|
assert.strictEqual(test_promise.isPromise(2.4), false); |
|
|
assert.strictEqual(test_promise.isPromise(Promise.reject(-1)), true, |
|
|
assert.strictEqual(test_promise.isPromise('I promise!'), false); |
|
|
'Promise created with JS is recognized as a promise'); |
|
|
assert.strictEqual(test_promise.isPromise(undefined), false); |
|
|
|
|
|
assert.strictEqual(test_promise.isPromise(null), false); |
|
|
assert.strictEqual(test_promise.isPromise(2.4), false, |
|
|
assert.strictEqual(test_promise.isPromise({}), false); |
|
|
'Number is recognized as not a promise'); |
|
|
|
|
|
|
|
|
|
|
|
assert.strictEqual(test_promise.isPromise('I promise!'), false, |
|
|
|
|
|
'String is recognized as not a promise'); |
|
|
|
|
|
|
|
|
|
|
|
assert.strictEqual(test_promise.isPromise(undefined), false, |
|
|
|
|
|
'undefined is recognized as not a promise'); |
|
|
|
|
|
|
|
|
|
|
|
assert.strictEqual(test_promise.isPromise(null), false, |
|
|
|
|
|
'null is recognized as not a promise'); |
|
|
|
|
|
|
|
|
|
|
|
assert.strictEqual(test_promise.isPromise({}), false, |
|
|
|
|
|
'an object is recognized as not a promise'); |
|
|
|
|
|