P3: iOS parity gallery (swift-snapshot-testing, 1.17.0+)
Records 58 baseline PNGs across 29 primary SwiftUI screens × {light, dark}
for the honeyDue iOS app. Covers auth, password reset, onboarding,
residences, tasks, contractors, documents, profile, and subscription
surfaces — everything that's instantiable without complex runtime context.
State coverage is empty-only for this first pass: views currently spin up
their own ViewModels which read DataManagerObservable.shared directly, and
the test host has no login → all flows render their empty states. A
follow-up PR adds an optional `dataManager:` init param to each
*ViewModel.swift so populated-state snapshots (backed by P1's
FixtureDataManager) can land.
Tolerance knobs: pixelPrecision 0.97 / perceptualPrecision 0.95 — tuned to
absorb animation-frame drift (gradient blobs, focus rings) while catching
structural regressions.
Tooling: swift-snapshot-testing SPM dep added to the HoneyDueTests target
only (not the app target) via scripts/add_snapshot_testing.rb, which is an
idempotent xcodeproj-gem script so the edit is reproducible rather than a
hand-crafted pbxproj diff. Pins resolve to 1.19.2 (up-to-next-major from
the 1.17.0 plan floor).
Blocks regressions at PR time via `xcodebuild test
-only-testing:HoneyDueTests/SnapshotGalleryTests`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
After Width: | Height: | Size: 154 KiB |
|
After Width: | Height: | Size: 150 KiB |
|
After Width: | Height: | Size: 182 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 1001 KiB |
|
After Width: | Height: | Size: 808 KiB |
|
After Width: | Height: | Size: 966 KiB |
|
After Width: | Height: | Size: 800 KiB |
|
After Width: | Height: | Size: 944 KiB |
|
After Width: | Height: | Size: 799 KiB |
|
After Width: | Height: | Size: 808 KiB |
|
After Width: | Height: | Size: 679 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 916 KiB |
|
After Width: | Height: | Size: 1003 KiB |
|
After Width: | Height: | Size: 896 KiB |
|
After Width: | Height: | Size: 967 KiB |
|
After Width: | Height: | Size: 878 KiB |
|
After Width: | Height: | Size: 1024 KiB |
|
After Width: | Height: | Size: 836 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 895 KiB |
|
After Width: | Height: | Size: 743 KiB |
|
After Width: | Height: | Size: 181 KiB |
|
After Width: | Height: | Size: 180 KiB |
|
After Width: | Height: | Size: 919 KiB |
|
After Width: | Height: | Size: 820 KiB |
|
After Width: | Height: | Size: 939 KiB |
|
After Width: | Height: | Size: 845 KiB |
|
After Width: | Height: | Size: 1001 KiB |
|
After Width: | Height: | Size: 808 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 616 KiB |
|
After Width: | Height: | Size: 514 KiB |
|
After Width: | Height: | Size: 356 KiB |
|
After Width: | Height: | Size: 326 KiB |
|
After Width: | Height: | Size: 1010 KiB |
|
After Width: | Height: | Size: 909 KiB |
|
After Width: | Height: | Size: 932 KiB |
|
After Width: | Height: | Size: 829 KiB |