Enforce that snapshot files should be unique #1592
Open
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.
It seems odd that two different tests can save to the same snapshot file without error. This PR enforces that once a snapshot file has had an expectation, it can not have another expectation.
I tried doing this in
{shinytest2}
, but it felt like a giant hack and should be pushed upstream to{testthat}
.Implementation details:
We can not use
SnapshotReporter$snap_file_seen
as it is encouraged to use this field viaannounce_snapshot_file(file)
to avoid files being deleted.However, if we record what has been saved, then no saved file should be duplicated. Once a new test file starts,
$snap_file_saved
should be reset