diff --git a/src/lib/source-metadata.ts b/src/lib/source-metadata.ts index 6ddcc1265f..79359f8d02 100644 --- a/src/lib/source-metadata.ts +++ b/src/lib/source-metadata.ts @@ -17,6 +17,10 @@ export function normalizeSourceMetadata(input: unknown): ClinicalSourceMetadata return { source_kind: stringOrNull(value.source_kind), + registry_record_kind: stringOrNull(value.registry_record_kind), + registry_record_subkind: stringOrNull(value.registry_record_subkind), + registry_record_id: stringOrNull(value.registry_record_id), + registry_record_slug: stringOrNull(value.registry_record_slug), source_title: stringOrNull(value.source_title), publisher: stringOrNull(value.publisher), jurisdiction: stringOrNull(value.jurisdiction), diff --git a/tests/source-metadata.test.ts b/tests/source-metadata.test.ts index 1c5a72f7b8..3c72e48759 100644 --- a/tests/source-metadata.test.ts +++ b/tests/source-metadata.test.ts @@ -39,6 +39,24 @@ describe("source metadata helpers", () => { expect(line).toContain("Jurisdiction: Australia/WA"); }); + it("preserves registry route metadata during normalization", () => { + const metadata = normalizeSourceMetadata({ + source_kind: "registry_record", + registry_record_kind: "service", + registry_record_subkind: null, + registry_record_id: "svc-123", + registry_record_slug: "perth-adult-mental-health", + source_title: "Perth Adult Mental Health", + document_status: "current", + clinical_validation_status: "approved", + }); + + expect(metadata.registry_record_kind).toBe("service"); + expect(metadata.registry_record_subkind).toBeNull(); + expect(metadata.registry_record_id).toBe("svc-123"); + expect(metadata.registry_record_slug).toBe("perth-adult-mental-health"); + }); + it("preserves stale status labels for registry summaries", () => { const metadata = normalizeSourceMetadata({ source_kind: "registry_record",