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