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