diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2018-04-09 00:38:41 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-04-20 00:21:33 +0200 |
commit | 7007eee6a272398054c65f2f32bdf3467a29ee9f (patch) | |
tree | 4e79e6650e57ba6d3d2a4aae5cc29a28fd21c5d0 /test/parallel/test-assert-async.js | |
parent | ad1d1057f9362558fcc76b603458374f5f5a31c5 (diff) | |
download | android-node-v8-7007eee6a272398054c65f2f32bdf3467a29ee9f.tar.gz android-node-v8-7007eee6a272398054c65f2f32bdf3467a29ee9f.tar.bz2 android-node-v8-7007eee6a272398054c65f2f32bdf3467a29ee9f.zip |
assert: validate the block return type
This makes sure the returned value when calling `block` is actually
of type promise in case `assert.rejects` or `assert.doesNotReject`
is called.
PR-URL: https://github.com/nodejs/node/pull/19886
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Diffstat (limited to 'test/parallel/test-assert-async.js')
-rw-r--r-- | test/parallel/test-assert-async.js | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/test/parallel/test-assert-async.js b/test/parallel/test-assert-async.js index 00a4fe7c72..4b3664e0cb 100644 --- a/test/parallel/test-assert-async.js +++ b/test/parallel/test-assert-async.js @@ -29,20 +29,25 @@ const promises = []; `${err.name} is not instance of AssertionError`); assert.strictEqual(err.code, 'ERR_ASSERTION'); assert.strictEqual(err.message, - 'Missing expected rejection (handler).'); + 'Missing expected rejection (mustNotCall).'); assert.strictEqual(err.operator, 'rejects'); assert.ok(!err.stack.includes('at Function.rejects')); return true; }; - let promise = assert.rejects(async () => {}, handler); - promises.push(assert.rejects(promise, handler)); + let promise = assert.rejects(async () => {}, common.mustNotCall()); + promises.push(assert.rejects(promise, common.mustCall(handler))); - promise = assert.rejects(() => {}, handler); - promises.push(assert.rejects(promise, handler)); + promise = assert.rejects(() => {}, common.mustNotCall()); + promises.push(assert.rejects(promise, { + name: 'TypeError [ERR_INVALID_RETURN_VALUE]', + code: 'ERR_INVALID_RETURN_VALUE', + message: 'Expected instance of Promise to be returned ' + + 'from the "block" function but got type undefined.' + })); - promise = assert.rejects(Promise.resolve(), handler); - promises.push(assert.rejects(promise, handler)); + promise = assert.rejects(Promise.resolve(), common.mustNotCall()); + promises.push(assert.rejects(promise, common.mustCall(handler))); } { @@ -67,7 +72,13 @@ promises.push(assert.rejects( // Check `assert.doesNotReject`. { // `assert.doesNotReject` accepts a function or a promise as first argument. - promises.push(assert.doesNotReject(() => {})); + const promise = assert.doesNotReject(() => new Map(), common.mustNotCall()); + promises.push(assert.rejects(promise, { + message: 'Expected instance of Promise to be returned ' + + 'from the "block" function but got instance of Map.', + code: 'ERR_INVALID_RETURN_VALUE', + name: 'TypeError [ERR_INVALID_RETURN_VALUE]' + })); promises.push(assert.doesNotReject(async () => {})); promises.push(assert.doesNotReject(Promise.resolve())); } @@ -93,14 +104,14 @@ promises.push(assert.rejects( const rejectingFn = async () => assert.fail(); - let promise = assert.doesNotReject(rejectingFn, handler1); - promises.push(assert.rejects(promise, handler2)); + let promise = assert.doesNotReject(rejectingFn, common.mustCall(handler1)); + promises.push(assert.rejects(promise, common.mustCall(handler2))); - promise = assert.doesNotReject(rejectingFn(), handler1); - promises.push(assert.rejects(promise, handler2)); + promise = assert.doesNotReject(rejectingFn(), common.mustCall(handler1)); + promises.push(assert.rejects(promise, common.mustCall(handler2))); promise = assert.doesNotReject(() => assert.fail(), common.mustNotCall()); - promises.push(assert.rejects(promise, handler1)); + promises.push(assert.rejects(promise, common.mustCall(handler1))); } promises.push(assert.rejects( |