mirror of
https://github.com/bitwarden/android.git
synced 2026-05-31 09:46:08 -05:00
BIT-871: Adding UI for forwarded email alias (#440)
This commit is contained in:
@@ -874,6 +874,59 @@ class GeneratorScreenTest : BaseComposeTest() {
|
||||
|
||||
//endregion Passcode Passphrase Tests
|
||||
|
||||
//region Forwarded Email Alias Tests
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `in Username_ForwardedEmailAlias state, updating the service type should send ServiceTypeOptionSelect action`() {
|
||||
updateState(
|
||||
GeneratorState(
|
||||
generatedText = "Placeholder",
|
||||
selectedType = GeneratorState.MainType.Username(
|
||||
GeneratorState.MainType.Username.UsernameType.ForwardedEmailAlias(
|
||||
selectedServiceType = null,
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
val newServiceType = GeneratorState
|
||||
.MainType
|
||||
.Username
|
||||
.UsernameType
|
||||
.ForwardedEmailAlias
|
||||
.ServiceTypeOption
|
||||
.ANON_ADDY
|
||||
|
||||
// Opens the menu
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription(label = "Service, null")
|
||||
.performScrollTo()
|
||||
.performClick()
|
||||
|
||||
// Choose the option from the menu
|
||||
composeTestRule
|
||||
.onAllNodesWithText(text = "addy.io")
|
||||
.onLast()
|
||||
.assert(hasAnyAncestor(isDialog()))
|
||||
.performClick()
|
||||
|
||||
verify {
|
||||
viewModel.trySendAction(
|
||||
GeneratorAction.MainType.Username.UsernameType.ForwardedEmailAlias.ServiceTypeOptionSelect(
|
||||
newServiceType,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
// Make sure dialog is hidden:
|
||||
composeTestRule
|
||||
.onNode(isDialog())
|
||||
.assertDoesNotExist()
|
||||
}
|
||||
|
||||
//endregion Forwarded Email Alias Tests
|
||||
|
||||
//region Username Plus Addressed Email Tests
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
|
||||
@@ -27,6 +27,10 @@ class GeneratorViewModelTest : BaseViewModelTest() {
|
||||
private val initialUsernameState = createPlusAddressedEmailState()
|
||||
private val usernameSavedStateHandle = createSavedStateHandleWithState(initialUsernameState)
|
||||
|
||||
private val initialForwardedEmailAliasState = createForwardedEmailAliasState()
|
||||
private val forwardedEmailAliasSavedStateHandle =
|
||||
createSavedStateHandleWithState(initialForwardedEmailAliasState)
|
||||
|
||||
private val initialCatchAllEmailState = createCatchAllEmailState()
|
||||
private val catchAllEmailSavedStateHandle =
|
||||
createSavedStateHandleWithState(initialCatchAllEmailState)
|
||||
@@ -895,6 +899,58 @@ class GeneratorViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
inner class ForwardedEmailAliasActions {
|
||||
private val defaultForwardedEmailAliasState = createForwardedEmailAliasState()
|
||||
private lateinit var viewModel: GeneratorViewModel
|
||||
|
||||
@BeforeEach
|
||||
fun setup() {
|
||||
viewModel =
|
||||
GeneratorViewModel(forwardedEmailAliasSavedStateHandle, fakeGeneratorRepository)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ServiceTypeOptionSelect should update service type correctly`() = runTest {
|
||||
val action = GeneratorAction
|
||||
.MainType
|
||||
.Username
|
||||
.UsernameType
|
||||
.ForwardedEmailAlias
|
||||
.ServiceTypeOptionSelect(
|
||||
serviceTypeOption = GeneratorState
|
||||
.MainType
|
||||
.Username
|
||||
.UsernameType
|
||||
.ForwardedEmailAlias
|
||||
.ServiceTypeOption
|
||||
.ANON_ADDY,
|
||||
)
|
||||
|
||||
viewModel.actionChannel.trySend(action)
|
||||
|
||||
val expectedState = defaultForwardedEmailAliasState.copy(
|
||||
selectedType = GeneratorState.MainType.Username(
|
||||
selectedType = GeneratorState
|
||||
.MainType
|
||||
.Username
|
||||
.UsernameType
|
||||
.ForwardedEmailAlias(
|
||||
selectedServiceType = GeneratorState
|
||||
.MainType
|
||||
.Username
|
||||
.UsernameType
|
||||
.ForwardedEmailAlias
|
||||
.ServiceType
|
||||
.AnonAddy(),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
assertEquals(expectedState, viewModel.stateFlow.value)
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
inner class PlusAddressedEmailActions {
|
||||
private val defaultPlusAddressedEmailState = createPlusAddressedEmailState()
|
||||
@@ -1088,6 +1144,20 @@ class GeneratorViewModelTest : BaseViewModelTest() {
|
||||
),
|
||||
)
|
||||
|
||||
private fun createForwardedEmailAliasState(
|
||||
generatedText: String = "defaultForwardedEmailAlias",
|
||||
obfuscatedText: String = "defaultObfuscatedText",
|
||||
): GeneratorState =
|
||||
GeneratorState(
|
||||
generatedText = generatedText,
|
||||
selectedType = GeneratorState.MainType.Username(
|
||||
GeneratorState.MainType.Username.UsernameType.ForwardedEmailAlias(
|
||||
selectedServiceType = null,
|
||||
obfuscatedText = obfuscatedText,
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
private fun createPlusAddressedEmailState(
|
||||
generatedText: String = "defaultPlusAddressedEmail",
|
||||
email: String = "defaultEmail",
|
||||
|
||||
Reference in New Issue
Block a user