From 2962c14950f2ee8789337971e3bb5a0ad93ac856 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 10:36:40 +0000 Subject: [PATCH] test: add tests for SettingsViewModel toggleDarkMode Added SettingsViewModelTest to cover the toggleDarkMode method. Ensure the state behaves correctly when toggled repeatedly. Also added testing dependencies to feature-settings module to support these tests. Co-authored-by: SayanthRock <202829406+SayanthRock@users.noreply.github.com> --- feature-settings/build.gradle.kts | 2 + .../feature/settings/SettingsViewModelTest.kt | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 feature-settings/src/test/java/com/sayanthrock/rockreleasehub/feature/settings/SettingsViewModelTest.kt diff --git a/feature-settings/build.gradle.kts b/feature-settings/build.gradle.kts index 7e4f065..bc1be46 100644 --- a/feature-settings/build.gradle.kts +++ b/feature-settings/build.gradle.kts @@ -43,4 +43,6 @@ dependencies { implementation(libs.hilt.android) ksp(libs.hilt.compiler) + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } diff --git a/feature-settings/src/test/java/com/sayanthrock/rockreleasehub/feature/settings/SettingsViewModelTest.kt b/feature-settings/src/test/java/com/sayanthrock/rockreleasehub/feature/settings/SettingsViewModelTest.kt new file mode 100644 index 0000000..913e59a --- /dev/null +++ b/feature-settings/src/test/java/com/sayanthrock/rockreleasehub/feature/settings/SettingsViewModelTest.kt @@ -0,0 +1,40 @@ +package com.sayanthrock.rockreleasehub.feature.settings + +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test + +class SettingsViewModelTest { + + private lateinit var viewModel: SettingsViewModel + + @Before + fun setup() { + viewModel = SettingsViewModel() + } + + @Test + fun initialStateIsSuccessWithDarkModeTrue() { + val expectedState = SettingsState.Success(isDarkMode = true) + assertEquals(expectedState, viewModel.uiState.value) + } + + @Test + fun toggleDarkMode_changesDarkModeToFalse() { + // Initial state is true + viewModel.toggleDarkMode() + + val expectedState = SettingsState.Success(isDarkMode = false) + assertEquals(expectedState, viewModel.uiState.value) + } + + @Test + fun toggleDarkMode_twice_changesDarkModeBackToTrue() { + // Initial state is true + viewModel.toggleDarkMode() // to false + viewModel.toggleDarkMode() // back to true + + val expectedState = SettingsState.Success(isDarkMode = true) + assertEquals(expectedState, viewModel.uiState.value) + } +}