Skip to content

Commit 565ee57

Browse files
sadpandajoeclaude
andcommitted
docs(playwright): clarify why SQL Lab needs a separate project config
Explain that /tabstateview/* server-side state per user forces sequential execution, unlike dataset/dashboard/chart tests that use isolated resources. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0cb036e commit 565ee57

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

superset-frontend/playwright.config.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,12 @@ export default defineConfig({
105105
},
106106
},
107107
{
108-
// SQL Lab tests share backend tab state per user (/tabstateview/*).
109-
// fullyParallel: false ensures all tests run sequentially on one worker
110-
// without the skip-on-failure behavior of serial mode — a single test
111-
// failure still reports remaining tests independently.
108+
// SQL Lab needs its own project because tab state is stored server-side
109+
// per user (/tabstateview/*). All workers share the same auth user, so
110+
// parallel workers mutating tabs would cause nondeterministic tab counts
111+
// and cross-worker tab deletions. Other test suites (dataset, dashboard,
112+
// chart) don't need this because they create/delete isolated resources
113+
// via API with unique names — no shared mutable state between tests.
112114
name: 'chromium-sqllab',
113115
testMatch: '**/tests/sqllab/**/*.spec.ts',
114116
fullyParallel: false,

superset-frontend/playwright/tests/sqllab/sqllab.spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@
1818
*/
1919

2020
/**
21-
* SQL Lab E2E tests — sequential via project-level fullyParallel: false.
21+
* SQL Lab E2E tests — sequential via chromium-sqllab project.
2222
*
23-
* SQL Lab persists tabs per user via /tabstateview/*. With fullyParallel and
24-
* multiple workers, tests sharing the same authenticated user can overwrite
25-
* each other's tab/query state, making tab-count and reload assertions
26-
* nondeterministic. The chromium-sqllab project in playwright.config.ts
27-
* sets fullyParallel: false so all tests in this file run sequentially on
28-
* one worker — without the skip-on-failure behavior of serial mode.
23+
* Tab state is stored server-side per user (/tabstateview/*), and all workers
24+
* share the same authenticated user. Parallel workers adding/removing tabs
25+
* would cause nondeterministic tab counts and cross-worker deletions.
26+
* See playwright.config.ts chromium-sqllab project for details.
2927
*/
3028

3129
import { test, expect } from '../../helpers/fixtures/testAssets';

0 commit comments

Comments
 (0)