Skip to content

Add Simple-mode support to e2e tests #170

Description

@imnasnainaec

Summary

The e2e suite currently only runs against Power interface mode. As of paranext-core
a77a65528a
("PT-3958: 10Simple layout styling adjustments", #2585),
Simple mode — the default (platform.interfaceMode defaults to 'simple') — hides the Home and
Editor columns' tab bars entirely (headless, pointer-events: none) and ships a Resources column
whose default tabs (Model Text, Commentaries, ...) never resolve real titles on a bare e2e profile
with no configured resources.

That broke both the strict cold-start readiness gate and the WEB-tab click flow (see PR #169 for
the CI failure screenshots). PR #169 works around it by seeding platform.interfaceMode: 'power'
into every e2e launch (E2E_SETTINGS_OVERRIDES in e2e-tests/fixtures/helpers.ts), which restores
the old visible/clickable dock-tab behavior the suite was written against. That's a stand-in, not
real coverage: the suite currently asserts nothing about how the Interlinearizer actually behaves
under Simple mode, which is the default UI real users see.

What needs to change

  • Readiness gate. waitForDockTabTitlesResolved (e2e-tests/fixtures/helpers.ts) requires
    every .dock-tab to resolve a real title in strict/cold-start mode. In Simple mode this can never
    be satisfied by a fresh profile, since the Resources column ships default tabs (Model Text,
    Commentaries) with no backing resource configured. Simple-mode readiness needs its own definition —
    e.g. only gate on the tabs the Interlinearizer flow actually touches, not every default Resources tab.
  • Navigation flow. openInterlinearizerFromScriptureEditor and ensureInterlinearizerOpenOnWeb
    assume a visible, clickable .dock-tab for the Scripture Editor / WEB project. In Simple mode the
    Editor column's tab bar is headless and collapsed, so the existing tab-click flow can't be reused
    as-is — needs a Simple-mode-aware way to confirm/focus the loaded project (the fixed column itself
    may already be focused, or a different affordance needs to be used).
  • Home flow. The Home-button-based project-opening flow may also need adjusting: Simple mode's
    Home column is a fixed, headless-tab-bar column (always present), not the closable floating tab the
    current helper comments describe for a "fresh core profile."
  • Test matrix. Decide whether both tiers (smoke + CDP) run twice (once per interface mode) or
    whether Simple-mode coverage is added more narrowly (e.g. one dedicated smoke test), given the
    runtime cost of a second full Electron cold start per tier.

Constraints

  • Don't regress existing Power-mode coverage — it should keep exercising the same flows it does today.
  • platform.interfaceMode is validated to only 'simple' | 'power'
    (core-settings-info.data.ts), so seeding is a simple key, not new infrastructure.
  • Reuse the existing settings-seed/backup mechanism (E2E_SETTINGS_OVERRIDES,
    backupAndSeedSettings/restoreBackedUpSettings in e2e-tests/fixtures/helpers.ts) rather than
    building a parallel one.

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