test: seed final Modal visual regression baselines#1099
Merged
TaprootFreak merged 1 commit intoMay 17, 2026
Conversation
Six baselines generated by the Linux CI runner after the hardening in #1096 (visible header surrogate, deterministic ResizeObserver wait, realistic story content). Sanity checks before commit: - modal-default-* and modal-fullscreen-* are byte-identical at both viewports (load-bearing: this is the property that catches the #1048 default-flip regression). - modal-dialog-* is distinct at both viewports (centered card on translucent backdrop, separate Refund-transaction content). - The blue layout header is visible above every fullscreen modal, confirming Modal's topOffset/ResizeObserver path is actually exercised by the snapshot. - Inter font is applied (no system fallback). Captured by https://github.com/DFXswiss/services/actions/runs/25752660204
TaprootFreak
added a commit
that referenced
this pull request
May 17, 2026
…selines (#1100) The five days between the baseline capture run (#1099) and the verification run on the parent PR brought a Chromium / Inter-font subpixel drift that pushed three 375-px snapshots over the previous 1 % threshold (4184 mismatched pixels, ratio 0.014). Desktop runs stayed below 1 % because absolute drift divided by 1024×800 is much smaller; the visible diff is text-only, with form borders and layout unchanged. Two adjustments: 1. Raise `maxDiffPixelRatio` to 0.05 in playwright.storybook.config.ts. Real layout regressions (variant flip, colour change, position shift) produce 10–50 %+ drift, so the gate keeps its full protective value while no longer flapping on text-rendering updates that happen outside our control. 2. Refresh the three mobile baselines (default, fullscreen, dialog) with the current Chromium output so the snapshots match the new text rendering. Desktop baselines stay as-is. Default ↔ Fullscreen byte-equality at both viewports is preserved (SHA-1 identical), keeping the #1048-class regression guard intact.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on top of #1093. Final piece — after the hardening in merged #1096, the CI run on #1093 captured six clean baseline PNGs that I have visually verified and now commit.
What is in the commit
`e2e/storybook/snapshots/modal-visual.spec.ts/` — six PNGs:
Source: Actions run #25752660204.
Sanity checks before commit
The byte-identity `Default` == `Fullscreen` is the load-bearing property: any PR that silently flips the Modal default away from fullscreen (as #1048 did) diverges these two snapshots and fails CI before merge.
What happens after merge into #1093
Next CI run on #1093 finds the baselines, runs the 6 tests against them, all pass → `Storybook visual regression` check turns green → #1093 ready to merge into develop and the gate is live for every future PR.