6 user-facing ViewModels now accept optional `dataManager: DataManagerObservable = .shared` init param — production call-sites unchanged; tests inject fixture-backed observables. Refactored: ResidenceViewModel, TaskViewModel, ContractorViewModel, DocumentViewModel, ProfileViewModel, LoginViewModel. DataManagerObservable gains test-only init(observeSharedDataManager:) + convenience init(kotlin: IDataManager). SnapshotGalleryTests.setUp() resets .shared to FixtureDataManager.empty() per test; populated tests call seedPopulated() to copy every StateFlow from FixtureDataManager.populated() onto .shared synchronously. 15 populated surfaces × 2 modes = 30 new PNGs. iOS goldens: 58 → 88. 44 SnapshotGalleryTests green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
90 KiB
780x1688px
90 KiB
780x1688px