From 6a64d2fec66d022ebb9a10ff1dbffddb0b2efa70 Mon Sep 17 00:00:00 2001 From: defiQUG Date: Fri, 22 May 2026 20:53:27 -0700 Subject: [PATCH] fix(explorer): harden operations smoke test and surface note placement Move extended token-list label to the operations intro, wait for network idle before asserting, and clear conflicting NO_COLOR/FORCE_COLOR in Playwright config. Co-authored-by: Cursor --- frontend/src/components/explorer/OperationsHubPage.tsx | 2 +- playwright.config.ts | 7 +++---- scripts/e2e-sprint-smoke.spec.ts | 5 +++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/explorer/OperationsHubPage.tsx b/frontend/src/components/explorer/OperationsHubPage.tsx index acdf256..131ae48 100644 --- a/frontend/src/components/explorer/OperationsHubPage.tsx +++ b/frontend/src/components/explorer/OperationsHubPage.tsx @@ -181,6 +181,7 @@ export default function OperationsHubPage({

{page.description}

+ {page.note ? ( @@ -250,7 +251,6 @@ export default function OperationsHubPage({
Chains ยท {(tokenList?.tokens || []).length} tokens across {tokenChainCoverage} networks
- diff --git a/playwright.config.ts b/playwright.config.ts index 54d27a9..12809cb 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,9 +1,8 @@ import { defineConfig, devices } from '@playwright/test'; -// Avoid Node warning: "NO_COLOR env is ignored due to FORCE_COLOR" -if (process.env.NO_COLOR !== undefined) { - delete process.env.FORCE_COLOR; -} +// Cursor/CI often sets both; Node warns when they conflict. +delete process.env.NO_COLOR; +delete process.env.FORCE_COLOR; export default defineConfig({ testDir: './scripts', diff --git a/scripts/e2e-sprint-smoke.spec.ts b/scripts/e2e-sprint-smoke.spec.ts index 81c0a5d..b39fe8d 100644 --- a/scripts/e2e-sprint-smoke.spec.ts +++ b/scripts/e2e-sprint-smoke.spec.ts @@ -27,7 +27,8 @@ test.describe('Explorer sprint smoke', () => { }) test('operations hub loads extended token list note', async ({ page }) => { - await page.goto(`${EXPLORER_URL}/operations`, { waitUntil: 'domcontentloaded', timeout: 20000 }) - await expect(page.getByText(/Extended Metamask dual-chain catalog/i)).toBeVisible({ timeout: 10000 }) + await page.goto(`${EXPLORER_URL}/operations`, { waitUntil: 'networkidle', timeout: 30000 }) + await expect(page.getByRole('heading', { name: /Operations Hub/i })).toBeVisible({ timeout: 10000 }) + await expect(page.getByText(/Extended Metamask dual-chain catalog/i).first()).toBeVisible({ timeout: 10000 }) }) })