diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 09754fc4..ff39be14 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -14,6 +14,7 @@ plugins { alias(libs.plugins.anvil) alias(libs.plugins.whetstone) alias(libs.plugins.kotlin.composeCompiler) + alias(libs.plugins.screenshot) } android { @@ -23,6 +24,7 @@ android { } composeOptions { useLiveLiterals = false } namespace = "dev.msfjarvis.claw.common" + experimentalProperties["android.experimental.enableScreenshotTest"] = true } androidComponents { beforeVariants { (it as HasUnitTestBuilder).enableUnitTest = false } } @@ -57,6 +59,8 @@ dependencies { implementation(libs.kotlinResult.coroutines) implementation(libs.napier) + screenshotTestImplementation(libs.androidx.compose.ui.tooling) + compileOnly(libs.androidx.compose.ui.tooling.preview) runtimeOnly(libs.androidx.compose.ui.tooling) diff --git a/gradle.properties b/gradle.properties index eb2f1cd7..54d3f178 100644 --- a/gradle.properties +++ b/gradle.properties @@ -49,9 +49,12 @@ android.dependencyResolutionAtConfigurationTime.disallow=true android.disableEarlyManifestParsing=true # Disable warnings about unsupported features -android.suppressUnsupportedOptionWarnings=android.dependencyResolutionAtConfigurationTime.disallow,android.disableEarlyManifestParsing,android.suppressUnsupportedOptionWarnings +android.suppressUnsupportedOptionWarnings=android.dependencyResolutionAtConfigurationTime.disallow,android.disableEarlyManifestParsing,android.experimental.enableScreenshotTest,android.suppressUnsupportedOptionWarnings android.suppressUnsupportedCompileSdk=35 +# Enable screenshot tests +android.experimental.enableScreenshotTest=true + # Make Spotless default to keeping license headers years in sync spotlessSetLicenseHeaderYearsFromGitHistory=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0543dcff..8d3f3f68 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -129,6 +129,7 @@ licensee = "app.cash.licensee:1.11.0" modulegraphassert = "com.jraska.module.graph.assertion:2.7.1" navigation-safeargs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "navigation" } poko = "dev.drewhamilton.poko:0.17.0" +screenshot = "com.android.compose.screenshot:0.0.1-alpha05" sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } tracelog = "dev.msfjarvis.tracelog:0.1.3" whetstone = { id = "dev.msfjarvis.whetstone", version.ref = "whetstone" }