Skip to content

Commit

Permalink
fix: use default value when 'ErrorEvent.error' not exists (#27)
Browse files Browse the repository at this point in the history
* fix: 在资源路径不存在下error为undefined的情况

* feat: 调整默认信息文案
  • Loading branch information
zengzjie committed Dec 20, 2023
1 parent 2813763 commit 6919682
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
13 changes: 10 additions & 3 deletions src/plugins/error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,16 @@ export default class ErrorPlugin implements PageSpyPlugin {

private onUncaughtError() {
const errorHandler = (e: ErrorEvent) => {
const { message, stack } = e.error;
const errorDetail = formatErrorObj(e.error);
ErrorPlugin.sendMessage(stack || message, errorDetail);
if (e.error) {
const { message, stack } = e.error;
const errorDetail = formatErrorObj(e.error);
ErrorPlugin.sendMessage(stack || message, errorDetail);
} else {
// When the error does not exist, use default information
const defaultMessage =
'[PageSpy] An unknown error occurred and no stack trace available';
ErrorPlugin.sendMessage(defaultMessage, null);
}
};
window.addEventListener('error', errorHandler);
}
Expand Down
10 changes: 10 additions & 0 deletions tests/plugins/error.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,14 @@ describe('Error plugin', () => {
window.dispatchEvent(new Event('unhandledrejection'));
expect(errorOccupied).toHaveBeenCalledTimes(3);
});

it('Should handle error event without error object', () => {
window.dispatchEvent(new Event('error'));

expect(errorOccupied).toHaveBeenCalledTimes(3);
expect(errorOccupied).toHaveBeenCalledWith(
'[PageSpy] An unknown error occurred and no stack trace available',
null,
);
});
});

0 comments on commit 6919682

Please sign in to comment.