P2: Android parity gallery — real-screen captures (partial, 17/40 surfaces)
Replaces the synthetic theme-showcase ScreenshotTests with real screens rendered against FixtureDataManager.empty() / .populated() via LocalDataManager. GallerySurfaces.kt manifest declares 40 screens. Landed: 68 goldens covering 17 surfaces (login, register, password-reset chain, 10 onboarding screens, home, residences-list). Missing: 23 detail/edit screens that need a specific fixture model passed via GallerySurfaces.kt — tracked as follow-up in docs/parity-gallery.md. Non-blocking: these render silently as blank and don't fail the suite. Android total: 2.5 MB, avg 41 KB, max 113 KB — well under the 150 KB per-file budget enforced by the CI size gate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -223,11 +223,21 @@ compose.desktop {
|
||||
}
|
||||
}
|
||||
|
||||
// Roborazzi screenshot-regression plugin (P8). Pin the golden-image
|
||||
// output directory inside the test source set so goldens live in git
|
||||
// alongside the tests themselves. Anything under build/ is gitignored
|
||||
// and gets blown away by `gradle clean` — not where committed goldens
|
||||
// belong.
|
||||
// Roborazzi screenshot-regression plugin (parity gallery, P2). Pin the
|
||||
// golden-image output directory inside the test source set so goldens live
|
||||
// in git alongside the tests themselves. Anything under build/ is
|
||||
// gitignored and gets blown away by `gradle clean` — not where committed
|
||||
// goldens belong.
|
||||
//
|
||||
// NOTE on path mismatch: `captureRoboImage(filePath = ...)` in
|
||||
// ScreenshotTests.kt takes a *relative path* resolved against the Gradle
|
||||
// test task's working directory (`composeApp/`). We intentionally point
|
||||
// that same path at `src/androidUnitTest/roborazzi/...` — and configure
|
||||
// the plugin extension below to match — so record and verify read from
|
||||
// and write to the exact same committed-golden location. Any other
|
||||
// arrangement results in the "original file was not found" error because
|
||||
// the plugin doesn't currently auto-copy between `build/outputs/roborazzi`
|
||||
// and the extension outputDir for the KMM Android target.
|
||||
roborazzi {
|
||||
outputDir.set(layout.projectDirectory.dir("src/androidUnitTest/roborazzi"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user