From aa127de3f137fb1fb1eb3a1804f1fcbd9bb799a5 Mon Sep 17 00:00:00 2001
From: Mohamed Metwalli <mohamed.metwalli@sap.com>
Date: Thu, 31 Dec 2020 11:47:04 +0100
Subject: [PATCH] Enable screenshot test

---
 .../OnboardingTracingFragmentTest.kt          | 28 +++++++++++++++----
 1 file changed, 23 insertions(+), 5 deletions(-)

diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
index 1092ec13a..090c645c6 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
@@ -10,33 +10,51 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
 import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.nearby.TracingPermissionHelper
+import de.rki.coronawarnapp.storage.interoperability.InteroperabilityRepository
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
-import io.mockk.impl.annotations.SpyK
+import io.mockk.just
+import io.mockk.spyk
 import org.junit.After
 import org.junit.Before
-import org.junit.Ignore
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
+import testhelpers.TestDispatcherProvider
 import tools.fastlane.screengrab.Screengrab
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
 class OnboardingTracingFragmentTest : BaseUITest() {
 
-    @MockK lateinit var viewModel: OnboardingTracingFragmentViewModel
+    @MockK lateinit var interopRepo: InteroperabilityRepository
+    @MockK lateinit var factory: TracingPermissionHelper.Factory
+
+    @Rule
+    @JvmField
+    val localeTestRule = LocaleTestRule()
 
     @Before
     fun setup() {
         MockKAnnotations.init(this, relaxed = true)
 
+        val viewModelSpy = spyk(
+            OnboardingTracingFragmentViewModel(
+                interoperabilityRepository = interopRepo,
+                tracingPermissionHelperFactory = factory,
+                dispatcherProvider = TestDispatcherProvider
+            )
+        )
+
+        every { viewModelSpy.resetTracing() } just Runs
+
         setupMockViewModel(object : OnboardingTracingFragmentViewModel.Factory {
-            override fun create(): OnboardingTracingFragmentViewModel = viewModel
+            override fun create(): OnboardingTracingFragmentViewModel = viewModelSpy
         })
     }
 
@@ -50,7 +68,7 @@ class OnboardingTracingFragmentTest : BaseUITest() {
         launchFragment<OnboardingTracingFragment>()
     }
 
-    @Ignore("Exclude until mocked viewModel is replaced") // @Screenshot
+    @Screenshot
     @Test
     fun capture_screenshot() {
         val simpleName = OnboardingTracingFragment::class.simpleName
-- 
GitLab