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