Skip parsing cause if it is not an Error object
This commit is contained in:
@@ -291,6 +291,26 @@ describe('ExceptionFormatter', function() {
|
|||||||
.withContext('first root cause stack frame')
|
.withContext('first root cause stack frame')
|
||||||
.toContain('ExceptionFormatterSpec.js');
|
.toContain('ExceptionFormatterSpec.js');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not throw if cause is a non Error', function() {
|
||||||
|
const formatter = new jasmineUnderTest.ExceptionFormatter();
|
||||||
|
|
||||||
|
expect(function() {
|
||||||
|
formatter.stack(
|
||||||
|
new Error('error', {
|
||||||
|
cause: function() {}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}).not.toThrowError();
|
||||||
|
|
||||||
|
expect(function() {
|
||||||
|
formatter.stack(
|
||||||
|
new Error('error', {
|
||||||
|
cause: 'another error'
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}).not.toThrowError();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ getJasmineRequireObj().ExceptionFormatter = function(j$) {
|
|||||||
lines.unshift(stackTrace.message);
|
lines.unshift(stackTrace.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error.cause) {
|
if (error.cause && error.cause instanceof Error) {
|
||||||
const substack = this.stack_(error.cause, {
|
const substack = this.stack_(error.cause, {
|
||||||
messageHandling: 'require'
|
messageHandling: 'require'
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user