From b97d44b6ff3c65e401f671b29d5c685c018a1072 Mon Sep 17 00:00:00 2001
From: Matthias Urhahn <matthias.urhahn@sap.com>
Date: Tue, 11 May 2021 12:41:26 +0200
Subject: [PATCH] Fix flaky "onTestOpened" PPA unit-test (DEV) (#3140)

* Pass dispatcher provider to run synchronous in unit tests.

* Update SubmissionTestResultNoConsentGivenFragmentTest.kt

Co-authored-by: Mohamed Metwalli <mohamed.metwalli@sap.com>
---
 .../SubmissionTestResultNoConsentGivenFragmentTest.kt         | 2 ++
 .../positive/SubmissionTestResultNoConsentViewModel.kt        | 4 +++-
 .../positive/SubmissionTestResultNoConsentViewModelTest.kt    | 2 ++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt
index 8ccf0d97f..a1c88a8f2 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt
@@ -27,6 +27,7 @@ import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
+import testhelpers.TestDispatcherProvider
 import testhelpers.captureScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
@@ -55,6 +56,7 @@ class SubmissionTestResultNoConsentGivenFragmentTest : BaseUITest() {
         viewModel =
             spyk(
                 SubmissionTestResultNoConsentViewModel(
+                    TestDispatcherProvider(),
                     submissionRepository,
                     testResultAvailableNotificationService,
                     analyticsKeySubmissionCollector,
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModel.kt
index 3c21410fa..1b69fd686 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModel.kt
@@ -12,6 +12,7 @@ import de.rki.coronawarnapp.datadonation.analytics.modules.keysubmission.Analyti
 import de.rki.coronawarnapp.datadonation.analytics.modules.keysubmission.Screen
 import de.rki.coronawarnapp.submission.SubmissionRepository
 import de.rki.coronawarnapp.ui.submission.testresult.TestResultUIState
+import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
 import kotlinx.coroutines.Dispatchers
@@ -20,11 +21,12 @@ import kotlinx.coroutines.flow.map
 import timber.log.Timber
 
 class SubmissionTestResultNoConsentViewModel @AssistedInject constructor(
+    dispatcherProvider: DispatcherProvider,
     private val submissionRepository: SubmissionRepository,
     private val testResultAvailableNotificationService: PCRTestResultAvailableNotificationService,
     private val analyticsKeySubmissionCollector: AnalyticsKeySubmissionCollector,
     @Assisted private val testType: CoronaTest.Type
-) : CWAViewModel() {
+) : CWAViewModel(dispatcherProvider = dispatcherProvider) {
     init {
         Timber.v("init() coronaTestType=%s", testType)
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModelTest.kt
index e47dff84d..3df56fff1 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testresult/positive/SubmissionTestResultNoConsentViewModelTest.kt
@@ -13,6 +13,7 @@ import io.mockk.verify
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
+import testhelpers.TestDispatcherProvider
 
 internal class SubmissionTestResultNoConsentViewModelTest : BaseTest() {
 
@@ -26,6 +27,7 @@ internal class SubmissionTestResultNoConsentViewModelTest : BaseTest() {
     }
 
     private fun createInstance(testType: Type) = SubmissionTestResultNoConsentViewModel(
+        TestDispatcherProvider(),
         submissionRepository,
         testResultAvailableNotificationService,
         analyticsKeySubmissionCollector,
-- 
GitLab