test: fix race condition in addon test
PR-URL: https://github.com/nodejs/node/pull/16037 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
This commit is contained in:
parent
7d974c5536
commit
84579b1d7d
@ -4,32 +4,34 @@ const common = require('../../common');
|
||||
const test_promise = require(`./build/${common.buildType}/test_promise`);
|
||||
const assert = require('assert');
|
||||
|
||||
let expected_result, promise;
|
||||
|
||||
// A resolution
|
||||
expected_result = 42;
|
||||
promise = test_promise.createPromise();
|
||||
promise.then(
|
||||
common.mustCall(function(result) {
|
||||
assert.strictEqual(result, expected_result,
|
||||
'promise resolved as expected');
|
||||
}),
|
||||
common.mustNotCall());
|
||||
test_promise.concludeCurrentPromise(expected_result, true);
|
||||
{
|
||||
const expected_result = 42;
|
||||
const promise = test_promise.createPromise();
|
||||
promise.then(
|
||||
common.mustCall(function(result) {
|
||||
assert.strictEqual(result, expected_result,
|
||||
`promise resolved as expected, received ${result}`);
|
||||
}),
|
||||
common.mustNotCall());
|
||||
test_promise.concludeCurrentPromise(expected_result, true);
|
||||
}
|
||||
|
||||
// A rejection
|
||||
expected_result = 'It\'s not you, it\'s me.';
|
||||
promise = test_promise.createPromise();
|
||||
promise.then(
|
||||
common.mustNotCall(),
|
||||
common.mustCall(function(result) {
|
||||
assert.strictEqual(result, expected_result,
|
||||
'promise rejected as expected');
|
||||
}));
|
||||
test_promise.concludeCurrentPromise(expected_result, false);
|
||||
{
|
||||
const expected_result = 'It\'s not you, it\'s me.';
|
||||
const promise = test_promise.createPromise();
|
||||
promise.then(
|
||||
common.mustNotCall(),
|
||||
common.mustCall(function(result) {
|
||||
assert.strictEqual(result, expected_result,
|
||||
`promise rejected as expected, received ${result}`);
|
||||
}));
|
||||
test_promise.concludeCurrentPromise(expected_result, false);
|
||||
}
|
||||
|
||||
// Chaining
|
||||
promise = test_promise.createPromise();
|
||||
const promise = test_promise.createPromise();
|
||||
promise.then(
|
||||
common.mustCall(function(result) {
|
||||
assert.strictEqual(result, 'chained answer',
|
||||
@ -38,23 +40,10 @@ promise.then(
|
||||
common.mustNotCall());
|
||||
test_promise.concludeCurrentPromise(Promise.resolve('chained answer'), 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,
|
||||
'Promise created with JS is recognized as a promise');
|
||||
|
||||
assert.strictEqual(test_promise.isPromise(2.4), 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');
|
||||
assert.strictEqual(test_promise.isPromise(promise), true);
|
||||
assert.strictEqual(test_promise.isPromise(Promise.reject(-1)), true);
|
||||
assert.strictEqual(test_promise.isPromise(2.4), false);
|
||||
assert.strictEqual(test_promise.isPromise('I promise!'), false);
|
||||
assert.strictEqual(test_promise.isPromise(undefined), false);
|
||||
assert.strictEqual(test_promise.isPromise(null), false);
|
||||
assert.strictEqual(test_promise.isPromise({}), false);
|
||||
|
Loading…
x
Reference in New Issue
Block a user