paparazzi-tests: setup a base test class

This commit is contained in:
Harsh Shandilya 2022-06-29 23:31:36 +05:30
parent 4b6cc1659d
commit 431444f87c
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
3 changed files with 18 additions and 19 deletions

View file

@ -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
}

View file

@ -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) }
}

View file

@ -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) } }
}
}