From 12982a56958e949f7480b1a036caf50ae014b681 Mon Sep 17 00:00:00 2001 From: Flea Flicker Date: Mon, 8 Jun 2026 16:52:45 +0000 Subject: [PATCH] =?UTF-8?q?docs(uat):=20add=20=C2=A75.12e=20Book=20New=20p?= =?UTF-8?q?referredTime=20formatting=20test=20cases=20(GRO-2218)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds UAT playbook coverage for the GRO-2211/GRO-2213 portal booking fix: slot buttons / confirmation show formatted UTC labels (10:00 AM) and the booking POST sends preferredTime as HH:MM:SS without the 500. Co-Authored-By: Paperclip --- UAT_PLAYBOOK.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/UAT_PLAYBOOK.md b/UAT_PLAYBOOK.md index 1e3a021..c1452e9 100644 --- a/UAT_PLAYBOOK.md +++ b/UAT_PLAYBOOK.md @@ -237,6 +237,24 @@ export const { signIn, signOut, useSession, changePassword } = authClient; > absolute `startTime` in `isUpcoming`, and hardens `parseTimeTo24Hour` against > blank/undefined input. +#### 5.12e Book New `preferredTime` Formatting (GRO-2211, GRO-2213) + +| # | Scenario | Steps | Expected | +|---|----------|-------|----------| +| TC-WEB-5.12.22 | Slot buttons show formatted label | Sign in as `uat-customer@groombook.dev`, open `Appointments`, click "Book New", select a pet and service, pick a date with availability | Each time-slot button shows a human-readable label like `10:00 AM` (UTC), never a raw ISO timestamp (e.g. not `2026-06-09T10:00:00.000Z`) | +| TC-WEB-5.12.23 | Confirmation review shows formatted label | Continue the Book New wizard to the Review step | The "Date & Time" summary and the final confirmation both display the formatted slot label (e.g. `10:00 AM`), not a raw ISO string | +| TC-WEB-5.12.24 | Booking submit succeeds (regression) | Complete the Book New wizard and submit the request | Request succeeds with no `500` / `invalid input syntax for type time` error; the booking POST sends `preferredTime` as `HH:MM:SS` (e.g. `10:00:00`); the new appointment appears in the Upcoming list | + +> **GRO-2211/GRO-2213 note:** The Book New wizard previously rendered the raw +> UTC ISO slot string as the button/confirmation label and submitted that same +> ISO value as `preferredTime`, which the API rejected with +> `invalid input syntax for type time` (HTTP 500). The fix adds shared UTC +> helpers `formatSlotLabel(slot)` (display → `10:00 AM`) and `slotToTime(slot)` +> (payload → `HH:MM:SS`) in `src/portal/sections/Appointments.tsx`, so the +> displayed label and the submitted `preferredTime` both derive from the same +> canonical UTC ISO slot. (The sibling `RescheduleFlow` `startTime` raw-ISO issue +> on a different endpoint is tracked separately and is out of scope here.) + ### 5.13 Reports UI | # | Scenario | Steps | Expected |