diff --git a/app/src/test/java/com/m57/hermescontrol/ui/settings/SettingsViewModelTest.kt b/app/src/test/java/com/m57/hermescontrol/ui/settings/SettingsViewModelTest.kt index 6f9c5caf..9c02a32a 100644 --- a/app/src/test/java/com/m57/hermescontrol/ui/settings/SettingsViewModelTest.kt +++ b/app/src/test/java/com/m57/hermescontrol/ui/settings/SettingsViewModelTest.kt @@ -12,7 +12,9 @@ import io.mockk.verify import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.resetMain +import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.setMain import org.junit.After import org.junit.Assert.assertEquals @@ -105,6 +107,40 @@ class SettingsViewModelTest { assertEquals("Work", state.renameProfileName) } + @Test + fun testLoadSettings_loadsAllProperties() = + runTest { + every { AuthManager.getSelectedProfileId() } answers { "prof-2" } + every { AuthManager.getBaseUrl() } returns "https://192.168.1.10:9119/" + every { AuthManager.getToken() } returns "dummy_token" + every { AuthManager.isAutoReconnect() } returns false + every { AuthManager.getThemePreference() } returns ThemePreference.DARK + every { AuthManager.isUseDynamicColors() } returns false + every { AuthManager.getThemePreset() } returns ThemePreset.CATPPUCCIN + every { AuthManager.isTypingEffectEnabled() } returns false + every { AuthManager.getTypingEffectDelayMs() } returns 15 + every { AuthManager.getConnectionProfiles() } returns testProfiles + every { AuthManager.getAppLanguage() } returns "fr" + + val viewModel = SettingsViewModel(ioDispatcher = testDispatcher) + testDispatcher.scheduler.advanceUntilIdle() + + val state = viewModel.uiState.value + + assertEquals("https://192.168.1.10:9119/", state.baseUrl) + assertEquals("dummy_token", state.token) + assertEquals(false, state.autoReconnect) + assertEquals(ThemePreference.DARK, state.themePreference) + assertEquals(false, state.useDynamicColors) + assertEquals(ThemePreset.CATPPUCCIN, state.themePreset) + assertEquals(false, state.typingEffectEnabled) + assertEquals(15, state.typingEffectDelayMs) + assertEquals(testProfiles, state.profiles) + assertEquals("prof-2", state.selectedProfileId) + assertEquals("Home", state.renameProfileName) + assertEquals("fr", state.appLanguage) + } + @Test fun testLoadSettings_noSelectedProfile_renameEmpty() { every { AuthManager.getConnectionProfiles() } returns testProfiles