Fixes failing test after coroutine lib upgrade.

The changed test case started failing after the coroutines library has
been upgraded; not sure why.

This fixes it by adding an additional runCurrent() right after
collectLastValue is called. This gives an opportunity for the upstream
conflatedCallbackFlow to do its work and register its callback.

When the value is queried in the assertion line, collectLastValue runs
its own runCurrent() to trigger any pending coroutines, updating the
value that the test sees.

Bug: 292807808
Test: N/A
Change-Id: If42e96e9ae29ae6e0585f6c2b567cca7b15d581e
This commit is contained in:
Alejandro Nijamkin
2023-07-26 16:14:53 -07:00
parent cd26767566
commit 2964de1d65

View File

@@ -26,6 +26,7 @@ import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Test
import org.junit.runner.RunWith
@@ -51,6 +52,7 @@ class RetailModeSettingsRepositoryTest : SysuiTestCase() {
fun retailMode_defaultFalse() =
testScope.runTest {
val value by collectLastValue(underTest.retailMode)
runCurrent()
assertThat(value).isFalse()
assertThat(underTest.inRetailMode).isFalse()
@@ -60,6 +62,7 @@ class RetailModeSettingsRepositoryTest : SysuiTestCase() {
fun retailMode_false() =
testScope.runTest {
val value by collectLastValue(underTest.retailMode)
runCurrent()
globalSettings.putInt(SETTING, 0)
@@ -71,6 +74,7 @@ class RetailModeSettingsRepositoryTest : SysuiTestCase() {
fun retailMode_true() =
testScope.runTest {
val value by collectLastValue(underTest.retailMode)
runCurrent()
globalSettings.putInt(SETTING, 1)