test: make handling of noWarnCode stricter
This change requires all expected warnings to be specified along with their respective code and will raise an error if the code does not match. This also kind of fixes the behavior when the expected warning code was noWarnCode and there is an actual warning code. PR-URL: https://github.com/nodejs/node/pull/21075 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
5a6b1975d5
commit
41843e23f2
@ -589,7 +589,7 @@ exports.isAlive = function isAlive(pid) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.noWarnCode = 'no_expected_warning_code';
|
exports.noWarnCode = undefined;
|
||||||
|
|
||||||
function expectWarning(name, expected) {
|
function expectWarning(name, expected) {
|
||||||
const map = new Map(expected);
|
const map = new Map(expected);
|
||||||
@ -598,14 +598,7 @@ function expectWarning(name, expected) {
|
|||||||
assert.ok(map.has(warning.message),
|
assert.ok(map.has(warning.message),
|
||||||
`unexpected error message: "${warning.message}"`);
|
`unexpected error message: "${warning.message}"`);
|
||||||
const code = map.get(warning.message);
|
const code = map.get(warning.message);
|
||||||
if (code === undefined) {
|
assert.strictEqual(warning.code, code);
|
||||||
throw new Error('An error code must be specified or use ' +
|
|
||||||
'common.noWarnCode if there is no error code. The error ' +
|
|
||||||
`code for this warning was ${warning.code}`);
|
|
||||||
}
|
|
||||||
if (code !== exports.noWarnCode) {
|
|
||||||
assert.strictEqual(warning.code, code);
|
|
||||||
}
|
|
||||||
// Remove a warning message after it is seen so that we guarantee that we
|
// Remove a warning message after it is seen so that we guarantee that we
|
||||||
// get each message only once.
|
// get each message only once.
|
||||||
map.delete(expected);
|
map.delete(expected);
|
||||||
|
@ -6,7 +6,7 @@ const expectedDeprecationWarning = ['Unhandled promise rejections are ' +
|
|||||||
'deprecated. In the future, promise ' +
|
'deprecated. In the future, promise ' +
|
||||||
'rejections that are not handled will ' +
|
'rejections that are not handled will ' +
|
||||||
'terminate the Node.js process with a ' +
|
'terminate the Node.js process with a ' +
|
||||||
'non-zero exit code.', common.noWarnCode];
|
'non-zero exit code.', 'DEP0018'];
|
||||||
const expectedPromiseWarning = ['Unhandled promise rejection. ' +
|
const expectedPromiseWarning = ['Unhandled promise rejection. ' +
|
||||||
'This error originated either by throwing ' +
|
'This error originated either by throwing ' +
|
||||||
'inside of an async function without a catch ' +
|
'inside of an async function without a catch ' +
|
||||||
|
@ -142,10 +142,10 @@ assert.strictEqual(util.isFunction(), false);
|
|||||||
assert.strictEqual(util.isFunction('string'), false);
|
assert.strictEqual(util.isFunction('string'), false);
|
||||||
|
|
||||||
common.expectWarning('DeprecationWarning', [
|
common.expectWarning('DeprecationWarning', [
|
||||||
['util.print is deprecated. Use console.log instead.', common.noWarnCode],
|
['util.print is deprecated. Use console.log instead.', 'DEP0026'],
|
||||||
['util.puts is deprecated. Use console.log instead.', common.noWarnCode],
|
['util.puts is deprecated. Use console.log instead.', 'DEP0027'],
|
||||||
['util.debug is deprecated. Use console.error instead.', common.noWarnCode],
|
['util.debug is deprecated. Use console.error instead.', 'DEP0028'],
|
||||||
['util.error is deprecated. Use console.error instead.', common.noWarnCode]
|
['util.error is deprecated. Use console.error instead.', 'DEP0029']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
util.print('test');
|
util.print('test');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user