Browse Source

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>
v9.x-staging
Kinnan Kwok 7 years ago
committed by Refael Ackermann
parent
commit
84579b1d7d
No known key found for this signature in database GPG Key ID: CD704BD80FDDDB64
  1. 71
      test/addons-napi/test_promise/test.js

71
test/addons-napi/test_promise/test.js

@ -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');

Loading…
Cancel
Save