Merge pull request #43 from garfiec/fix/stop-double-logout
fix(settings): stop double-invoking authRepository.logout on logout/delete
This commit is contained in:
commit
47b3cb1e96
2 changed files with 6 additions and 17 deletions
|
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 -> {
|
||||
|
|
|
|||
Loading…
Reference in a new issue