diff --git a/feature/settings/src/androidUnitTest/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModelTest.kt b/feature/settings/src/androidUnitTest/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModelTest.kt index cd0da2c..6df2e02 100644 --- a/feature/settings/src/androidUnitTest/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModelTest.kt +++ b/feature/settings/src/androidUnitTest/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModelTest.kt @@ -23,7 +23,6 @@ import com.garfiec.librechat.feature.settings.util.PlatformCacheCleaner import com.garfiec.librechat.feature.settings.viewmodel.delegate.SpeechSettingsContract import com.garfiec.librechat.feature.settings.viewmodel.delegate.SpeechSettingsFactory import com.google.common.truth.Truth.assertThat -import io.mockk.Ordering import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every @@ -158,23 +157,20 @@ class SettingsViewModelTest { } @Test - fun `logout calls authRepository and sets isLoggedOut`() = runTest { - coEvery { authRepository.logout() } returns Result.Success(Unit) - + fun `logout sets isLoggedOut flag without calling authRepository`() = runTest { viewModel = createViewModel() advanceUntilIdle() viewModel.logout() advanceUntilIdle() - coVerify { authRepository.logout() } + coVerify(exactly = 0) { authRepository.logout() } assertThat(viewModel.uiState.value.isLoggedOut).isTrue() } @Test - fun `deleteAccount calls userRepository then authRepository`() = runTest { + fun `deleteAccount calls userRepository and sets isAccountDeleted without calling authRepository`() = runTest { coEvery { userRepository.deleteUser() } returns Result.Success(Unit) - coEvery { authRepository.logout() } returns Result.Success(Unit) viewModel = createViewModel() advanceUntilIdle() @@ -182,10 +178,8 @@ class SettingsViewModelTest { viewModel.deleteAccount() advanceUntilIdle() - coVerify(ordering = Ordering.ORDERED) { - userRepository.deleteUser() - authRepository.logout() - } + coVerify { userRepository.deleteUser() } + coVerify(exactly = 0) { authRepository.logout() } assertThat(viewModel.uiState.value.isAccountDeleted).isTrue() } diff --git a/feature/settings/src/commonMain/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModel.kt b/feature/settings/src/commonMain/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModel.kt index 213a186..0f14249 100644 --- a/feature/settings/src/commonMain/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModel.kt +++ b/feature/settings/src/commonMain/kotlin/com/garfiec/librechat/feature/settings/viewmodel/SettingsViewModel.kt @@ -585,11 +585,7 @@ class SettingsViewModel( // ── Auth actions ─────────────────────────────────────────────── fun logout() { - viewModelScope.launch { - _uiState.update { it.copy(isLoading = true) } - authRepository.logout() - _uiState.update { it.copy(isLoading = false, isLoggedOut = true) } - } + _uiState.update { it.copy(isLoggedOut = true) } } fun deleteAccount(token: String? = null, backupCode: String? = null) { @@ -597,7 +593,6 @@ class SettingsViewModel( _uiState.update { it.copy(isLoading = true) } when (val result = userRepository.deleteUser(token = token, backupCode = backupCode)) { is Result.Success -> { - authRepository.logout() _uiState.update { it.copy(isLoading = false, isAccountDeleted = true, showDeleteAccountOtpDialog = false) } } is Result.Error -> {