diff --git a/frontend/src/lib/birth-time-journey-adapters.ts b/frontend/src/lib/birth-time-journey-adapters.ts index 9697ef09..b7ae47fb 100644 --- a/frontend/src/lib/birth-time-journey-adapters.ts +++ b/frontend/src/lib/birth-time-journey-adapters.ts @@ -13,7 +13,7 @@ import type { } from "./birth-time-journey-service.ts"; const profileSchema = z.object({ - birth_date: z.string(), + birth_date: z.union([z.string(), z.date().transform((value) => value.toISOString().slice(0, 10))]), reported_birth_time: z.string().nullable().optional(), birth_time_source: z.enum([ "hospital_record", diff --git a/frontend/tests/birth-time-journey-adapters.test.ts b/frontend/tests/birth-time-journey-adapters.test.ts index ad16a7fb..f25e0194 100644 --- a/frontend/tests/birth-time-journey-adapters.test.ts +++ b/frontend/tests/birth-time-journey-adapters.test.ts @@ -30,6 +30,19 @@ test("birth time profile adapter parses an exact hospital declaration", () => { } }); +test("birth time profile adapter normalizes PostgreSQL date values", () => { + const assessment = parseBirthTimeProfile({ + birth_date: new Date("1993-04-17T00:00:00.000Z"), + reported_birth_time: "08:16:00", + birth_time_source: "hospital_record", + uncertainty_before_minutes: 2, + uncertainty_after_minutes: 2, + ...coordinates, + }); + + assert.equal(assessment.date, "1993-04-17"); +}); + test("birth time profile adapter parses a period without inventing a time", () => { const assessment = parseBirthTimeProfile({ birth_date: "1993-04-17",