juliocbcotta
05/05/2023, 7:23 AMstateIn
causes the test to fail, but if I use flow.test
my test passes...
fun `fail to unsubscribe should revert UI test to subscribed`() = runTest {
val brand = FavoriteBrand(
brandId = "brandId",
label = "label",
heartState = HeartState.Subscribed
)
val flow = MutableStateFlow(PublishBrand(brand))
val viewState = flow.stateIn(
scope = backgroundScope,
started = SharingStarted.WhileSubscribed(5000),
initialValue = PublishBrand(brand)
)
viewState.test {
assertEquals(
awaitItem(),
PublishBrand(brand),
"Initial Value"
)
flow.emit(PublishBrand(brand.copy(heartState = HeartState.Loading)))
flow.emit(PublishBrand(brand))
assertEquals(
awaitItem(),
PublishBrand(brand.copy(heartState = HeartState.Loading)),
"Loading state while updating brand"
)
assertEquals(
awaitItem(),
PublishBrand(brand),
"Revert state because of the error"
)
}
}