diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cfd4ae66..47d3ec5cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,12 @@ - **The Insights overview reads its metrics through a single request** instead of one per tile, so opening the page no longer fans out into a burst of concurrent reads. - **Score-band colours meet contrast on the light theme**, and the device-notification copy — including its medical disclaimer — is translated across every supported language. +## [1.9.3] — 2026-06-02 — Medication card layout polish + +### Fixed + +- **The medication cards look right again.** A recent alignment change pushed each card's action buttons to the very bottom of the cell, which left an empty gap between a shorter card's content and its buttons when it sat next to a taller card in the grid. The buttons now sit directly under the card's content again; the cards still share a height and the dose rows still line up, without the gap. + ## [1.9.2] — 2026-06-02 — Document the medication compliance endpoint ### Changed diff --git a/e2e/medications-wizard-helpers.ts b/e2e/medications-wizard-helpers.ts index eba4a9f2a..2b99cb842 100644 --- a/e2e/medications-wizard-helpers.ts +++ b/e2e/medications-wizard-helpers.ts @@ -251,10 +251,20 @@ export async function expectMedicationOnList( page: Page, { name, withNextDueChip }: { name: string; withNextDueChip: boolean }, ): Promise { + // Pin the clock to a fixed afternoon before rendering the list. The + // recurring stub schedules an 08:00–09:00 window; the card derives its + // header from the real clock, so when CI happens to run inside that + // window the card shows the "take now" (in_window) pill and the + // "Nächste Einnahme:" next-due line is correctly suppressed — making the + // chip assertion below depend on the wall-clock. A fixed afternoon puts + // the morning window in the past so the next-due line always renders. + await page.clock.setFixedTime(new Date("2026-06-04T13:00:00Z")); await page.goto("/medications", { waitUntil: "domcontentloaded" }); const main = page.locator("main"); await expect(main.getByText(name).first()).toBeVisible({ timeout: 10_000 }); if (withNextDueChip) { - await expect(main.getByText(/Nächste Einnahme:/i).first()).toBeVisible(); + await expect(main.getByText(/Nächste Einnahme:/i).first()).toBeVisible({ + timeout: 10_000, + }); } }