Problem
The editor E2E harness can time out during a default parallel npm run test:e2e run after the module graph grew, even though the same tests pass in isolation and the complete suite passes serially.
Observed while shipping #227 on 2026-07-14:
- default parallel run: 8 Chromium tests timed out in
page.waitForFunction(() => window.__ready === true);
- affected specs included
tests/e2e/editor-cm6.spec.js, editor-insert.spec.js, spec-editor.spec.js, and code-viewer.spec.js;
- isolated
editor-cm6.spec.js --project=chromium --workers=1: 7/7 passed;
- complete suite with
--workers=1: 87/87 passed across Chromium, Firefox, and WebKit, twice.
Likely seam
playwright.config.js serves the raw source/module graph through python3 -m http.server, and tests/e2e/editor.html now loads a comparatively large CodeMirror/schema graph. Parallel workers generate many simultaneous module requests against that simple server.
Why deferred
Issue #227 changes splitter visuals only. Changing worker policy, server implementation, module preloading, or readiness diagnostics is unrelated and deserves its own measured fix.
Acceptance direction
- Reproduce or stress the default-parallel load path.
- Add useful page-error/console diagnostics when
window.__ready is not reached.
- Stabilize the default
npm run test:e2e command without masking real editor initialization failures.
- Keep all three engines covered.
Problem
The editor E2E harness can time out during a default parallel
npm run test:e2erun after the module graph grew, even though the same tests pass in isolation and the complete suite passes serially.Observed while shipping #227 on 2026-07-14:
page.waitForFunction(() => window.__ready === true);tests/e2e/editor-cm6.spec.js,editor-insert.spec.js,spec-editor.spec.js, andcode-viewer.spec.js;editor-cm6.spec.js --project=chromium --workers=1: 7/7 passed;--workers=1: 87/87 passed across Chromium, Firefox, and WebKit, twice.Likely seam
playwright.config.jsserves the raw source/module graph throughpython3 -m http.server, andtests/e2e/editor.htmlnow loads a comparatively large CodeMirror/schema graph. Parallel workers generate many simultaneous module requests against that simple server.Why deferred
Issue #227 changes splitter visuals only. Changing worker policy, server implementation, module preloading, or readiness diagnostics is unrelated and deserves its own measured fix.
Acceptance direction
window.__readyis not reached.npm run test:e2ecommand without masking real editor initialization failures.