From a72bb98f1a0aaa3020904fea2b1592bdb8d3bb11 Mon Sep 17 00:00:00 2001 From: TM Date: Fri, 24 May 2024 00:33:20 -0700 Subject: [PATCH] Update Screenshot testing dependencies --- .../ui/NiaAppScreenSizesScreenshotTests.kt | 5 +++ .../ui/SnackbarScreenshotTests.kt | 5 +++ .../core/data/test/FakeErrorMonitor.kt | 36 +++++++++++++++++++ .../core/data/test/TestDataModule.kt | 6 ++++ .../core/testing/util/TestErrorMonitor.kt | 2 +- 5 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/FakeErrorMonitor.kt diff --git a/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppScreenSizesScreenshotTests.kt b/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppScreenSizesScreenshotTests.kt index 1cca5a13a..a118d2566 100644 --- a/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppScreenSizesScreenshotTests.kt +++ b/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppScreenSizesScreenshotTests.kt @@ -33,6 +33,7 @@ import com.github.takahirom.roborazzi.captureRoboImage import com.google.samples.apps.nowinandroid.core.data.repository.TopicsRepository import com.google.samples.apps.nowinandroid.core.data.repository.UserDataRepository import com.google.samples.apps.nowinandroid.core.data.repository.UserNewsResourceRepository +import com.google.samples.apps.nowinandroid.core.data.util.ErrorMonitor import com.google.samples.apps.nowinandroid.core.data.util.NetworkMonitor import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme @@ -91,6 +92,9 @@ class NiaAppScreenSizesScreenshotTests { @Inject lateinit var networkMonitor: NetworkMonitor + @Inject + lateinit var errorMonitor: ErrorMonitor + @Inject lateinit var timeZoneMonitor: TimeZoneMonitor @@ -135,6 +139,7 @@ class NiaAppScreenSizesScreenshotTests { NiaTheme { val fakeAppState = rememberNiaAppState( networkMonitor = networkMonitor, + errorMonitor = errorMonitor, userNewsResourceRepository = userNewsResourceRepository, timeZoneMonitor = timeZoneMonitor, ) diff --git a/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/SnackbarScreenshotTests.kt b/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/SnackbarScreenshotTests.kt index 6f12dd620..b5c2675d9 100644 --- a/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/SnackbarScreenshotTests.kt +++ b/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/SnackbarScreenshotTests.kt @@ -37,6 +37,7 @@ import com.github.takahirom.roborazzi.captureRoboImage import com.google.samples.apps.nowinandroid.core.data.repository.TopicsRepository import com.google.samples.apps.nowinandroid.core.data.repository.UserNewsResourceRepository import com.google.samples.apps.nowinandroid.core.data.test.repository.FakeUserDataRepository +import com.google.samples.apps.nowinandroid.core.data.util.ErrorMonitor import com.google.samples.apps.nowinandroid.core.data.util.NetworkMonitor import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme @@ -97,6 +98,9 @@ class SnackbarScreenshotTests { @Inject lateinit var networkMonitor: NetworkMonitor + @Inject + lateinit var errorMonitor: ErrorMonitor + @Inject lateinit var timeZoneMonitor: TimeZoneMonitor @@ -215,6 +219,7 @@ class SnackbarScreenshotTests { NiaTheme { val appState = rememberNiaAppState( networkMonitor = networkMonitor, + errorMonitor = errorMonitor, userNewsResourceRepository = userNewsResourceRepository, timeZoneMonitor = timeZoneMonitor, ) diff --git a/core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/FakeErrorMonitor.kt b/core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/FakeErrorMonitor.kt new file mode 100644 index 000000000..832edb52c --- /dev/null +++ b/core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/FakeErrorMonitor.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.nowinandroid.core.data.test + +import com.google.samples.apps.nowinandroid.core.data.util.ErrorMessage +import com.google.samples.apps.nowinandroid.core.data.util.ErrorMonitor +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flowOf +import javax.inject.Inject + +class FakeErrorMonitor @Inject constructor() : ErrorMonitor { + override fun addErrorMessage(error: String): String? { + return "1" + } + + override fun clearErrorMessage(id: String) { + // Do nothing + } + + override val errorMessage: Flow + get() = flowOf(null) +} diff --git a/core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt b/core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt index 46158479c..515259ddd 100644 --- a/core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt +++ b/core/data-test/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt @@ -27,6 +27,7 @@ import com.google.samples.apps.nowinandroid.core.data.test.repository.FakeRecent import com.google.samples.apps.nowinandroid.core.data.test.repository.FakeSearchContentsRepository import com.google.samples.apps.nowinandroid.core.data.test.repository.FakeTopicsRepository import com.google.samples.apps.nowinandroid.core.data.test.repository.FakeUserDataRepository +import com.google.samples.apps.nowinandroid.core.data.util.ErrorMonitor import com.google.samples.apps.nowinandroid.core.data.util.NetworkMonitor import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor import dagger.Binds @@ -72,4 +73,9 @@ internal interface TestDataModule { @Binds fun binds(impl: DefaultZoneIdTimeZoneMonitor): TimeZoneMonitor + + @Binds + fun bindsErrorMonitor( + errorMonitor: FakeErrorMonitor, + ): ErrorMonitor } diff --git a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/TestErrorMonitor.kt b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/TestErrorMonitor.kt index ca8e255ef..27af99390 100644 --- a/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/TestErrorMonitor.kt +++ b/core/testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/TestErrorMonitor.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.core.testing.util; +package com.google.samples.apps.nowinandroid.core.testing.util import com.google.samples.apps.nowinandroid.core.data.util.ErrorMessage import com.google.samples.apps.nowinandroid.core.data.util.ErrorMonitor