From f3d4b7c54698ca72a3c922cb151e3bc3ffd3ea3b Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 13 Aug 2025 12:32:47 +0200 Subject: [PATCH] Create FakeAppErrorStateService --- services/apperror/test/build.gradle.kts | 20 +++++++++++ .../apperror/test/FakeAppErrorStateService.kt | 36 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 services/apperror/test/build.gradle.kts create mode 100644 services/apperror/test/src/main/kotlin/io/element/android/services/apperror/test/FakeAppErrorStateService.kt diff --git a/services/apperror/test/build.gradle.kts b/services/apperror/test/build.gradle.kts new file mode 100644 index 0000000000..c8ac902784 --- /dev/null +++ b/services/apperror/test/build.gradle.kts @@ -0,0 +1,20 @@ +/* + * Copyright 2025 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial + * Please see LICENSE files in the repository root for full details. + */ + +plugins { + id("io.element.android-library") +} + +android { + namespace = "io.element.android.services.apperror.test" +} + +dependencies { + implementation(libs.coroutines.core) + implementation(projects.services.apperror.api) + implementation(projects.tests.testutils) +} diff --git a/services/apperror/test/src/main/kotlin/io/element/android/services/apperror/test/FakeAppErrorStateService.kt b/services/apperror/test/src/main/kotlin/io/element/android/services/apperror/test/FakeAppErrorStateService.kt new file mode 100644 index 0000000000..0783d08e02 --- /dev/null +++ b/services/apperror/test/src/main/kotlin/io/element/android/services/apperror/test/FakeAppErrorStateService.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2025 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial + * Please see LICENSE files in the repository root for full details. + */ + +package io.element.android.services.apperror.test + +import io.element.android.services.apperror.api.AppErrorState +import io.element.android.services.apperror.api.AppErrorStateService +import io.element.android.tests.testutils.lambda.lambdaError +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow + +class FakeAppErrorStateService( + initialState: AppErrorState = AppErrorState.NoError, + private val showErrorResult: (String, String) -> Unit = { _, _ -> lambdaError() }, + private val showErrorResResult: (Int, Int) -> Unit = { _, _ -> lambdaError() } +) : AppErrorStateService { + private val mutableAppErrorStateFlow = MutableStateFlow(initialState) + override val appErrorStateFlow: StateFlow = mutableAppErrorStateFlow.asStateFlow() + + override fun showError(title: String, body: String) { + showErrorResult(title, body) + } + + override fun showError(titleRes: Int, bodyRes: Int) { + showErrorResResult(titleRes, bodyRes) + } + + fun setAppErrorState(state: AppErrorState) { + mutableAppErrorStateFlow.value = state + } +}