feat(settings): restore last session on startup (#1102) (#1105)

This commit is contained in:
M57 authored and GitHub committed 2026-09-13 16:45:04 +03:00
1 parent 7e8af8db01
commit 4246ae196d
16 files changed
+234 -4

No files matched your search

@@ -63,6 +63,10 @@ class SettingsViewModelTest {
every { AuthManager.getAppLanguage() } returns "system"
every { AuthManager.getToken() } returns ""
every { AuthManager.isAutoReconnect() } returns true
every { AuthManager.isRestoreLastSession() } returns false
every { AuthManager.setRestoreLastSession(any()) } returns Unit
every { AuthManager.clearLastOpenedSessionIdsForConnection(any()) } returns Unit
every { AuthManager.clearLastOpenedSessionId() } returns Unit
every { AuthManager.getThemePreference() } returns ThemePreference.SYSTEM
every { AuthManager.isUseDynamicColors() } returns true
every { AuthManager.getThemePreset() } returns ThemePreset.DEFAULT
@@ -253,4 +257,26 @@ class SettingsViewModelTest {
verify { AuthManager.setSelectedProfileId(any()) }
assertEquals(true, viewModel.uiState.value.navigateToLogin)
}
@Test
fun testRestoreLastSession_loadsAndUpdatesState() {
every { AuthManager.isRestoreLastSession() } returns true
val viewModel = createViewModel()
assertEquals(true, viewModel.uiState.value.restoreLastSession)
viewModel.onRestoreLastSessionChange(false)
assertEquals(false, viewModel.uiState.value.restoreLastSession)
verify { AuthManager.setRestoreLastSession(false) }
}
@Test
fun testDeleteProfile_clearsStoredSessionIdsForConnection() {
val viewModel = createViewModel()
viewModel.deleteProfile("prof-1")
testDispatcher.scheduler.advanceUntilIdle()
verify { AuthManager.clearLastOpenedSessionIdsForConnection("prof-1") }
}
}