From 9fe1d344e07b16f40ee575b7b40d8ba418d026b3 Mon Sep 17 00:00:00 2001 From: Alejandro Nijamkin Date: Wed, 26 Jul 2023 16:14:53 -0700 Subject: 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 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:2964de1d655fb33d359209329b82cbe899f31cad) Merged-In: If42e96e9ae29ae6e0585f6c2b567cca7b15d581e Change-Id: If42e96e9ae29ae6e0585f6c2b567cca7b15d581e --- .../retail/data/repository/RetailModeSettingsRepositoryTest.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/SystemUI/tests/src/com/android/systemui/retail/data/repository/RetailModeSettingsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/retail/data/repository/RetailModeSettingsRepositoryTest.kt index d7682b20a98d..421c35595026 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/retail/data/repository/RetailModeSettingsRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/retail/data/repository/RetailModeSettingsRepositoryTest.kt @@ -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) -- cgit v1.2.3-59-g8ed1b