style: apply prettier across the tree

One-shot prettier pass so the new format:check gate starts from a clean
baseline. Formatting only — no behaviour change. Generator-owned and
vendored artifacts stay untouched via .prettierignore.
This commit is contained in:
Marc-André Bombeck committed 2026-06-19 22:20:31 +02:00
1 parent b3fea2ef59
commit 1f4ba5939d
1000 files changed
+12130 -8385

No files matched your search

+3 -1
View File
@@ -243,7 +243,9 @@ test.describe("Coach guided clarifying questions", () => {
await expect(current).toHaveCount(0);
// Settling the offer (decline via ✕) releases the next question.
await adopt.locator('[data-slot="coach-self-context-adopt-dismiss"]').click();
await adopt
.locator('[data-slot="coach-self-context-adopt-dismiss"]')
.click();
await expect(current).toContainText(QUESTIONS[1], { timeout: 10_000 });
await expect(
current.locator('[data-slot="coach-guided-progress"]'),
+6 -1
View File
@@ -114,7 +114,12 @@ test.describe("authenticated dashboard render", () => {
const types = (url.searchParams.get("types") ?? "WEIGHT").split(",");
const series: Record<
string,
Array<{ type: string; value: number; measuredAt: string; count: number }>
Array<{
type: string;
value: number;
measuredAt: string;
count: number;
}>
> = {};
for (const type of types) {
const baseValue =
+8 -10
View File
@@ -24,9 +24,9 @@ import { STORAGE_STATE_PATH } from "./setup/global-setup";
test.describe("v1.4.28 — insights scroll restoration", () => {
test.use({ storageState: STORAGE_STATE_PATH });
test.fixme(
"returning to /insights from a sub-page lands at the top",
async ({ page }) => {
test.fixme("returning to /insights from a sub-page lands at the top", async ({
page,
}) => {
await page.goto("/insights", { waitUntil: "domcontentloaded" });
// Force the mother page tall enough that scrolling has somewhere
// to go even on a sparse seed; the rendered Insights overview
@@ -42,10 +42,7 @@ test.describe("v1.4.28 — insights scroll restoration", () => {
await page.waitForURL(/\/insights\//);
// Back to the mother page via the overview pill (pill index 0).
await page
.locator("[data-slot='insights-tab-strip-pill']")
.first()
.click();
await page.locator("[data-slot='insights-tab-strip-pill']").first().click();
await page.waitForURL(/\/insights\/?$/);
// The mother page's mount-effect deferred a `scrollTo(0)` to the
@@ -53,8 +50,7 @@ test.describe("v1.4.28 — insights scroll restoration", () => {
await page.waitForTimeout(50);
const y = await page.evaluate(() => window.scrollY);
expect(y).toBeLessThan(50);
},
);
});
test("the sticky tab strip declares touch-action pan-y so vertical swipes pass through", async ({
page,
@@ -63,7 +59,9 @@ test.describe("v1.4.28 — insights scroll restoration", () => {
const nav = page.locator("[data-slot='insights-tab-strip']");
await expect(nav).toBeVisible();
const touchAction = await nav.evaluate(
(el) => (el as HTMLElement).style.touchAction || getComputedStyle(el).touchAction,
(el) =>
(el as HTMLElement).style.touchAction ||
getComputedStyle(el).touchAction,
);
expect(touchAction).toContain("pan-y");
});
+1 -4
View File
@@ -165,10 +165,7 @@ test.describe("medication wizard — compose-mode", () => {
expect(capture.postBody).toMatchObject({
name: "Insulin",
oneShot: false,
schedules: [
{ rrule: "FREQ=DAILY" },
{ rrule: "FREQ=WEEKLY;BYDAY=WE" },
],
schedules: [{ rrule: "FREQ=DAILY" }, { rrule: "FREQ=WEEKLY;BYDAY=WE" }],
});
await expectMedicationOnList(page, {
+7 -3
View File
@@ -221,9 +221,13 @@ export async function expectStep(
// stepper landed, so it is hidden on the desktop e2e viewport. Assert the
// viewport-independent root data-attributes the dialog always carries.
const root = page.locator('[data-slot="medication-wizard-dialog"]');
await expect(root).toHaveAttribute("data-display-step", String(displayIndex), {
timeout: 5_000,
});
await expect(root).toHaveAttribute(
"data-display-step",
String(displayIndex),
{
timeout: 5_000,
},
);
if (totalSteps != null) {
await expect(root).toHaveAttribute("data-total-steps", String(totalSteps));
}
+3 -1
View File
@@ -159,7 +159,9 @@ test.describe("mobile-viewport smoke", () => {
// trimmed text. A role-based label is more stable across
// re-skins than the raw `innerText` that brittle selectors
// surfaced previously.
const ariaLabel = await btn.getAttribute("aria-label").catch(() => null);
const ariaLabel = await btn
.getAttribute("aria-label")
.catch(() => null);
const innerText = await btn.innerText().catch(() => "");
const label = ariaLabel || innerText || "(no text)";
failures.push(
+17 -21
View File
@@ -138,17 +138,17 @@ test.describe("Coach launch surfaces on insights sub-pages", () => {
// CCH-04 — the per-metric inline launch icon is retired; no header
// launcher renders on the sub-page.
await expect(
page.locator('[data-slot="coach-launch-icon"]'),
).toHaveCount(0);
await expect(page.locator('[data-slot="coach-launch-icon"]')).toHaveCount(
0,
);
// The FAB is the permanent launcher; with no unread nudge it
// renders without the unread dot.
const fab = page.locator('[data-slot="coach-fab"]');
await expect(fab).toBeVisible({ timeout: 10_000 });
await expect(
page.locator('[data-slot="coach-fab-unread"]'),
).toHaveCount(0);
await expect(page.locator('[data-slot="coach-fab-unread"]')).toHaveCount(
0,
);
});
test(`/insights/${slug} mounts the dot-free Coach FAB on Desktop Chrome`, async ({
@@ -161,15 +161,15 @@ test.describe("Coach launch surfaces on insights sub-pages", () => {
await page.goto(`/insights/${slug}`, { waitUntil: "domcontentloaded" });
await expect(
page.locator('[data-slot="coach-launch-icon"]'),
).toHaveCount(0);
await expect(page.locator('[data-slot="coach-launch-icon"]')).toHaveCount(
0,
);
const fab = page.locator('[data-slot="coach-fab"]');
await expect(fab).toBeVisible({ timeout: 10_000 });
await expect(
page.locator('[data-slot="coach-fab-unread"]'),
).toHaveCount(0);
await expect(page.locator('[data-slot="coach-fab-unread"]')).toHaveCount(
0,
);
});
}
@@ -255,9 +255,7 @@ test.describe("Coach launch surfaces on insights sub-pages", () => {
await expect(fab).toHaveAttribute("data-unread", "true", {
timeout: 10_000,
});
await expect(
page.locator('[data-slot="coach-fab-unread"]'),
).toBeVisible();
await expect(page.locator('[data-slot="coach-fab-unread"]')).toBeVisible();
await fab.click();
// v1.16.11 — the FAB opens the side drawer in place instead of
@@ -274,9 +272,7 @@ test.describe("Coach launch surfaces on insights sub-pages", () => {
// Opening the Coach counts as reading the nudge on this device —
// the dot clears and the unread flag drops off the FAB.
await expect(page.locator('[data-slot="coach-fab-unread"]')).toHaveCount(
0,
);
await expect(page.locator('[data-slot="coach-fab-unread"]')).toHaveCount(0);
await expect(fab).not.toHaveAttribute("data-unread", "true");
});
@@ -318,9 +314,9 @@ test.describe("Coach launch surfaces on insights sub-pages", () => {
// No in-panel tray opens — the click navigates to the full view.
await page.waitForURL("**/coach", { timeout: 10_000 });
await expect(
page.locator('[data-slot="coach-page"]'),
).toBeVisible({ timeout: 10_000 });
await expect(page.locator('[data-slot="coach-page"]')).toBeVisible({
timeout: 10_000,
});
await expect(
page.locator('[data-slot="coach-drawer-history-tray"]'),
).toHaveCount(0);
+1 -3
View File
@@ -148,9 +148,7 @@ test.describe("v1.4.27 — insights empty-state with metric gating", () => {
// title). Pin on the sub-page slot's h1 so we don't accidentally
// match a sidebar / nav element.
await expect(
page.locator(
'[data-slot="insights-subpage"] #insights-subpage-title',
),
page.locator('[data-slot="insights-subpage"] #insights-subpage-title'),
).toContainText(headingMatch);
});
}
+4 -4
View File
@@ -38,14 +38,14 @@ test.describe("v1.4.27 — public pages", () => {
// No bounce to the login page.
expect(page.url()).toMatch(/\/about(\?|$)/);
await expect(page.getByRole("heading", { name: /about/i }).first()).toBeVisible();
await expect(
page.getByRole("heading", { name: /about/i }).first(),
).toBeVisible();
// GeoLite2 attribution is the load-bearing reason this page exists.
await expect(page.getByText(/GeoLite2/)).toBeVisible();
await expect(page.getByText(/MaxMind/)).toBeVisible();
await expect(
page.getByText(/Attribution-ShareAlike 4\.0/i),
).toBeVisible();
await expect(page.getByText(/Attribution-ShareAlike 4\.0/i)).toBeVisible();
});
// v1.4.28 backlog: Next.js's `not-found.tsx` may return 200 or 404
+2 -6
View File
@@ -58,9 +58,7 @@ test.describe("v1.4.27 — ResponsiveSheet branch", () => {
waitUntil: "domcontentloaded",
});
const content = page.locator(
'[data-slot="responsive-sheet-content"]',
);
const content = page.locator('[data-slot="responsive-sheet-content"]');
await expect(content).toBeVisible({ timeout: 10_000 });
await expect(content).toHaveAttribute("data-variant", "sheet");
@@ -85,9 +83,7 @@ test.describe("v1.4.27 — ResponsiveSheet branch", () => {
waitUntil: "domcontentloaded",
});
const content = page.locator(
'[data-slot="responsive-sheet-content"]',
);
const content = page.locator('[data-slot="responsive-sheet-content"]');
await expect(content).toBeVisible({ timeout: 10_000 });
await expect(content).toHaveAttribute("data-variant", "dialog");
});