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",