BIT-1234: Add Account button should appear in switcher on Login (#402)

This commit is contained in:
Brian Yencho
2023-12-15 13:48:06 -06:00
committed by GitHub
parent 91f6e6d105
commit 6fe1135dea
4 changed files with 42 additions and 4 deletions

View File

@@ -26,6 +26,7 @@ import com.x8bit.bitwarden.ui.util.assertSwitcherIsNotDisplayed
import com.x8bit.bitwarden.ui.util.performAccountClick
import com.x8bit.bitwarden.ui.util.performAccountIconClick
import com.x8bit.bitwarden.ui.util.performAccountLongClick
import com.x8bit.bitwarden.ui.util.performAddAccountClick
import com.x8bit.bitwarden.ui.util.performLockAccountClick
import com.x8bit.bitwarden.ui.util.performLogoutAccountClick
import com.x8bit.bitwarden.ui.util.performLogoutAccountConfirmationClick
@@ -86,7 +87,6 @@ class LoginScreenTest : BaseComposeTest() {
composeTestRule.assertSwitcherIsDisplayed(
accountSummaries = accountSummaries,
isAddAccountButtonVisible = false,
)
}
@@ -110,6 +110,24 @@ class LoginScreenTest : BaseComposeTest() {
)
}
@Suppress("MaxLineLength")
@Test
fun `add account click in the account switcher should send AddAccountClick and close switcher`() {
// Open the Account Switcher
val accountSummaries = listOf(ACTIVE_ACCOUNT_SUMMARY)
mutableStateFlow.update {
it.copy(accountSummaries = accountSummaries)
}
composeTestRule.performAccountIconClick()
composeTestRule.performAddAccountClick()
verify { viewModel.trySendAction(LoginAction.AddAccountClick) }
composeTestRule.assertSwitcherIsNotDisplayed(
accountSummaries = accountSummaries,
)
}
@Suppress("MaxLineLength")
@Test
fun `account long click in the account switcher should show the lock-or-logout dialog and close the switcher`() {

View File

@@ -149,6 +149,16 @@ class LoginViewModelTest : BaseViewModelTest() {
}
}
@Suppress("MaxLineLength")
@Test
fun `on AddAccountClick should send NavigateBack`() = runTest {
val viewModel = createViewModel()
viewModel.eventFlow.test {
viewModel.trySendAction(LoginAction.AddAccountClick)
assertEquals(LoginEvent.NavigateBack, awaitItem())
}
}
@Test
fun `LockAccountClick should call lockVaultIfNecessary for the given account`() {
val accountUserId = "userId"