diff --git a/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx b/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx index 727edf38405..0590d96acc7 100644 --- a/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx +++ b/packages/atomic/src/components/common/generated-answer/generated-answer-common.tsx @@ -185,7 +185,9 @@ export class GeneratedAnswerCommon { const {title} = citation; const {i18n} = this.props.getBindings(); - return title.trim() !== '' + const normalizedTitle = (title ?? '').trim(); + + return normalizedTitle ? citation : {...citation, title: i18n.t('no-title')}; } diff --git a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts index f91c7ce9a8d..c2b7407f07e 100644 --- a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts +++ b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.spec.ts @@ -43,6 +43,21 @@ describe('generated-answer-utils', () => { expect(result.title).toBe('No title'); }); + it('should return citation with fallback title when title is missing', () => { + // @ts-expect-error Test fixture with partial mock + const citation: GeneratedAnswerCitation = { + id: 'test-2', + uri: 'https://example.com', + }; + + const result = getCitationWithTitle(citation, i18n); + + expect(result).not.toBe(citation); + expect(result.id).toBe('test-2'); + expect(result.uri).toBe('https://example.com'); + expect(result.title).toBe('No title'); + }); + it('should return citation with fallback title when title is only whitespace', () => { // @ts-expect-error Test fixture with partial mock const citation: GeneratedAnswerCitation = { diff --git a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts index ac3e7ba3db1..1b0462d02ba 100644 --- a/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts +++ b/packages/atomic/src/components/common/generated-answer/generated-answer-utils.ts @@ -10,7 +10,9 @@ export function getCitationWithTitle( i18n: i18n ): GeneratedAnswerCitation { const {title} = citation; - return title.trim() !== '' + const normalizedTitle = (title ?? '').trim(); + + return normalizedTitle !== '' ? citation : {...citation, title: i18n.t('no-title')}; }