Add Testcase to verify 'viewedNewsResources'

pull/1320/head
yongsuk44 2 years ago
parent 9c4ec4d2d9
commit 8d008fba53

@ -76,16 +76,13 @@ class TestUserDataRepository : UserDataRepository {
override suspend fun setNewsResourceViewed(newsResourceId: String, viewed: Boolean) { override suspend fun setNewsResourceViewed(newsResourceId: String, viewed: Boolean) {
currentUserData.let { current -> currentUserData.let { current ->
_userData.tryEmit( val viewedNews = if (viewed) {
current.copy( current.viewedNewsResources + newsResourceId
viewedNewsResources = } else {
if (viewed) { current.viewedNewsResources - newsResourceId
current.viewedNewsResources + newsResourceId }
} else {
current.viewedNewsResources - newsResourceId _userData.tryEmit(current.copy(viewedNewsResources = viewedNews))
},
),
)
} }
} }

@ -524,6 +524,17 @@ class ForYouViewModelTest {
actual = userDataRepository.userData.first().bookmarkedNewsResources, actual = userDataRepository.userData.first().bookmarkedNewsResources,
) )
} }
@Test
fun whenSetNewsResourceViewedIsCalled_viewedStateIsUpdated() = runTest {
val newsResourceId = "123"
viewModel.setNewsResourceViewed(newsResourceId, true)
assertEquals(
expected = setOf(newsResourceId),
actual = userDataRepository.userData.first().viewedNewsResources,
)
}
} }
private val sampleTopics = listOf( private val sampleTopics = listOf(

@ -30,7 +30,6 @@ import org.junit.Before
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.test.assertIs
class SettingsViewModelTest { class SettingsViewModelTest {

Loading…
Cancel
Save