diff --git a/lib/internal/assert.js b/lib/internal/assert.js index 29769fc5617b95..4e059db6b9d478 100644 --- a/lib/internal/assert.js +++ b/lib/internal/assert.js @@ -395,6 +395,14 @@ class AssertionError extends Error { this.operator = operator; 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 = { diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index db00ed2836327f..bf2da0b5ddb488 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -1139,3 +1139,14 @@ assert.throws( '{\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); +}