From aba1b98c1d33ea26d9c8ec39d9e461929410717e Mon Sep 17 00:00:00 2001 From: Matthias Urhahn <matthias.urhahn@sap.com> Date: Mon, 14 Dec 2020 12:59:58 +0100 Subject: [PATCH] Fix symptom indication not being set correctly if NEGATIVE (EXPOSUREAPP-4286) #1887 --- .../SubmissionSymptomIntroductionViewModel.kt | 10 +++++++++- .../SubmissionSymptomIntroductionViewModelTest.kt | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModel.kt index f7c697b4f..a94ebdcd1 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModel.kt @@ -37,7 +37,15 @@ class SubmissionSymptomIntroductionViewModel @AssistedInject constructor( ) ) } - Symptoms.Indication.NEGATIVE -> doSubmit() + Symptoms.Indication.NEGATIVE -> { + submissionRepository.currentSymptoms.update { + Symptoms( + startOfSymptoms = null, + symptomIndication = Symptoms.Indication.NEGATIVE + ) + } + doSubmit() + } Symptoms.Indication.NO_INFORMATION -> showCancelDialog.postValue(Unit) } } diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt index f54546746..81aa516b7 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt @@ -22,11 +22,13 @@ import org.junit.jupiter.api.extension.ExtendWith import testhelpers.BaseTest import testhelpers.TestDispatcherProvider import testhelpers.extensions.InstantExecutorExtension +import testhelpers.preferences.mockFlowPreference @ExtendWith(InstantExecutorExtension::class) class SubmissionSymptomIntroductionViewModelTest : BaseTest() { @MockK lateinit var submissionRepository: SubmissionRepository + private val currentSymptoms = mockFlowPreference<Symptoms?>(null) @BeforeEach fun setUp() { @@ -34,6 +36,7 @@ class SubmissionSymptomIntroductionViewModelTest : BaseTest() { every { submissionRepository.isSubmissionRunning } returns flowOf(false) coEvery { submissionRepository.startSubmission() } just Runs + every { submissionRepository.currentSymptoms } returns currentSymptoms } @AfterEach @@ -79,6 +82,10 @@ class SubmissionSymptomIntroductionViewModelTest : BaseTest() { onNextClicked() navigation.value shouldBe SubmissionSymptomIntroductionFragmentDirections .actionSubmissionSymptomIntroductionFragmentToMainFragment() + currentSymptoms.value shouldBe Symptoms( + startOfSymptoms = null, + symptomIndication = Symptoms.Indication.NEGATIVE + ) } coVerify { submissionRepository.startSubmission() } @@ -100,6 +107,8 @@ class SubmissionSymptomIntroductionViewModelTest : BaseTest() { fun `submission by abort does not write any symptom data`() { createViewModel().onCancelConfirmed() + currentSymptoms.value shouldBe null + coVerifySequence { submissionRepository.isSubmissionRunning submissionRepository.startSubmission() -- GitLab