Skip to content

Stabilize raw-ESM editor E2E harness under Playwright parallel load #228

Description

@BorisTyshkevich

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    inboxFiled mid-task; not yet triaged into the roadmap

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions