From 203f7ad898649d977dc28bf9fc62b6413ea02374 Mon Sep 17 00:00:00 2001 From: Hager Abobakr Date: Thu, 3 Jul 2025 19:24:01 +0300 Subject: [PATCH] add test to onMoveStatusSuccess and onMoveStatusFail functions --- .../screen/home/HomeScreenViewModelTest.kt | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/app/src/test/java/com/sanaa/tudee_assistant/presentation/screen/home/HomeScreenViewModelTest.kt b/app/src/test/java/com/sanaa/tudee_assistant/presentation/screen/home/HomeScreenViewModelTest.kt index d0443290..4d7e9a20 100644 --- a/app/src/test/java/com/sanaa/tudee_assistant/presentation/screen/home/HomeScreenViewModelTest.kt +++ b/app/src/test/java/com/sanaa/tudee_assistant/presentation/screen/home/HomeScreenViewModelTest.kt @@ -8,7 +8,6 @@ import com.sanaa.tudee_assistant.domain.service.TaskService import com.sanaa.tudee_assistant.presentation.model.TaskUiState import com.sanaa.tudee_assistant.presentation.model.TaskUiStatus import com.sanaa.tudee_assistant.presentation.model.mapper.toDomain -import com.sanaa.tudee_assistant.presentation.screen.tasks.TaskViewModelTest import io.mockk.Runs import io.mockk.coEvery import io.mockk.coVerify @@ -23,7 +22,6 @@ import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.setMain import kotlinx.datetime.LocalDateTime import org.junit.jupiter.api.AfterEach -import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.BeforeEach import kotlin.test.Test @@ -85,7 +83,7 @@ class HomeScreenViewModelTest { val state = viewModel.state.value - assertThat(state.snackBarState.message).isEqualTo("Task added successfully!") + assertThat(state.snackBarState.message).isEqualTo(TASK_ADDED_SUCCESS) assertThat(state.snackBarState.isVisible).isTrue() } @@ -133,7 +131,7 @@ class HomeScreenViewModelTest { @Test fun `onAddTaskError should show error snackbar`() = runTest { - val errorMessage = "Failed to add task" + val errorMessage = TASK_STATUS_UPDATE_ERROR viewModel.onAddTaskError(errorMessage) val state = viewModel.state.value @@ -146,7 +144,7 @@ class HomeScreenViewModelTest { viewModel.onEditTaskSuccess() val state = viewModel.state.value - assertThat(state.snackBarState.message).isEqualTo("Edited task successfully.") + assertThat(state.snackBarState.message).isEqualTo(TASK_UPDATE_SUCCESS) assertThat(state.snackBarState.isVisible).isTrue() } @@ -192,6 +190,27 @@ class HomeScreenViewModelTest { val state = viewModel.state.value assertThat(state.showAddTaskSheet).isFalse() } + @Test + fun `onMoveStatusSuccess should reload tasks, show success snackbar and hide bottom sheet`() = runTest { + coEvery { taskService.getTasksByDueDate(any()) } returns flowOf(emptyList()) + + viewModel.onMoveStatusSuccess() + + val state = viewModel.state.value + assertThat(state.snackBarState.message).isEqualTo(TASK_STATUS_UPDATE_SUCCESS) + assertThat(state.snackBarState.isVisible).isTrue() + assertThat(state.showTaskDetailsBottomSheet).isFalse() + } + @Test + fun `onMoveStatusFail should show error snackbar with correct message`() = runTest { + viewModel.onMoveStatusFail() + + val state = viewModel.state.value + assertThat(state.snackBarState.message).isEqualTo(TASK_STATUS_UPDATE_ERROR) + assertThat(state.snackBarState.isVisible).isTrue() + } + + private companion object { const val UNKNOWN_ERROR = "Unknown error"