test: validate 'expected' argument to mustCall()
instead of silently overwriting invalid values with the default PR-URL: https://github.com/nodejs/node/pull/10692 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michal Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
parent
005213b43d
commit
762a303e1f
@ -424,7 +424,10 @@ function runCallChecks(exitCode) {
|
|||||||
|
|
||||||
|
|
||||||
exports.mustCall = function(fn, expected) {
|
exports.mustCall = function(fn, expected) {
|
||||||
if (typeof expected !== 'number') expected = 1;
|
if (expected === undefined)
|
||||||
|
expected = 1;
|
||||||
|
else if (typeof expected !== 'number')
|
||||||
|
throw new TypeError(`Invalid expected value: ${expected}`);
|
||||||
|
|
||||||
const context = {
|
const context = {
|
||||||
expected: expected,
|
expected: expected,
|
||||||
|
@ -5,3 +5,11 @@ const assert = require('assert');
|
|||||||
common.globalCheck = false;
|
common.globalCheck = false;
|
||||||
global.gc = 42; // Not a valid global unless --expose_gc is set.
|
global.gc = 42; // Not a valid global unless --expose_gc is set.
|
||||||
assert.deepStrictEqual(common.leakedGlobals(), ['gc']);
|
assert.deepStrictEqual(common.leakedGlobals(), ['gc']);
|
||||||
|
|
||||||
|
assert.throws(function() {
|
||||||
|
common.mustCall(function() {}, 'foo');
|
||||||
|
}, /^TypeError: Invalid expected value: foo$/);
|
||||||
|
|
||||||
|
assert.throws(function() {
|
||||||
|
common.mustCall(function() {}, /foo/);
|
||||||
|
}, /^TypeError: Invalid expected value: \/foo\/$/);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user