diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index a2743738..41aece73 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -3,6 +3,7 @@ plugins {
kotlin("android")
kotlin("kapt")
id("dagger.hilt.android.plugin")
+ id("shot")
`versioning-plugin`
`lobsters-plugin`
`core-library-desugaring`
@@ -18,7 +19,7 @@ repositories {
android {
defaultConfig {
applicationId = "dev.msfjarvis.lobsters"
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner = "com.karumi.shot.ShotTestRunner"
}
buildFeatures.compose = true
diff --git a/app/src/androidTest/AndroidManifest.xml b/app/src/androidTest/AndroidManifest.xml
new file mode 100644
index 00000000..a82a05b3
--- /dev/null
+++ b/app/src/androidTest/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/app/src/androidTest/java/dev/msfjarvis/lobsters/ui/posts/LobstersItemTest.kt b/app/src/androidTest/java/dev/msfjarvis/lobsters/ui/posts/LobstersItemTest.kt
new file mode 100644
index 00000000..9439b282
--- /dev/null
+++ b/app/src/androidTest/java/dev/msfjarvis/lobsters/ui/posts/LobstersItemTest.kt
@@ -0,0 +1,32 @@
+package dev.msfjarvis.lobsters.ui.posts
+
+import androidx.compose.ui.graphics.asAndroidBitmap
+import androidx.compose.ui.test.captureToImage
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onRoot
+import com.karumi.shot.ScreenshotTest
+import dev.msfjarvis.lobsters.ui.theme.LobstersTheme
+import org.junit.Rule
+import org.junit.Test
+
+class LobstersItemTest : ScreenshotTest {
+
+ @get:Rule
+ val composeTestRule = createComposeRule()
+
+ @Test
+ fun postsAreRenderedCorrectlyOnScreen() {
+ composeTestRule.setContent {
+ LobstersTheme {
+ LobstersItem(
+ post = TEST_POST,
+ onClick = { /*TODO*/ },
+ onLongClick = { /*TODO*/ },
+ onSaveButtonClick = { /*TODO*/ },
+ isSaved = true,
+ )
+ }
+ }
+ compareScreenshot(composeTestRule.onRoot().captureToImage().asAndroidBitmap())
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 53f2e72d..0e9e7dbf 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
+ package="dev.msfjarvis.lobsters"
+ android:sharedUserId="${applicationId}.uid">
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index ac32817f..fcf191cd 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -34,5 +34,6 @@ dependencies {
implementation(Plugins.jsemver)
implementation(Plugins.lintModel)
implementation(Plugins.kotlin)
+ implementation(Plugins.shot)
implementation(Plugins.sqldelight)
}
diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt
index 4bd295a5..dc36436b 100644
--- a/buildSrc/src/main/java/Dependencies.kt
+++ b/buildSrc/src/main/java/Dependencies.kt
@@ -11,6 +11,7 @@ object Plugins {
const val hilt = "com.google.dagger:hilt-android-gradle-plugin:${DAGGER_HILT_VERSION}"
const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30"
const val jsemver = "com.github.zafarkhaja:java-semver:0.9.0"
+ const val shot = "com.karumi:shot:5.8.0"
const val sqldelight = "com.squareup.sqldelight:gradle-plugin:1.4.4"
}