Jobs: update the cross-surface conformance fixtures #180

Closed
opened 2026-08-23 19:46:06 +00:00 by nalum · 0 comments
Owner

Part of the jobs flow redesign. The design handoff (design_handoff_jobs_flow, held outside the repo) is the source; the facts it depends on are repeated here so this issue stands alone.

The cross-surface fixtures and the golden images pin the current job wording and the current cards, so the redesign cannot land without moving them.

  • conformance/render-job.json pins the rendered card's string inventory, including 3/3 steps and Done ✓.
  • conformance/repeat.json pins the job repeat labels the new chips replace.
  • 98 web goldens (web/tests/gallery/__screenshots__) and 98 Android goldens (android/app/screenshots) cover every fixture case on hearth plus the canonical case across all 19 families and both modes.
  • The live whole-page goldens (make web-pages) photograph the running binary against the frozen e2e dataset.

Rules that hold here: the web is the reference, a wording change updates the fixture in the same commit, and goldens are re-recorded in their own commit (make web-screens-update, make android-screens-update). Both surfaces move together or the other one's suite fails.


Update — the late state moves fixtures as well as images

  • conformance/deadline.json flips its untimed today counts as overdue past
    midnight
    case from overdue: true to false, alongside isOverdue and its
    Android twin. See #186; the fixture and both implementations land in one
    commit.
  • The goldens gain the late state: amber due line, glyph and word, and the
    retired red pill on both surfaces.

Update — this issue shrinks to the fixtures

Golden images now ride with the PR that invalidates them (see the tracking
issue), so what remains here is the cross-surface fixture work that no single UI
PR owns:

  • conformance/deadline.json — flip the untimed today counts as overdue past
    midnight
    case from overdue: true to false, together with isOverdue and its
    Android twin. That behaviour change is #186; this is the fixture half, and the
    two land in one commit.
  • conformance/repeat.json — the job repeat labels the new chips replace, so
    chips, the label helper and the fixture read the same strings on both surfaces.
  • conformance/render-job.json — the rendered card's string inventory: 3/3
    steps
    and Done ✓ both move with #179 and #174.

The web is the reference, locale is pinned to en, and a deliberate wording
change updates the fixture in the same commit that changes the words.


Two requirements added after #213 shipped

The job sheet went out to the family's cluster three times before it was right.
Seven visual defects, none caught by a suite: pickers that unfolded forms
instead of opening, three Save buttons on a commit-on-blur screen, (optional)
labels, a reward's name used as a field label, an unstyled add row, checkboxes
with a ghosted tick, and a create form with a browser spinner. Every one had to
be found by a person looking at a screen.

What this means here

The golden images now ride with the tickets that change the pixels, so this
issue keeps only the cross-surface fixtures. What it gains is a coverage
check
: when the jobs tickets are done, confirm every surface they built has
gallery and Roborazzi cases, and open an issue for any that does not.

The sheet and its three pickers are the known gap — #172 deferred them
deliberately and #175 is expected to close it.

Part of the jobs flow redesign. The design handoff (`design_handoff_jobs_flow`, held outside the repo) is the source; the facts it depends on are repeated here so this issue stands alone. The cross-surface fixtures and the golden images pin the current job wording and the current cards, so the redesign cannot land without moving them. - `conformance/render-job.json` pins the rendered card's string inventory, including *3/3 steps* and *Done ✓*. - `conformance/repeat.json` pins the job repeat labels the new chips replace. - 98 web goldens (`web/tests/gallery/__screenshots__`) and 98 Android goldens (`android/app/screenshots`) cover every fixture case on hearth plus the canonical case across all 19 families and both modes. - The live whole-page goldens (`make web-pages`) photograph the running binary against the frozen e2e dataset. Rules that hold here: the web is the reference, a wording change updates the fixture in the same commit, and goldens are re-recorded in their own commit (`make web-screens-update`, `make android-screens-update`). Both surfaces move together or the other one's suite fails. --- ## Update — the late state moves fixtures as well as images - `conformance/deadline.json` flips its *untimed today counts as overdue past midnight* case from `overdue: true` to false, alongside `isOverdue` and its Android twin. See #186; the fixture and both implementations land in one commit. - The goldens gain the late state: amber due line, glyph and word, and the retired red pill on both surfaces. --- ## Update — this issue shrinks to the fixtures Golden images now ride with the PR that invalidates them (see the tracking issue), so what remains here is the cross-surface fixture work that no single UI PR owns: - **`conformance/deadline.json`** — flip the *untimed today counts as overdue past midnight* case from `overdue: true` to false, together with `isOverdue` and its Android twin. That behaviour change is #186; this is the fixture half, and the two land in one commit. - **`conformance/repeat.json`** — the job repeat labels the new chips replace, so chips, the label helper and the fixture read the same strings on both surfaces. - **`conformance/render-job.json`** — the rendered card's string inventory: *3/3 steps* and *Done ✓* both move with #179 and #174. The web is the reference, locale is pinned to `en`, and a deliberate wording change updates the fixture in the same commit that changes the words. --- ## Two requirements added after #213 shipped The job sheet went out to the family's cluster three times before it was right. Seven visual defects, none caught by a suite: pickers that unfolded forms instead of opening, three Save buttons on a commit-on-blur screen, `(optional)` labels, a reward's name used as a field label, an unstyled add row, checkboxes with a ghosted tick, and a create form with a browser spinner. Every one had to be found by a person looking at a screen. ### What this means here The golden images now ride with the tickets that change the pixels, so this issue keeps only the cross-surface fixtures. What it gains is a **coverage check**: when the jobs tickets are done, confirm every surface they built has gallery and Roborazzi cases, and open an issue for any that does not. The sheet and its three pickers are the known gap — #172 deferred them deliberately and #175 is expected to close it.
nalum changed title from Jobs: re-record the conformance fixtures and screenshot goldens to Jobs: update the cross-surface conformance fixtures 2026-08-24 08:19:12 +00:00
nalum closed this issue 2026-08-26 18:35:39 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app#180
No description provided.