Skip to content

E2E coverage: ReportContentEditor column-visibility toggles #1966

Description

@steilerDev

[product-owner]

Component: E2E test coverage — ReportContentEditor column-visibility toggles
Priority: Should Have
Source: PR #1959, deliberately deferred at review time.

Problem

PR #1959 added column-visibility checkboxes above the summary table in ReportContentEditor (local state, no persistence). They shipped with no E2E coverage. The omission was deliberate: adding a test case changes Playwright's per-file test counts, which redistributes shard membership, and a worker-hash/shard-boundary change reddened an unrelated shard on PR #1961 the same day. On a branch gating the beta -> main promotion that risk was not worth taking, so the coverage was deferred here rather than rushed.

The feature is user-facing and has no automated guard: a renamed label, a removed checkbox, or an accidental switch to persisted preferences would all pass CI today.

Acceptance Criteria

  • 1 e2e/tests/budget/reportWizardEditableContent.spec.ts (or a sibling spec) contains coverage that, on the summary tab: asserts every column checkbox is present and locatable by accessible name; unticks one column; asserts the corresponding <th> and every matching <td> are absent from the DOM; re-ticks it; asserts both return.
  • 2 Coverage is complete against the component rather than a hand-picked subset: the test asserts the number of rendered column checkboxes equals the toggleable-column count the component defines, so adding a future column fails this test instead of silently going uncovered.
  • 3 The toggles are asserted to be local state: toggling a checkbox issues no PATCH to /api/users/me/preferences (asserted by route interception or request logging). This pins the intended difference from DataTable's persisted column preferences and guards against someone adding persistence and inheriting the BUG: enabling two DataTable columns in a row silently hides the second one (column-preference save races its own re-sync) #1955 race.
  • 4 Viewport scope is explicit: either the coverage runs at all three configured viewports, or a code comment in the spec states which viewports are excluded and why (e.g. the mobile card list exposes no column toggles). A silent desktop-only test does not satisfy this criterion.
  • 5 Shard hygiene is handled explicitly on the implementing PR: the full E2E suite result is reported, and any shard that goes red is triaged as either (a) caused by this change or (b) a pre-existing latent hazard exposed by the shard redistribution — with the determination and its evidence recorded in a PR comment. Re-running until green does not satisfy this criterion.
  • 6 If triage under criterion 5 identifies a latent cross-file hazard, it is linked to E2E hazard: cross-file shared-admin preference writes can silently flip a running test's state #1957 (or filed separately if out of that issue's scope) rather than worked around by pinning shard assignment.

Notes

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions