Skip to content

Commit 055d6a6

Browse files
committed
test: test when cause is not an instance of Error
1 parent d55ba4f commit 055d6a6

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

lib/internal/assert/assertion_error.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ const {
1515
StringPrototypeSplit,
1616
} = primordials;
1717

18+
const types = require('internal/util/types');
19+
const { isNativeError } = types;
20+
1821
const { inspect } = require('internal/util/inspect');
1922
const colors = require('internal/util/colors');
2023
const { validateObject } = require('internal/validators');
@@ -50,7 +53,7 @@ function copyError(source) {
5053
if (source.cause !== undefined) {
5154
let cause = source.cause;
5255

53-
if (cause instanceof Error) {
56+
if (isNativeError(cause)) {
5457
cause = copyError(cause);
5558
}
5659

test/parallel/test-assert-deep-with-error.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,27 @@ test('Handle error causes', () => {
1313
}, { message: defaultStartMessage + ' [Error: a] {\n' +
1414
'+ [cause]: [Error: x]\n' +
1515
'- [cause]: [Error: y]\n' +
16-
' }' });
16+
' }\n' });
1717

1818
assert.throws(() => {
1919
assert.deepStrictEqual(new Error('a'), new Error('a', { cause: new Error('y') }));
2020
}, { message: defaultStartMessage + '+ [Error: a]\n' +
2121
'- [Error: a] {\n' +
2222
'- [cause]: [Error: y]\n' +
23-
'- }' });
23+
'- }\n' });
24+
25+
assert.throws(() => {
26+
assert.deepStrictEqual(new Error('a'), new Error('a', { cause: { prop: 'value' } }));
27+
}, { message: defaultStartMessage + '+ [Error: a]\n' +
28+
'- [Error: a] {\n' +
29+
'- [cause]: {\n' +
30+
'- prop: \'value\'\n' +
31+
'- }\n' +
32+
'- }\n' });
2433

2534
assert.notDeepStrictEqual(new Error('a', { cause: new Error('x') }), new Error('a', { cause: new Error('y') }));
35+
assert.notDeepStrictEqual(
36+
new Error('a', { cause: { prop: 'value' } }),
37+
new Error('a', { cause: { prop: 'a different value' } })
38+
);
2639
});

0 commit comments

Comments
 (0)