From f2a1e8cec88fa408875ad0abf4d51b9ffaa7f1af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Thu, 21 May 2026 17:55:11 +0200 Subject: [PATCH] test(dashboard): update Suspense fallback pin to the placeholder-div contract v1.4.41 W-FRONTEND-FACTORY (UX M1) swapped the tile-strip Suspense fallback from `null` to an `aria-hidden` placeholder div that mirrors the trend-card chrome, preventing CLS when a future RSC hoist makes the tile body suspend. The literal regex pin in the boundary test was not updated alongside, leaving a red on develop tip. Updates the regex to match the new structural contract and refreshes the surrounding comment so future contributors see why the fallback is no longer `null`. --- .../dashboard-suspense-boundaries.test.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/app/__tests__/dashboard-suspense-boundaries.test.ts b/src/app/__tests__/dashboard-suspense-boundaries.test.ts index 8b3f03e47..aa1a62d25 100644 --- a/src/app/__tests__/dashboard-suspense-boundaries.test.ts +++ b/src/app/__tests__/dashboard-suspense-boundaries.test.ts @@ -47,15 +47,16 @@ describe("v1.4.40 — dashboard per-cell Suspense boundaries", () => { ); }); - it("wraps each tile-strip cell in a `` boundary", () => { + it("wraps each tile-strip cell in a `` boundary with a layout-stable placeholder", () => { const src = load(PAGE_PATH); - // `{entry.node}` — the tile - // body is synchronous today so a `null` fallback never paints, - // but the boundary primes the row for a future RSC hoist of any - // tile slot. Pinning the literal keeps the structural contract - // visible in CI. + // v1.4.41 W-FRONTEND-FACTORY (UX M1) swapped the prior `null` + // fallback for an `aria-hidden` placeholder div that mirrors the + // trend-card chrome. The tile body is synchronous today so the + // fallback rarely paints, but a future RSC hoist of any tile slot + // would otherwise leave the grid track empty and trigger CLS as + // the cell paints in. The structural pin guards the contract. expect(src).toMatch( - /\s*\{entry\.node\}\s*<\/Suspense>/, + /\s*\{entry\.node\}\s*<\/Suspense>/, ); });