From 00513a18da78227f11eb8843aa8eea1cea9bafab Mon Sep 17 00:00:00 2001 From: Honza Rychnovsky Date: Mon, 14 Nov 2022 21:56:06 +0100 Subject: [PATCH] [#667] Fix for Update VM flaky test results * [#667] Fix for Update VM flaky test results - Added small delays to the AppUpdateCheckerMock functions to copy a real-world situation a bit more - This also helps with satisfying expectations in UpdateViewModelTest * Typo fix * Make duration more explicit Co-authored-by: Carter Jernigan --- .../test/screen/update/viewmodel/AppUpdateCheckerMock.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ui-integration-test/src/main/java/co/electriccoin/zcash/ui/integration/test/screen/update/viewmodel/AppUpdateCheckerMock.kt b/ui-integration-test/src/main/java/co/electriccoin/zcash/ui/integration/test/screen/update/viewmodel/AppUpdateCheckerMock.kt index 67c323d5..742f3ae7 100644 --- a/ui-integration-test/src/main/java/co/electriccoin/zcash/ui/integration/test/screen/update/viewmodel/AppUpdateCheckerMock.kt +++ b/ui-integration-test/src/main/java/co/electriccoin/zcash/ui/integration/test/screen/update/viewmodel/AppUpdateCheckerMock.kt @@ -14,9 +14,11 @@ import com.google.android.play.core.appupdate.testing.FakeAppUpdateManager import com.google.android.play.core.install.model.AppUpdateType import kotlinx.coroutines.channels.ProducerScope import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.flow +import kotlin.time.Duration.Companion.milliseconds class AppUpdateCheckerMock private constructor() : AppUpdateChecker { @@ -50,6 +52,9 @@ class AppUpdateCheckerMock private constructor() : AppUpdateChecker { val appUpdateInfoTask = fakeAppUpdateManager.appUpdateInfo + // to simulate a real-world situation + delay(100.milliseconds) + appUpdateInfoTask.addOnCompleteListener { infoTask -> emitResult(this, infoTask.result) } @@ -74,6 +79,8 @@ class AppUpdateCheckerMock private constructor() : AppUpdateChecker { activity: ComponentActivity, appUpdateInfo: AppUpdateInfo ): Flow = flow { + // to simulate a real-world situation + delay(100.milliseconds) emit(Activity.RESULT_OK) } }