Add tests for list of posts

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-03-21 22:57:12 +05:30
parent 6f1a488b92
commit ced3aa44f1
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80

View file

@ -1,11 +1,13 @@
package dev.msfjarvis.lobsters.ui.posts package dev.msfjarvis.lobsters.ui.posts
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.asAndroidBitmap
import androidx.compose.ui.test.captureToImage import androidx.compose.ui.test.captureToImage
import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onRoot import androidx.compose.ui.test.onRoot
import com.karumi.shot.ScreenshotTest import com.karumi.shot.ScreenshotTest
import dev.msfjarvis.lobsters.ui.DarkTestTheme import dev.msfjarvis.lobsters.ui.DarkTestTheme
import dev.msfjarvis.lobsters.ui.LightTestTheme
import kotlin.test.Test import kotlin.test.Test
import org.junit.Rule import org.junit.Rule
@ -15,7 +17,7 @@ class LobstersItemTest : ScreenshotTest {
val composeTestRule = createComposeRule() val composeTestRule = createComposeRule()
@Test @Test
fun postsAreRenderedCorrectlyOnScreen() { fun singlePost() {
composeTestRule.setContent { composeTestRule.setContent {
DarkTestTheme { DarkTestTheme {
LobstersItem( LobstersItem(
@ -29,4 +31,44 @@ class LobstersItemTest : ScreenshotTest {
} }
compareScreenshot(composeTestRule.onRoot().captureToImage().asAndroidBitmap()) compareScreenshot(composeTestRule.onRoot().captureToImage().asAndroidBitmap())
} }
@Test
fun multiplePosts() {
composeTestRule.setContent {
LightTestTheme {
LazyColumn {
items(10) {
LobstersItem(
post = TEST_POST,
viewPost = { /*TODO*/ },
viewComments = { /*TODO*/ },
toggleSave = { /*TODO*/ },
isSaved = true,
)
}
}
}
}
compareScreenshot(composeTestRule.onRoot().captureToImage().asAndroidBitmap())
}
@Test
fun multiplePostsWithLesserTags() {
composeTestRule.setContent {
LightTestTheme {
LazyColumn {
items(10) {
LobstersItem(
post = TEST_POST.copy(tags = listOf("openbsd", "linux")),
viewPost = { /*TODO*/ },
viewComments = { /*TODO*/ },
toggleSave = { /*TODO*/ },
isSaved = true,
)
}
}
}
}
compareScreenshot(composeTestRule.onRoot().captureToImage().asAndroidBitmap())
}
} }