mirror of
https://github.com/bitwarden/android.git
synced 2025-12-10 09:56:45 -06:00
PM-24727: Update VaultUnlockScreen to use user specific environment (#5690)
This commit is contained in:
parent
26252ebcdb
commit
3282992221
@ -25,7 +25,6 @@ import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.toCreateCredentialRequestOrNull
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.toFido2AssertionRequestOrNull
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.toGetCredentialsRequestOrNull
|
||||
import com.x8bit.bitwarden.data.platform.repository.EnvironmentRepository
|
||||
import com.x8bit.bitwarden.data.vault.manager.VaultLockManager
|
||||
import com.x8bit.bitwarden.data.vault.repository.VaultRepository
|
||||
import com.x8bit.bitwarden.data.vault.repository.model.VaultUnlockResult
|
||||
@ -61,7 +60,6 @@ class VaultUnlockViewModel @Inject constructor(
|
||||
private val bitwardenCredentialManager: BitwardenCredentialManager,
|
||||
private val appResumeManager: AppResumeManager,
|
||||
private val vaultLockManager: VaultLockManager,
|
||||
environmentRepo: EnvironmentRepository,
|
||||
savedStateHandle: SavedStateHandle,
|
||||
) : BaseViewModel<VaultUnlockState, VaultUnlockEvent, VaultUnlockAction>(
|
||||
// We load the state from the savedStateHandle for testing purposes.
|
||||
@ -96,7 +94,7 @@ class VaultUnlockViewModel @Inject constructor(
|
||||
initials = activeAccountSummary.initials,
|
||||
email = activeAccountSummary.email,
|
||||
dialog = null,
|
||||
environmentUrl = environmentRepo.environment.label,
|
||||
environmentUrl = activeAccount.environment.label,
|
||||
input = "",
|
||||
isBiometricEnabled = activeAccount.isBiometricsEnabled,
|
||||
isBiometricsValid = isBiometricsValid,
|
||||
@ -113,14 +111,6 @@ class VaultUnlockViewModel @Inject constructor(
|
||||
},
|
||||
) {
|
||||
init {
|
||||
environmentRepo
|
||||
.environmentStateFlow
|
||||
.onEach { environment ->
|
||||
mutableStateFlow.update {
|
||||
it.copy(environmentUrl = environment.label)
|
||||
}
|
||||
}
|
||||
.launchIn(viewModelScope)
|
||||
authRepository
|
||||
.userStateFlow
|
||||
.onEach {
|
||||
|
||||
@ -3,7 +3,6 @@ package com.x8bit.bitwarden.ui.auth.feature.vaultunlock
|
||||
import androidx.lifecycle.SavedStateHandle
|
||||
import app.cash.turbine.test
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.data.datasource.disk.model.EnvironmentUrlDataJson
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.ui.platform.base.BaseViewModelTest
|
||||
import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
@ -22,8 +21,6 @@ import com.x8bit.bitwarden.data.platform.manager.BiometricsEncryptionManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance
|
||||
import com.x8bit.bitwarden.data.platform.repository.EnvironmentRepository
|
||||
import com.x8bit.bitwarden.data.platform.repository.util.FakeEnvironmentRepository
|
||||
import com.x8bit.bitwarden.data.vault.manager.VaultLockManager
|
||||
import com.x8bit.bitwarden.data.vault.repository.VaultRepository
|
||||
import com.x8bit.bitwarden.data.vault.repository.model.VaultUnlockResult
|
||||
@ -55,7 +52,6 @@ import javax.crypto.Cipher
|
||||
class VaultUnlockViewModelTest : BaseViewModelTest() {
|
||||
|
||||
private val mutableUserStateFlow = MutableStateFlow<UserState?>(DEFAULT_USER_STATE)
|
||||
private val environmentRepository = FakeEnvironmentRepository()
|
||||
private val authRepository = mockk<AuthRepository> {
|
||||
every { activeUserId } answers { mutableUserStateFlow.value?.activeUserId }
|
||||
every { userStateFlow } returns mutableUserStateFlow
|
||||
@ -198,19 +194,6 @@ class VaultUnlockViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `environment url should update when environment repo emits an update`() {
|
||||
val viewModel = createViewModel()
|
||||
assertEquals(DEFAULT_STATE, viewModel.stateFlow.value)
|
||||
environmentRepository.environment = Environment.SelfHosted(
|
||||
environmentUrlData = EnvironmentUrlDataJson(base = "https://vault.qa.bitwarden.pw"),
|
||||
)
|
||||
assertEquals(
|
||||
DEFAULT_STATE.copy(environmentUrl = "vault.qa.bitwarden.pw"),
|
||||
viewModel.stateFlow.value,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `showAccountMenu should be true when unlockType is not STANDARD`() {
|
||||
val viewModel = createViewModel(unlockType = UnlockType.TDE)
|
||||
@ -1352,11 +1335,9 @@ class VaultUnlockViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
private fun createViewModel(
|
||||
state: VaultUnlockState? = null,
|
||||
unlockType: UnlockType = UnlockType.STANDARD,
|
||||
environmentRepo: EnvironmentRepository = environmentRepository,
|
||||
vaultRepo: VaultRepository = vaultRepository,
|
||||
biometricsEncryptionManager: BiometricsEncryptionManager = encryptionManager,
|
||||
lockManager: VaultLockManager = vaultLockManager,
|
||||
@ -1367,7 +1348,6 @@ class VaultUnlockViewModelTest : BaseViewModelTest() {
|
||||
},
|
||||
authRepository = authRepository,
|
||||
vaultRepo = vaultRepo,
|
||||
environmentRepo = environmentRepo,
|
||||
biometricsEncryptionManager = biometricsEncryptionManager,
|
||||
bitwardenCredentialManager = bitwardenCredentialManager,
|
||||
specialCircumstanceManager = specialCircumstanceManager,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user