diff --git a/workers/sentry/src/utils/converter.ts b/workers/sentry/src/utils/converter.ts index 916f158c..ba7f6eb6 100644 --- a/workers/sentry/src/utils/converter.ts +++ b/workers/sentry/src/utils/converter.ts @@ -54,7 +54,13 @@ function flattenObject(obj: unknown, prefix = ''): string[] { * @param eventPayload - Sentry event payload */ export function composeTitle(eventPayload: SentryEvent): string { - return `${eventPayload.exception?.values?.[0]?.type || 'Unknown'}: ${eventPayload.exception?.values?.[0]?.value || ''}`; + const exception = eventPayload.exception?.values?.[0]; + + if (exception) { + return `${exception.type || 'Unknown'}: ${exception.value || ''}`; + } + + return eventPayload.message || 'Unknown: '; } /** diff --git a/workers/sentry/tests/converter.test.ts b/workers/sentry/tests/converter.test.ts index 7c630c69..17517150 100644 --- a/workers/sentry/tests/converter.test.ts +++ b/workers/sentry/tests/converter.test.ts @@ -21,6 +21,28 @@ describe('converter utils', () => { expect(composeTitle(event)).toBe('Unknown: '); }); + + it('should compose title from message if exception is missing', () => { + const event: SentryEvent = { + message: 'message' + }; + + expect(composeTitle(event)).toBe('message'); + }); + + it('should compose title from exception type and value even if message is present', () => { + const event: SentryEvent = { + exception: { + values: [ { + type: 'Error', + value: 'Something went wrong', + } ], + }, + message: 'message' + }; + + expect(composeTitle(event)).toBe('Error: Something went wrong'); + }); }); describe('composeBacktrace()', () => { diff --git a/workers/sentry/tests/index.test.ts b/workers/sentry/tests/index.test.ts index 7d964c1b..6e8f34e2 100644 --- a/workers/sentry/tests/index.test.ts +++ b/workers/sentry/tests/index.test.ts @@ -304,7 +304,7 @@ describe('SentryEventWorker', () => { }, }, catcherVersion: '1.0.1', - title: 'Unknown: ', + title: 'Test timestamp', type: 'error', }, }));