sillsdev / sillsdev/interlinearizer-extension

Add Simple-mode support to e2e tests

Open
#170 1 comment 0 reactions 0 assignees View on GitHub

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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.