sillsdev / sillsdev/interlinearizer-extension
Add Simple-mode support to e2e tests
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 0
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 55
Description
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-tabto 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.
openInterlinearizerFromScriptureEditorandensureInterlinearizerOpenOnWeb
assume a visible, clickable.dock-tabfor 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.interfaceModeis 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/restoreBackedUpSettingsine2e-tests/fixtures/helpers.ts) rather than
building a parallel one.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in e2e-tests/fixtures/helpers.ts with waitForDockTabTitlesResolved, openInterlinearizerFromScriptureEditor, ensureInterlinearizerOpenOnWeb, and the E2E_SETTINGS_OVERRIDES flow. Compare the existing Power-mode behavior with Simple mode and review PR #169's CI failure screenshots. Done means Simple-mode coverage works without regressing Power-mode coverage, using the existing settings backup and restore helpers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100