diff --git a/frontend/src/lib/utils/commentDeepLink.spec.ts b/frontend/src/lib/utils/commentDeepLink.spec.ts new file mode 100644 index 00000000..15c7f103 --- /dev/null +++ b/frontend/src/lib/utils/commentDeepLink.spec.ts @@ -0,0 +1,14 @@ +import { describe, it, expect } from 'vitest'; +import { buildCommentHref } from './commentDeepLink'; + +describe('buildCommentHref', () => { + it('includes both commentId and annotationId when annotationId is present', () => { + const href = buildCommentHref('doc-1', 'comment-2', 'annot-3'); + expect(href).toBe('/documents/doc-1?commentId=comment-2&annotationId=annot-3'); + }); + + it('omits annotationId when null', () => { + const href = buildCommentHref('doc-1', 'comment-2', null); + expect(href).toBe('/documents/doc-1?commentId=comment-2'); + }); +}); diff --git a/frontend/src/lib/utils/commentDeepLink.ts b/frontend/src/lib/utils/commentDeepLink.ts new file mode 100644 index 00000000..95b5ef1d --- /dev/null +++ b/frontend/src/lib/utils/commentDeepLink.ts @@ -0,0 +1,8 @@ +export function buildCommentHref( + documentId: string, + commentId: string, + annotationId: string | null +): string { + const base = `/documents/${documentId}?commentId=${commentId}`; + return annotationId ? `${base}&annotationId=${annotationId}` : base; +}