Skip to content

Commit e573c99

Browse files
BridgeARtargos
authored andcommitted
assert: fix assert.fail() stack
This makes sure the error message visible in the error stack created when using `assert.fail()` without any arguments or the message set to `undefined` or `null` as only argument. That was masked before due to other changes. PR-URL: #27525 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
1 parent 678b3be commit e573c99

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

lib/assert.js

+6-8
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,10 @@ function innerFail(obj) {
9292
function fail(actual, expected, message, operator, stackStartFn) {
9393
const argsLen = arguments.length;
9494

95-
let internalMessage;
96-
if (argsLen === 0) {
97-
internalMessage = 'Failed';
95+
let internalMessage = false;
96+
if (actual == null && argsLen <= 1) {
97+
internalMessage = true;
98+
message = 'Failed';
9899
} else if (argsLen === 1) {
99100
message = actual;
100101
actual = undefined;
@@ -118,14 +119,11 @@ function fail(actual, expected, message, operator, stackStartFn) {
118119
actual,
119120
expected,
120121
operator: operator === undefined ? 'fail' : operator,
121-
stackStartFn: stackStartFn || fail
122+
stackStartFn: stackStartFn || fail,
123+
message
122124
};
123-
if (message !== undefined) {
124-
errArgs.message = message;
125-
}
126125
const err = new AssertionError(errArgs);
127126
if (internalMessage) {
128-
err.message = internalMessage;
129127
err.generatedMessage = true;
130128
}
131129
throw err;

test/parallel/test-assert-fail.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ assert.throws(
1313
operator: 'fail',
1414
actual: undefined,
1515
expected: undefined,
16-
generatedMessage: true
16+
generatedMessage: true,
17+
stack: /Failed/
1718
}
1819
);
1920

0 commit comments

Comments
 (0)