assert: make actual
and expected
getters
The `actual` and `expected` properties on an instance of `AssertionError` is now a getter to prevent inspecting these when inspecting the error. These values will be visible in the error message and showing them otherwise would decrease the readability of the error. PR-URL: https://github.com/nodejs/node/pull/25250 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
81b25eac21
commit
dfaa61fa18
@ -395,6 +395,14 @@ class AssertionError extends Error {
|
|||||||
this.operator = operator;
|
this.operator = operator;
|
||||||
Error.captureStackTrace(this, stackStartFn);
|
Error.captureStackTrace(this, stackStartFn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[inspect.custom](recurseTimes, ctx) {
|
||||||
|
// This limits the `actual` and `expected` property default inspection to
|
||||||
|
// the minimum depth. Otherwise those values would be too verbose compared
|
||||||
|
// to the actual error message which contains a combined view of these two
|
||||||
|
// input values.
|
||||||
|
return inspect(this, { ...ctx, customInspect: false, depth: 0 });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -1139,3 +1139,14 @@ assert.throws(
|
|||||||
'{\n a: true\n}\n'
|
'{\n a: true\n}\n'
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
{
|
||||||
|
let threw = false;
|
||||||
|
try {
|
||||||
|
assert.deepStrictEqual(Array(100).fill(1), 'foobar');
|
||||||
|
} catch (err) {
|
||||||
|
threw = true;
|
||||||
|
assert(/actual: \[Array],\n expected: 'foobar',/.test(inspect(err)));
|
||||||
|
}
|
||||||
|
assert(threw);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user