https://kotlinlang.org logo
a

Aidan Low

06/22/2022, 12:00 AM
A helper like this seems to do the trick, though perhaps it's overly specific to my use case. Feedback is welcome.
Copy code
fun TestScope.observeStateFlows(
    vararg stateFlows: StateFlow<Any?>,
    block: () -> Unit
) {
    val observationJobs = stateFlows.map { flow ->
        launch {
            flow.collect {}
        }
    }

    try {
        runCurrent()
        block.invoke()
    } finally {
        observationJobs.forEach { it.cancel() }
    }
}
3 Views