assert: add default operator to assert.fail()
This makes sure `assert.fail()` contains an operator instead of being undefined. On top of that it also fixes the `err.generatedMessage` property. Before, it was not always set correct. PR-URL: https://github.com/nodejs/node/pull/22694 Reviewed-By: John-David Dalton <john.david.dalton@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
This commit is contained in:
parent
cb3d6d5113
commit
eee5adfab5
@ -87,8 +87,9 @@ function innerFail(obj) {
|
||||
function fail(actual, expected, message, operator, stackStartFn) {
|
||||
const argsLen = arguments.length;
|
||||
|
||||
let internalMessage;
|
||||
if (argsLen === 0) {
|
||||
message = 'Failed';
|
||||
internalMessage = 'Failed';
|
||||
} else if (argsLen === 1) {
|
||||
message = actual;
|
||||
actual = undefined;
|
||||
@ -106,13 +107,23 @@ function fail(actual, expected, message, operator, stackStartFn) {
|
||||
operator = '!=';
|
||||
}
|
||||
|
||||
innerFail({
|
||||
if (message instanceof Error) throw message;
|
||||
|
||||
const errArgs = {
|
||||
actual,
|
||||
expected,
|
||||
message,
|
||||
operator,
|
||||
operator: operator === undefined ? 'fail' : operator,
|
||||
stackStartFn: stackStartFn || fail
|
||||
});
|
||||
};
|
||||
if (message !== undefined) {
|
||||
errArgs.message = message;
|
||||
}
|
||||
const err = new AssertionError(errArgs);
|
||||
if (internalMessage) {
|
||||
err.message = internalMessage;
|
||||
err.generatedMessage = true;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
|
||||
assert.fail = fail;
|
||||
|
@ -19,7 +19,8 @@ assert.throws(() => {
|
||||
message: '\'first\' != \'second\'',
|
||||
operator: '!=',
|
||||
actual: 'first',
|
||||
expected: 'second'
|
||||
expected: 'second',
|
||||
generatedMessage: true
|
||||
});
|
||||
|
||||
// Three args
|
||||
@ -29,9 +30,10 @@ assert.throws(() => {
|
||||
code: 'ERR_ASSERTION',
|
||||
name: 'AssertionError [ERR_ASSERTION]',
|
||||
message: 'another custom message',
|
||||
operator: undefined,
|
||||
operator: 'fail',
|
||||
actual: 'ignored',
|
||||
expected: 'ignored'
|
||||
expected: 'ignored',
|
||||
generatedMessage: false
|
||||
});
|
||||
|
||||
// Three args with custom Error
|
||||
|
@ -10,9 +10,10 @@ assert.throws(
|
||||
code: 'ERR_ASSERTION',
|
||||
name: 'AssertionError [ERR_ASSERTION]',
|
||||
message: 'Failed',
|
||||
operator: undefined,
|
||||
operator: 'fail',
|
||||
actual: undefined,
|
||||
expected: undefined
|
||||
expected: undefined,
|
||||
generatedMessage: true
|
||||
}
|
||||
);
|
||||
|
||||
@ -23,9 +24,10 @@ assert.throws(() => {
|
||||
code: 'ERR_ASSERTION',
|
||||
name: 'AssertionError [ERR_ASSERTION]',
|
||||
message: 'custom message',
|
||||
operator: undefined,
|
||||
operator: 'fail',
|
||||
actual: undefined,
|
||||
expected: undefined
|
||||
expected: undefined,
|
||||
generatedMessage: false
|
||||
});
|
||||
|
||||
// One arg = Error
|
||||
|
Loading…
x
Reference in New Issue
Block a user