I was able to simplify my test with... it seems th...
# coroutines
j
I was able to simplify my test with... it seems the
stateIn
causes the test to fail, but if I use
flow.test
my test passes...
Copy code
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"
        )
    }
}