BIT-1103 Adding the ability to delete totp text (#562)

This commit is contained in:
Oleg Semenenko
2024-01-10 11:34:55 -06:00
committed by GitHub
parent 65bb2e5efd
commit d90f79ed2d
7 changed files with 93 additions and 0 deletions

View File

@@ -32,6 +32,7 @@ import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
import com.x8bit.bitwarden.ui.platform.base.util.FakePermissionManager
import com.x8bit.bitwarden.ui.platform.base.util.asText
import com.x8bit.bitwarden.ui.util.isProgressBar
import com.x8bit.bitwarden.ui.util.onAllNodesWithContentDescriptionAfterScroll
import com.x8bit.bitwarden.ui.util.onAllNodesWithTextAfterScroll
import com.x8bit.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll
import com.x8bit.bitwarden.ui.util.onNodeWithTextAfterScroll
@@ -457,6 +458,25 @@ class VaultAddEditScreenTest : BaseComposeTest() {
.assertDoesNotExist()
}
@Suppress("MaxLineLength")
@Test
fun `in ItemType_Login state the totp text field click on trailing icon should call ClearTotpKeyClick`() {
mutableStateFlow.update { currentState ->
updateLoginType(currentState) { copy(totp = "TestCode") }
}
composeTestRule
.onAllNodesWithContentDescriptionAfterScroll("Delete")
.onFirst()
.performClick()
verify {
viewModel.trySendAction(
VaultAddEditAction.ItemType.LoginType.ClearTotpKeyClick,
)
}
}
@Suppress("MaxLineLength")
@Test
fun `in ItemType_Login state clicking the copy totp code button should trigger CopyTotpKeyClick`() {

View File

@@ -674,6 +674,38 @@ class VaultAddEditViewModelTest : BaseViewModelTest() {
}
}
@Test
fun `ClearTotpKeyClick call should clear the totp code`() {
val viewModel = createAddVaultItemViewModel(
savedStateHandle = createSavedStateHandleWithState(
state = createVaultAddItemState(
typeContentViewState = createLoginTypeContentViewState(
totpCode = "testCode",
),
),
vaultAddEditType = VaultAddEditType.EditItem(DEFAULT_EDIT_ITEM_ID),
),
)
val expectedState = loginInitialState.copy(
viewState = VaultAddEditState.ViewState.Content(
common = createCommonContentViewState(),
type = createLoginTypeContentViewState(
totpCode = null,
),
),
)
viewModel.actionChannel.trySend(
VaultAddEditAction.ItemType.LoginType.ClearTotpKeyClick,
)
assertEquals(
expectedState,
viewModel.stateFlow.value,
)
}
@Test
fun `TotpCodeReceive should update totp code in state`() = runTest {
val viewModel = createAddVaultItemViewModel()