From 431444f87c0625f1dc25192760fb6706f6269259 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 29 Jun 2022 23:31:36 +0530 Subject: [PATCH] paparazzi-tests: setup a base test class --- .../claw/android/tests/BasePaparazziTest.kt | 14 ++++++++++++++ .../claw/android/tests/LobstersCardTest.kt | 11 ++--------- .../claw/android/tests/MonthHeaderTest.kt | 12 ++---------- 3 files changed, 18 insertions(+), 19 deletions(-) create mode 100644 paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/BasePaparazziTest.kt diff --git a/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/BasePaparazziTest.kt b/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/BasePaparazziTest.kt new file mode 100644 index 00000000..eb0ae331 --- /dev/null +++ b/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/BasePaparazziTest.kt @@ -0,0 +1,14 @@ +package dev.msfjarvis.claw.android.tests + +import app.cash.paparazzi.Paparazzi +import com.google.testing.junit.testparameterinjector.TestParameter +import com.google.testing.junit.testparameterinjector.TestParameterInjector +import org.junit.Rule +import org.junit.runner.RunWith + +/** Base class for Paparazzi based tests that handles parameterization based on [Theme]. */ +@RunWith(TestParameterInjector::class) +abstract class BasePaparazziTest { + @get:Rule val paparazzi = Paparazzi() + @TestParameter lateinit var theme: Theme +} diff --git a/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/LobstersCardTest.kt b/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/LobstersCardTest.kt index cdbb71a8..65ffe37d 100644 --- a/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/LobstersCardTest.kt +++ b/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/LobstersCardTest.kt @@ -1,19 +1,12 @@ package dev.msfjarvis.claw.android.tests import androidx.compose.material3.MaterialTheme -import app.cash.paparazzi.Paparazzi -import com.google.testing.junit.testparameterinjector.TestParameter -import com.google.testing.junit.testparameterinjector.TestParameterInjector import dev.msfjarvis.claw.common.posts.LobstersCard import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.database.local.SavedPost -import org.junit.Rule import org.junit.Test -import org.junit.runner.RunWith -@RunWith(TestParameterInjector::class) -class LobstersCardTest { - @get:Rule val paparazzi = Paparazzi() +class LobstersCardTest : BasePaparazziTest() { companion object { private val post = SavedPost( @@ -40,7 +33,7 @@ class LobstersCardTest { } @Test - fun verify(@TestParameter theme: Theme) { + fun verify() { paparazzi.snapshot { MaterialTheme(colorScheme = theme.colors) { LobstersCard(post, false, postActions) } } diff --git a/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/MonthHeaderTest.kt b/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/MonthHeaderTest.kt index 281a2881..fe9e8f82 100644 --- a/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/MonthHeaderTest.kt +++ b/paparazzi-tests/src/test/kotlin/dev/msfjarvis/claw/android/tests/MonthHeaderTest.kt @@ -1,21 +1,13 @@ package dev.msfjarvis.claw.android.tests import androidx.compose.material3.MaterialTheme -import app.cash.paparazzi.Paparazzi -import com.google.testing.junit.testparameterinjector.TestParameter -import com.google.testing.junit.testparameterinjector.TestParameterInjector import dev.msfjarvis.claw.common.ui.decorations.MonthHeader import kotlinx.datetime.Month -import org.junit.Rule import org.junit.Test -import org.junit.runner.RunWith - -@RunWith(TestParameterInjector::class) -class MonthHeaderTest { - @get:Rule val paparazzi = Paparazzi() +class MonthHeaderTest : BasePaparazziTest() { @Test - fun verify(@TestParameter theme: Theme) { + fun verify() { paparazzi.snapshot { MaterialTheme(colorScheme = theme.colors) { MonthHeader(Month.APRIL) } } } }