Golden files are the source of truth for snapshot-based steps like Visual
diff. By default they’re stored on the dashboard; opt into local storage to
keep them alongside your tests.
Enable local storage
-
In your Visual diff step, omit the
screenshot key so Momentic stores
the snapshot locally:
- visualDiff:
on: Order summary panel
threshold: 0.1
-
Snapshots are written to
<momentic-root>/golden/visual-diff/<command-id>.jpg by default. The command
ID is the internal identifier minted from the step’s position in the test:
momentic.config.yaml
golden/
visual-diff/
c41afa9a-....jpg
-
(Optional) Override the directory via
goldenFileDir in
momentic.config.yaml:
goldenFileDir: tests/snapshots
Update snapshots
npx momentic run --update-golden-files
--update-golden-files makes snapshot-based tests pass even when the current
state differs from the stored snapshot. Use it intentionally.
Colocate snapshots with tests
Point the screenshot.data field at a path relative to the Momentic root:
- visualDiff:
on: Upload button
threshold: 0.4
screenshot:
data: momentic/tests/visual-diff/golden/upload-button.jpg
width: 1920
height: 1080
Resulting layout:
momentic.config.yaml
momentic/
tests/
visual-diff/
visual-diff.test.yaml
golden/
upload-button.jpg
Mobile
On mobile, visualDiff always stores
golden files locally. The golden path is part of the step:
- visualDiff:
path: ./golden/visual-diff/home.png
threshold: 0.1
path resolves relative to the test or module file the step is defined in (the
same rule used by module and JavaScript file references), so a visualDiff
inside a module always resolves against the module’s location no matter which
test includes it.
The golden is created on the first run and the step passes. On later runs the
full-screen screenshot is compared against the golden and the step fails if it
differs by more than threshold. Refresh goldens after an intentional UI change
with --update-golden-files. Mobile visualDiff is only available when running
tests locally with the CLI.