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.
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.interfaceModedefaults to'simple') — hides the Home andEditor columns' tab bars entirely (headless,
pointer-events: none) and ships a Resources columnwhose 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_OVERRIDESine2e-tests/fixtures/helpers.ts), which restoresthe 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
waitForDockTabTitlesResolved(e2e-tests/fixtures/helpers.ts) requiresevery
.dock-tabto resolve a real title in strict/cold-start mode. In Simple mode this can neverbe 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.
openInterlinearizerFromScriptureEditorandensureInterlinearizerOpenOnWebassume a visible, clickable
.dock-tabfor the Scripture Editor / WEB project. In Simple mode theEditor 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 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."
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
platform.interfaceModeis validated to only'simple' | 'power'(
core-settings-info.data.ts), so seeding is a simple key, not new infrastructure.E2E_SETTINGS_OVERRIDES,backupAndSeedSettings/restoreBackedUpSettingsine2e-tests/fixtures/helpers.ts) rather thanbuilding a parallel one.