From ce9f8fe1dab9cd32245d2d55d578d7a562bf742e Mon Sep 17 00:00:00 2001 From: Jesse_Chen Date: Mon, 27 Jul 2026 11:29:12 +0800 Subject: [PATCH] fix: normalize postgres birth dates --- frontend/src/lib/birth-time-journey-adapters.ts | 2 +- frontend/tests/birth-time-journey-adapters.test.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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",