From 59a27e2ce4ea270418813bdc0e218177616ab4b2 Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Sun, 4 Oct 2026 03:47:10 +0100 Subject: [PATCH] Settle the dark theme before inspecting TrueNAS help The first phone setup screenshot caught the light-to-dark transition, while the later polling screenshot was settled. Await the actual theme animations before capture so the browser receipt represents the displayed help rather than an intermediate colour frame. Contract-Neutral: Browser verification timing only; no product source or runtime contract change. Change-source: pulse-maintainer --- frontend-modern/browser-tests/truenas-connection-help.cjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend-modern/browser-tests/truenas-connection-help.cjs b/frontend-modern/browser-tests/truenas-connection-help.cjs index 17a7fcfae9..3a6e38541a 100644 --- a/frontend-modern/browser-tests/truenas-connection-help.cjs +++ b/frontend-modern/browser-tests/truenas-connection-help.cjs @@ -35,7 +35,13 @@ const { chromium, webkit } = require('playwright'); { waitUntil: 'domcontentloaded', timeout: 60_000 }); const quickStart = page.getByRole('heading', { name: 'Quick Start', exact: true }); await quickStart.waitFor(); - if (engine === 'webkit') await page.evaluate(() => document.documentElement.classList.add('dark')); + if (engine === 'webkit') { + await page.evaluate(async () => { + document.documentElement.classList.add('dark'); + await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve))); + await Promise.all(document.getAnimations().map((animation) => animation.finished.catch(() => {}))); + }); + } const article = await page.locator('article').innerText(); for (const text of ['it does not validate inventory or metric collection', 'an elapsed interval is not proof that a poll completed',