Browse Source

test: refactor common.expectsError()

* Report values in assertions.
* Strict equality match if message is a string.
* instanceof/typeof instead of deprecated util.isRegExp()

PR-URL: https://github.com/nodejs/node/pull/11381
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
v6
Rich Trott 8 years ago
parent
commit
749fac0bf6
  1. 12
      test/common.js
  2. 4
      test/parallel/test-internal-errors.js

12
test/common.js

@ -629,11 +629,13 @@ exports.expectsError = function expectsError(code, type, message) {
return function(error) {
assert.strictEqual(error.code, code);
if (type !== undefined)
assert(error instanceof type, 'error is not the expected type');
if (message !== undefined) {
if (!util.isRegExp(message))
message = new RegExp(String(message));
assert(message.test(error.message), 'error.message does not match');
assert(error instanceof type,
`${error} is not the expected type ${type}`);
if (message instanceof RegExp) {
assert(message.test(error.message),
`${error.message} does not match ${message}`);
} else if (typeof message === 'string') {
assert.strictEqual(error.message, message);
}
return true;
};

4
test/parallel/test-internal-errors.js

@ -107,10 +107,10 @@ assert.throws(() => {
assert.throws(() => {
throw new errors.TypeError('TEST_ERROR_1', 'a');
}, common.expectsError('TEST_ERROR_1', RangeError));
}, /^AssertionError: error is not the expected type/);
}, /^AssertionError: .+ is not the expected type \S/);
assert.throws(() => {
assert.throws(() => {
throw new errors.TypeError('TEST_ERROR_1', 'a');
}, common.expectsError('TEST_ERROR_1', TypeError, /^Error for testing 2/));
}, /^AssertionError: error.message does not match/);
}, /AssertionError: .+ does not match \S/);

Loading…
Cancel
Save