Browse Source

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>
v6
Nathan Friedly 9 years ago
committed by James M Snell
parent
commit
762a303e1f
  1. 5
      test/common.js
  2. 8
      test/parallel/test-common.js

5
test/common.js

@ -424,7 +424,10 @@ function runCallChecks(exitCode) {
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 = {
expected: expected,

8
test/parallel/test-common.js

@ -5,3 +5,11 @@ const assert = require('assert');
common.globalCheck = false;
global.gc = 42; // Not a valid global unless --expose_gc is set.
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…
Cancel
Save