Skip to content

Frontend specs that fail with /ether plugin set loaded #7611

@JohnMcLear

Description

@JohnMcLear

Tracking issue for the small set of frontend specs that are skipped under WITH_PLUGINS=1 in PR #7609 (the with-plugins frontend coverage) so the suite can stay green while we fix them individually.

Change type: N/A (tracking issue)

Each of these can be a separate small PR. The fix pattern is usually one of:

  • Selector/index assumption (e.g. .nice-select.nth(1)) that drifts when plugins add UI before/after the targeted element. Fix: target by ID or scoped container. Example precedent: the language-spec fix in ci: run frontend tests with /ether plugin set (closes #7608) #7609 itself (used #languagemenu + .nice-select).
  • Hardcoded waitForTimeout(N) that races slower pad boot when plugins load. Fix: replace with explicit selector waits or longer waits.
  • Suite-only flake — passes in isolation, fails in the full run. Usually shared-state leakage between specs (clipboard, cookies, pad ID collision).
  • Genuine plugin-vs-core behavior conflict (less common; needs plugin or core fix).

The with-plugins jobs run with retries: 5 (vs. retries: 2 for vanilla) to absorb the higher flake rate from plugins slowing pad boot — but a number of specs still don't recover within that budget.

Skipped specs

Plugin-vs-core selector/timing issues:

  • src/tests/frontend-new/specs/enter.spec.ts:33enter is always visible after event.
  • src/tests/frontend-new/specs/indentation.spec.ts:56indents text with spaces on enter if previous line ends with ':', '[', '(', or '{'.
  • src/tests/frontend-new/specs/indentation.spec.ts:118appends indentation to the indent of previous line if previous line ends with ':', '[', '(', or '{'.
  • src/tests/frontend-new/specs/timeslider_follow.spec.ts:50only to lines that exist in the pad view, regression test for #4389.
  • src/tests/frontend-new/specs/undo_redo_scroll.spec.ts:26Ctrl+Z scrolls viewport up when the caret lands above the view.
  • src/tests/frontend-new/specs/undo_redo_scroll.spec.ts:71Ctrl+Z scrolls viewport down when the caret lands below the view.
  • src/tests/frontend-new/specs/list_wrap_indent.spec.ts (entire describe) — numbered list wrapped line indentation.
  • src/tests/frontend-new/specs/clear_authorship_color.spec.ts:73clears authorship when first line has line attributes.
  • src/tests/frontend-new/specs/ordered_list.spec.ts:11issue #4748 keeps numbers increment on OL.
  • src/tests/frontend-new/specs/ordered_list.spec.ts:58issue #5160 ordered list increments correctly after unordered list.
  • src/tests/frontend-new/specs/ordered_list.spec.ts:96issue #5718 consecutive numbering works after indented sub-bullets.
  • src/tests/frontend-new/specs/page_up_down.spec.ts:91PageDown with consecutive long wrapped lines moves by correct amount (#4562).
  • src/tests/frontend-new/specs/page_up_down.spec.ts:146PageDown then PageUp returns to approximately same position.

Suite-only flakes (pass alone, fail in the full with-plugins run):

  • src/tests/frontend-new/specs/bold_paste.spec.tsbold text retains formatting after copy-paste. Suspected clipboard / pad state leak.
  • src/tests/frontend-new/specs/bold.spec.ts:30makes text bold on keypress.
  • src/tests/frontend-new/specs/collab_client.spec.ts:39bug #4978 regression test. Two-user composition / ack race; plugins likely change message timing.
  • src/tests/frontend-new/specs/urls_become_clickable.spec.ts (special-characters describe, ~23 parameterised tests) — beforeEach pad-creation timeouts under plugin load.
  • src/tests/frontend-new/specs/undo_clear_authorship.spec.ts (entire describe, 2 tests) — multi-user undo race.

How to reproduce

pnpm install --frozen-lockfile
pnpm add -w ep_align ep_author_hover ep_cursortrace ep_font_size ep_headings2 ep_markdown ep_readonly_guest ep_set_title_on_pad ep_spellcheck ep_subscript_and_superscript ep_table_of_contents
cp src/tests/settings.json settings.json
pnpm run prod &
# wait ~15s
cd src
pnpm exec playwright install chromium
# Run a specific spec without skipping (omit WITH_PLUGINS):
pnpm exec playwright test tests/frontend-new/specs/<one of the above> --project=chromium
# Or reproduce the suite-only flake conditions:
WITH_PLUGINS= pnpm run test-ui --project=chromium

How to fix one

  1. Pick a spec.
  2. Reproduce locally per above.
  3. Identify the assumption that breaks under plugins (use await page.pause() or DOM probes).
  4. Fix the spec (or, if it's a genuine plugin or core bug, fix that and reference this issue).
  5. Remove the test.skip(!!process.env.WITH_PLUGINS, …) line.
  6. Open a PR with Change type: patch.

Closes #7608 once all of the above are unskipped and the with-plugins jobs are passing without WITH_PLUGINS skips.

🤖 Filed via PR #7609.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions