Add isActive and isVaultUnlocked to AccountSummary (#361)

This commit is contained in:
Brian Yencho 2023-12-11 09:29:23 -06:00 committed by Álison Fernandes
parent 5de9931d05
commit 8855fda026
9 changed files with 51 additions and 49 deletions

View file

@ -14,7 +14,8 @@ import kotlinx.parcelize.Parcelize
* @property avatarColorHex Hex color value for a user's avatar in the "#AARRGGBB" format.
* @property environmentLabel Label for the environment associated with the user's account
* (ex: "bitwarden.com"). This is purely for display purposes.
* @property status The current status of the user's account locally.
* @property isActive Whether or not the account is currently the active one.
* @property isVaultUnlocked Whether or not the account's vault is currently unlocked.
*/
@Parcelize
data class AccountSummary(
@ -23,7 +24,8 @@ data class AccountSummary(
val email: String,
val avatarColorHex: String,
val environmentLabel: String,
val status: Status,
val isActive: Boolean,
val isVaultUnlocked: Boolean,
) : Parcelable {
/**
@ -32,6 +34,16 @@ data class AccountSummary(
val avatarColor: Color
get() = avatarColorHex.hexToColor()
/**
* The current status of the user's account locally.
*/
val status: Status
get() = when {
isActive -> Status.ACTIVE
isVaultUnlocked -> Status.UNLOCKED
else -> Status.LOCKED
}
/**
* Describes the status of the given account.
*/

View file

@ -36,9 +36,6 @@ fun UserState.Account.toAccountSummary(
email = this.email,
avatarColorHex = this.avatarColorHex,
environmentLabel = this.environment.label,
status = when {
isActive -> AccountSummary.Status.ACTIVE
this.isVaultUnlocked -> AccountSummary.Status.UNLOCKED
else -> AccountSummary.Status.LOCKED
},
isActive = isActive,
isVaultUnlocked = this.isVaultUnlocked,
)

View file

@ -353,7 +353,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
email = "active@bitwarden.com",
avatarColorHex = "#aa00aa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
)
private val DEFAULT_STATE = LandingState(

View file

@ -175,7 +175,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
email = "active@bitwarden.com",
avatarColorHex = "#aa00aa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
)
private val DEFAULT_STATE =

View file

@ -206,7 +206,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
email = "active@bitwarden.com",
avatarColorHex = "#aa00aa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
)
private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
@ -215,7 +216,8 @@ private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
email = "locked@bitwarden.com",
avatarColorHex = "#00aaaa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.LOCKED,
isActive = false,
isVaultUnlocked = false,
)
private val ACCOUNT_SUMMARIES = listOf(

View file

@ -119,7 +119,8 @@ class VaultUnlockViewModelTest : BaseViewModelTest() {
email = "active+test@bitwarden.com",
avatarColorHex = "#00aaaa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
),
),
),
@ -288,7 +289,8 @@ private val DEFAULT_STATE: VaultUnlockState = VaultUnlockState(
email = "active@bitwarden.com",
avatarColorHex = "#aa00aa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
),
),
avatarColorString = "#aa00aa",

View file

@ -481,7 +481,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
email = "active@bitwarden.com",
avatarColorHex = "#aa00aa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
)
private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
@ -490,7 +491,8 @@ private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
email = "locked@bitwarden.com",
avatarColorHex = "#00aaaa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.LOCKED,
isActive = false,
isVaultUnlocked = false,
)
private val DEFAULT_STATE: VaultState = VaultState(

View file

@ -135,7 +135,8 @@ class VaultViewModelTest : BaseViewModelTest() {
email = "active@bitwarden.com",
avatarColorHex = "#00aaaa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
),
),
),
@ -487,7 +488,8 @@ private fun createMockVaultState(viewState: VaultState.ViewState): VaultState =
email = "active@bitwarden.com",
avatarColorHex = "#aa00aa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
),
AccountSummary(
userId = "lockedUserId",
@ -495,7 +497,8 @@ private fun createMockVaultState(viewState: VaultState.ViewState): VaultState =
email = "locked@bitwarden.com",
avatarColorHex = "#00aaaa",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.LOCKED,
isActive = false,
isVaultUnlocked = false,
),
),
viewState = viewState,

View file

@ -18,7 +18,8 @@ class UserStateExtensionsTest {
email = "activeEmail",
avatarColorHex = "activeAvatarColorHex",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
),
AccountSummary(
userId = "lockedUserId",
@ -26,7 +27,8 @@ class UserStateExtensionsTest {
email = "lockedEmail",
avatarColorHex = "lockedAvatarColorHex",
environmentLabel = "bitwarden.eu",
status = AccountSummary.Status.LOCKED,
isActive = false,
isVaultUnlocked = false,
),
AccountSummary(
userId = "unlockedUserId",
@ -34,7 +36,8 @@ class UserStateExtensionsTest {
email = "unlockedEmail",
avatarColorHex = "unlockedAvatarColorHex",
environmentLabel = "vault.qa.bitwarden.pw",
status = AccountSummary.Status.UNLOCKED,
isActive = false,
isVaultUnlocked = true,
),
),
UserState(
@ -86,7 +89,8 @@ class UserStateExtensionsTest {
email = "email",
avatarColorHex = "avatarColorHex",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
),
UserState.Account(
userId = "userId",
@ -102,7 +106,7 @@ class UserStateExtensionsTest {
}
@Test
fun `toAccountSummary for an locked account should return a locked AccountSummary`() {
fun `toAccountSummary for an inactive account should return an inactive AccountSummary`() {
assertEquals(
AccountSummary(
userId = "userId",
@ -110,7 +114,8 @@ class UserStateExtensionsTest {
email = "email",
avatarColorHex = "avatarColorHex",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.LOCKED,
isActive = false,
isVaultUnlocked = false,
),
UserState.Account(
userId = "userId",
@ -125,30 +130,6 @@ class UserStateExtensionsTest {
)
}
@Test
fun `toAccountSummary for a unlocked account should return a locked AccountSummary`() {
assertEquals(
AccountSummary(
userId = "userId",
name = "name",
email = "email",
avatarColorHex = "avatarColorHex",
environmentLabel = "bitwarden.eu",
status = AccountSummary.Status.UNLOCKED,
),
UserState.Account(
userId = "userId",
name = "name",
email = "email",
avatarColorHex = "avatarColorHex",
environment = Environment.Eu,
isPremium = true,
isVaultUnlocked = true,
)
.toAccountSummary(isActive = false),
)
}
@Suppress("MaxLineLength")
@Test
fun `toActiveAccountSummary should return an active AccountSummary`() {
@ -159,7 +140,8 @@ class UserStateExtensionsTest {
email = "email",
avatarColorHex = "avatarColorHex",
environmentLabel = "bitwarden.com",
status = AccountSummary.Status.ACTIVE,
isActive = true,
isVaultUnlocked = true,
),
UserState(
activeUserId = "activeUserId",