From 9390d5541f33c5d1cb83d7a3ba8ef164a0bb39c8 Mon Sep 17 00:00:00 2001 From: zzal Date: Sun, 19 Jul 2026 18:20:19 -0400 Subject: [PATCH] ci(e2e): ignore per-demo specs in the default config; run gridboard in CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The default Playwright config serves only the counter/router/sw/ edgecases servers, but four newer specs (overlay, tabs, catalog-nav — SwiflowUIDemo; gridboard — GridBoard) were not in its testIgnore, so every labeled CI run executed them against the counter app on :3000 and failed 'element not found' — the default leg could never go green. The GridBoard smoke config was also referenced by no npm script and no CI line, leaving the per-frame-leak soak surface without any CI presence. test:gridboard now exists and runs as the e2e job's fourth leg (:3009, no port collision). Verified locally: npm run test:gridboard → 1 passed. Co-Authored-By: Claude Fable 5 --- .github/workflows/ci.yml | 15 +++++++++------ Tests/playwright/package.json | 1 + Tests/playwright/playwright.config.ts | 12 ++++++++---- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9998cbb0..afad9b60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -329,12 +329,14 @@ jobs: # .e2e-cache (which CI doesn't cache anyway). The .build cache restored # above still warms compilation. # - # Three runs: the default config (counter/router/sw/edgecases servers), - # then the RegionDemo and SwiflowUIDemo demos via their own configs — they - # collide on port :3004 so can't share the default config's parallel - # servers, and run sequentially here. All three run regardless of an - # earlier failure (status accumulates) so one red spec doesn't hide the - # rest. TodoCRUD needs the real backend → separate run-e2e-backend job. + # Four runs: the default config (counter/router/sw/edgecases servers), + # then RegionDemo, SwiflowUIDemo, and GridBoard via their own configs — + # Region/SwiflowUI collide on port :3004 so can't share the default + # config's parallel servers; GridBoard (:3009) is the per-frame-leak + # soak surface and needs its long boot timeout. All run regardless of + # an earlier failure (status accumulates) so one red spec doesn't hide + # the rest. TodoCRUD needs the real backend → separate run-e2e-backend + # job. env: SWIFLOW_E2E_CLEAN: "1" run: | @@ -342,6 +344,7 @@ jobs: npm test || status=1 npm run test:regions || status=1 npm run test:swiflowui || status=1 + npm run test:gridboard || status=1 exit $status - name: Upload Playwright trace on failure diff --git a/Tests/playwright/package.json b/Tests/playwright/package.json index 35dfc9ab..ab747917 100644 --- a/Tests/playwright/package.json +++ b/Tests/playwright/package.json @@ -9,6 +9,7 @@ "test:clean": "SWIFLOW_E2E_CLEAN=1 playwright test", "test:counter": "playwright test --config=playwright.counter.config.ts", "test:edgecases": "playwright test --config=playwright.edgecases.config.ts", + "test:gridboard": "playwright test --config=playwright.gridboard.config.ts", "test:regions": "playwright test --config=playwright.regions.config.ts", "test:router": "playwright test --config=playwright.router.config.ts", "test:sw": "playwright test --config=playwright.sw.config.ts", diff --git a/Tests/playwright/playwright.config.ts b/Tests/playwright/playwright.config.ts index 4953b20f..063c1a55 100644 --- a/Tests/playwright/playwright.config.ts +++ b/Tests/playwright/playwright.config.ts @@ -38,10 +38,14 @@ export default defineConfig({ // test:swiflowui, and the run-e2e-backend job for todocrud). Without this // ignore they'd run against :3000 (counter) and fail "element not found". testIgnore: [ - "region.spec.ts", // RegionDemo — npm run test:regions (:3004) - "datatable.spec.ts", // SwiflowUIDemo — npm run test:swiflowui - "dropdown.spec.ts", // SwiflowUIDemo — npm run test:swiflowui - "todocrud.spec.ts", // real Bun+SQLite backend — run-e2e-backend job + "region.spec.ts", // RegionDemo — npm run test:regions (:3004) + "datatable.spec.ts", // SwiflowUIDemo — npm run test:swiflowui + "dropdown.spec.ts", // SwiflowUIDemo — npm run test:swiflowui + "overlay.spec.ts", // SwiflowUIDemo — npm run test:swiflowui + "tabs.spec.ts", // SwiflowUIDemo — npm run test:swiflowui + "catalog-nav.spec.ts", // SwiflowUIDemo — npm run test:swiflowui + "gridboard.spec.ts", // GridBoard — npm run test:gridboard (:3009) + "todocrud.spec.ts", // real Bun+SQLite backend — run-e2e-backend job ], fullyParallel: false, reporter: process.env.CI ? "github" : "list",