mirror of
https://github.com/bitwarden/android.git
synced 2024-11-25 10:56:03 +03:00
BIT-2255: When admin-approval is denied, do not update the UI (#1283)
This commit is contained in:
parent
f6f2746b25
commit
e69ef60f53
2 changed files with 38 additions and 13 deletions
|
@ -158,18 +158,28 @@ class LoginWithDeviceViewModel @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateAuthRequestResult.Declined -> {
|
CreateAuthRequestResult.Declined -> {
|
||||||
mutableStateFlow.update {
|
when (state.loginWithDeviceType) {
|
||||||
it.copy(
|
LoginWithDeviceType.OTHER_DEVICE,
|
||||||
viewState = LoginWithDeviceState.ViewState.Content(
|
LoginWithDeviceType.SSO_OTHER_DEVICE,
|
||||||
loginWithDeviceType = it.loginWithDeviceType,
|
-> {
|
||||||
fingerprintPhrase = "",
|
mutableStateFlow.update {
|
||||||
isResendNotificationLoading = false,
|
it.copy(
|
||||||
),
|
viewState = LoginWithDeviceState.ViewState.Content(
|
||||||
dialogState = LoginWithDeviceState.DialogState.Error(
|
loginWithDeviceType = it.loginWithDeviceType,
|
||||||
title = null,
|
fingerprintPhrase = "",
|
||||||
message = R.string.this_request_is_no_longer_valid.asText(),
|
isResendNotificationLoading = false,
|
||||||
),
|
),
|
||||||
)
|
dialogState = LoginWithDeviceState.DialogState.Error(
|
||||||
|
title = null,
|
||||||
|
message = R.string.this_request_is_no_longer_valid.asText(),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LoginWithDeviceType.SSO_ADMIN_APPROVAL -> {
|
||||||
|
// Do nothing, the user should not be informed of this state
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -442,7 +442,7 @@ class LoginWithDeviceViewModelTest : BaseViewModelTest() {
|
||||||
|
|
||||||
@Suppress("MaxLineLength")
|
@Suppress("MaxLineLength")
|
||||||
@Test
|
@Test
|
||||||
fun `on createAuthRequestWithUpdates Declined received should show content with error dialog`() {
|
fun `on createAuthRequestWithUpdates with OTHER_DEVICE, Declined received should show error dialog`() {
|
||||||
val viewModel = createViewModel()
|
val viewModel = createViewModel()
|
||||||
assertEquals(DEFAULT_STATE, viewModel.stateFlow.value)
|
assertEquals(DEFAULT_STATE, viewModel.stateFlow.value)
|
||||||
mutableCreateAuthRequestWithUpdatesFlow.tryEmit(CreateAuthRequestResult.Declined)
|
mutableCreateAuthRequestWithUpdatesFlow.tryEmit(CreateAuthRequestResult.Declined)
|
||||||
|
@ -461,6 +461,21 @@ class LoginWithDeviceViewModelTest : BaseViewModelTest() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("MaxLineLength")
|
||||||
|
@Test
|
||||||
|
fun `on createAuthRequestWithUpdates with SSO_ADMIN_APPROVAL, Declined received should show unchanged content`() {
|
||||||
|
val initialState = DEFAULT_STATE.copy(
|
||||||
|
loginWithDeviceType = LoginWithDeviceType.SSO_ADMIN_APPROVAL,
|
||||||
|
viewState = DEFAULT_CONTENT_VIEW_STATE.copy(
|
||||||
|
loginWithDeviceType = LoginWithDeviceType.SSO_ADMIN_APPROVAL,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
val viewModel = createViewModel(initialState)
|
||||||
|
assertEquals(initialState, viewModel.stateFlow.value)
|
||||||
|
mutableCreateAuthRequestWithUpdatesFlow.tryEmit(CreateAuthRequestResult.Declined)
|
||||||
|
assertEquals(initialState, viewModel.stateFlow.value)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `on createAuthRequestWithUpdates Expired received should show content with error dialog`() {
|
fun `on createAuthRequestWithUpdates Expired received should show content with error dialog`() {
|
||||||
val viewModel = createViewModel()
|
val viewModel = createViewModel()
|
||||||
|
|
Loading…
Reference in a new issue