Create sealed class for the ItemListingType Vault (#659)

This commit is contained in:
David Perez 2024-01-17 23:05:56 -06:00 committed by Álison Fernandes
parent 89a818aeaa
commit dfbfeda0e7
8 changed files with 181 additions and 175 deletions

View file

@ -25,14 +25,14 @@ fun VaultItemListingEmpty(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
when (itemListingType) { when (itemListingType) {
is VaultItemListingState.ItemListingType.Folder -> { is VaultItemListingState.ItemListingType.Vault.Folder -> {
GenericNoItems( GenericNoItems(
modifier = modifier, modifier = modifier,
text = stringResource(id = R.string.no_items_folder), text = stringResource(id = R.string.no_items_folder),
) )
} }
is VaultItemListingState.ItemListingType.Trash -> { is VaultItemListingState.ItemListingType.Vault.Trash -> {
GenericNoItems( GenericNoItems(
modifier = modifier, modifier = modifier,
text = stringResource(id = R.string.no_items_trash), text = stringResource(id = R.string.no_items_trash),

View file

@ -270,87 +270,79 @@ data class VaultItemListingState(
abstract val hasFab: Boolean abstract val hasFab: Boolean
/** /**
* A Login item listing. * Represents different types of vault item listings.
*/ */
data object Login : ItemListingType() { sealed class Vault : ItemListingType() {
override val titleText: Text
get() = R.string.logins.asText()
override val hasFab: Boolean
get() = true
}
/** /**
* A Card item listing. * A Login item listing.
*/ */
data object Card : ItemListingType() { data object Login : Vault() {
override val titleText: Text override val titleText: Text get() = R.string.logins.asText()
get() = R.string.cards.asText() override val hasFab: Boolean get() = true
override val hasFab: Boolean }
get() = true
}
/** /**
* An Identity item listing. * A Card item listing.
*/ */
data object Identity : ItemListingType() { data object Card : Vault() {
override val titleText: Text override val titleText: Text get() = R.string.cards.asText()
get() = R.string.identities.asText() override val hasFab: Boolean get() = true
override val hasFab: Boolean }
get() = true
}
/** /**
* A Secure Note item listing. * An Identity item listing.
*/ */
data object SecureNote : ItemListingType() { data object Identity : Vault() {
override val titleText: Text override val titleText: Text get() = R.string.identities.asText()
get() = R.string.secure_notes.asText() override val hasFab: Boolean get() = true
override val hasFab: Boolean }
get() = true
}
/** /**
* A Secure Trash item listing. * A Secure Note item listing.
*/ */
data object Trash : ItemListingType() { data object SecureNote : Vault() {
override val titleText: Text override val titleText: Text get() = R.string.secure_notes.asText()
get() = R.string.trash.asText() override val hasFab: Boolean get() = true
override val hasFab: Boolean }
get() = false
}
/** /**
* A Folder item listing. * A Secure Trash item listing.
* */
* @property folderId the id of the folder. data object Trash : Vault() {
* @property folderName the name of the folder. override val titleText: Text get() = R.string.trash.asText()
*/ override val hasFab: Boolean get() = false
data class Folder( }
val folderId: String?,
// The folderName will always initially be an empty string
val folderName: String = "",
) : ItemListingType() {
override val titleText: Text
get() = folderName.asText()
override val hasFab: Boolean
get() = false
}
/** /**
* A Collection item listing. * A Folder item listing.
* *
* @property collectionId the ID of the collection. * @property folderId the id of the folder.
* @property collectionName the name of the collection. * @property folderName the name of the folder.
*/ */
data class Collection( data class Folder(
val collectionId: String, val folderId: String?,
// The collectionName will always initially be an empty string // The folderName will always initially be an empty string
val collectionName: String = "", val folderName: String = "",
) : ItemListingType() { ) : Vault() {
override val titleText: Text override val titleText: Text get() = folderName.asText()
get() = collectionName.asText() override val hasFab: Boolean get() = false
override val hasFab: Boolean }
get() = false
/**
* A Collection item listing.
*
* @property collectionId the ID of the collection.
* @property collectionName the name of the collection.
*/
data class Collection(
val collectionId: String,
// The collectionName will always initially be an empty string
val collectionName: String = "",
) : Vault() {
override val titleText: Text get() = collectionName.asText()
override val hasFab: Boolean get() = false
}
} }
} }
} }

View file

@ -18,31 +18,31 @@ fun CipherView.determineListingPredicate(
itemListingType: VaultItemListingState.ItemListingType, itemListingType: VaultItemListingState.ItemListingType,
): Boolean = ): Boolean =
when (itemListingType) { when (itemListingType) {
is VaultItemListingState.ItemListingType.Card -> { is VaultItemListingState.ItemListingType.Vault.Card -> {
type == CipherType.CARD && deletedDate == null type == CipherType.CARD && deletedDate == null
} }
is VaultItemListingState.ItemListingType.Collection -> { is VaultItemListingState.ItemListingType.Vault.Collection -> {
itemListingType.collectionId in this.collectionIds && deletedDate == null itemListingType.collectionId in this.collectionIds && deletedDate == null
} }
is VaultItemListingState.ItemListingType.Folder -> { is VaultItemListingState.ItemListingType.Vault.Folder -> {
folderId == itemListingType.folderId && deletedDate == null folderId == itemListingType.folderId && deletedDate == null
} }
is VaultItemListingState.ItemListingType.Identity -> { is VaultItemListingState.ItemListingType.Vault.Identity -> {
type == CipherType.IDENTITY && deletedDate == null type == CipherType.IDENTITY && deletedDate == null
} }
is VaultItemListingState.ItemListingType.Login -> { is VaultItemListingState.ItemListingType.Vault.Login -> {
type == CipherType.LOGIN && deletedDate == null type == CipherType.LOGIN && deletedDate == null
} }
is VaultItemListingState.ItemListingType.SecureNote -> { is VaultItemListingState.ItemListingType.Vault.SecureNote -> {
type == CipherType.SECURE_NOTE && deletedDate == null type == CipherType.SECURE_NOTE && deletedDate == null
} }
is VaultItemListingState.ItemListingType.Trash -> { is VaultItemListingState.ItemListingType.Vault.Trash -> {
deletedDate != null deletedDate != null
} }
} }
@ -71,25 +71,25 @@ fun VaultItemListingState.ItemListingType.updateWithAdditionalDataIfNecessary(
collectionList: List<CollectionView>, collectionList: List<CollectionView>,
): VaultItemListingState.ItemListingType = ): VaultItemListingState.ItemListingType =
when (this) { when (this) {
is VaultItemListingState.ItemListingType.Card -> this is VaultItemListingState.ItemListingType.Vault.Card -> this
is VaultItemListingState.ItemListingType.Collection -> copy( is VaultItemListingState.ItemListingType.Vault.Collection -> copy(
collectionName = collectionList collectionName = collectionList
.find { it.id == collectionId } .find { it.id == collectionId }
?.name ?.name
.orEmpty(), .orEmpty(),
) )
is VaultItemListingState.ItemListingType.Folder -> copy( is VaultItemListingState.ItemListingType.Vault.Folder -> copy(
folderName = folderList folderName = folderList
.find { it.id == folderId } .find { it.id == folderId }
?.name ?.name
.orEmpty(), .orEmpty(),
) )
is VaultItemListingState.ItemListingType.Identity -> this is VaultItemListingState.ItemListingType.Vault.Identity -> this
is VaultItemListingState.ItemListingType.Login -> this is VaultItemListingState.ItemListingType.Vault.Login -> this
is VaultItemListingState.ItemListingType.SecureNote -> this is VaultItemListingState.ItemListingType.Vault.SecureNote -> this
is VaultItemListingState.ItemListingType.Trash -> this is VaultItemListingState.ItemListingType.Vault.Trash -> this
} }
private fun List<CipherView>.toDisplayItemList( private fun List<CipherView>.toDisplayItemList(

View file

@ -8,16 +8,16 @@ import com.x8bit.bitwarden.ui.vault.model.VaultItemListingType
*/ */
fun VaultItemListingType.toItemListingType(): VaultItemListingState.ItemListingType = fun VaultItemListingType.toItemListingType(): VaultItemListingState.ItemListingType =
when (this) { when (this) {
is VaultItemListingType.Card -> VaultItemListingState.ItemListingType.Card is VaultItemListingType.Card -> VaultItemListingState.ItemListingType.Vault.Card
is VaultItemListingType.Folder -> { is VaultItemListingType.Folder -> {
VaultItemListingState.ItemListingType.Folder(folderId = folderId) VaultItemListingState.ItemListingType.Vault.Folder(folderId = folderId)
} }
is VaultItemListingType.Identity -> VaultItemListingState.ItemListingType.Identity is VaultItemListingType.Identity -> VaultItemListingState.ItemListingType.Vault.Identity
is VaultItemListingType.Login -> VaultItemListingState.ItemListingType.Login is VaultItemListingType.Login -> VaultItemListingState.ItemListingType.Vault.Login
is VaultItemListingType.SecureNote -> VaultItemListingState.ItemListingType.SecureNote is VaultItemListingType.SecureNote -> VaultItemListingState.ItemListingType.Vault.SecureNote
is VaultItemListingType.Trash -> VaultItemListingState.ItemListingType.Trash is VaultItemListingType.Trash -> VaultItemListingState.ItemListingType.Vault.Trash
is VaultItemListingType.Collection -> { is VaultItemListingType.Collection -> {
VaultItemListingState.ItemListingType.Collection(collectionId = collectionId) VaultItemListingState.ItemListingType.Vault.Collection(collectionId = collectionId)
} }
} }

View file

@ -168,14 +168,18 @@ class VaultItemListingScreenTest : BaseComposeTest() {
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Trash) it.copy(itemListingType = VaultItemListingState.ItemListingType.Vault.Trash)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "Add an Item") .onNodeWithText(text = "Add an Item")
.assertDoesNotExist() .assertDoesNotExist()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Folder(folderId = null)) it.copy(
itemListingType = VaultItemListingState.ItemListingType.Vault.Folder(
folderId = null,
),
)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "Add an Item") .onNodeWithText(text = "Add an Item")
@ -192,14 +196,18 @@ class VaultItemListingScreenTest : BaseComposeTest() {
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Trash) it.copy(itemListingType = VaultItemListingState.ItemListingType.Vault.Trash)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "There are no items in the trash.") .onNodeWithText(text = "There are no items in the trash.")
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Folder(folderId = null)) it.copy(
itemListingType = VaultItemListingState.ItemListingType.Vault.Folder(
folderId = null,
),
)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "There are no items in this folder.") .onNodeWithText(text = "There are no items in this folder.")
@ -215,7 +223,7 @@ class VaultItemListingScreenTest : BaseComposeTest() {
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Trash) it.copy(itemListingType = VaultItemListingState.ItemListingType.Vault.Trash)
} }
composeTestRule composeTestRule
@ -223,7 +231,11 @@ class VaultItemListingScreenTest : BaseComposeTest() {
.assertDoesNotExist() .assertDoesNotExist()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Folder(folderId = null)) it.copy(
itemListingType = VaultItemListingState.ItemListingType.Vault.Folder(
folderId = null,
),
)
} }
composeTestRule composeTestRule
@ -352,28 +364,28 @@ class VaultItemListingScreenTest : BaseComposeTest() {
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.SecureNote) it.copy(itemListingType = VaultItemListingState.ItemListingType.Vault.SecureNote)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "Secure notes") .onNodeWithText(text = "Secure notes")
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Card) it.copy(itemListingType = VaultItemListingState.ItemListingType.Vault.Card)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "Cards") .onNodeWithText(text = "Cards")
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Identity) it.copy(itemListingType = VaultItemListingState.ItemListingType.Vault.Identity)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "Identities") .onNodeWithText(text = "Identities")
.assertIsDisplayed() .assertIsDisplayed()
mutableStateFlow.update { mutableStateFlow.update {
it.copy(itemListingType = VaultItemListingState.ItemListingType.Trash) it.copy(itemListingType = VaultItemListingState.ItemListingType.Vault.Trash)
} }
composeTestRule composeTestRule
.onNodeWithText(text = "Trash") .onNodeWithText(text = "Trash")
@ -381,7 +393,7 @@ class VaultItemListingScreenTest : BaseComposeTest() {
mutableStateFlow.update { mutableStateFlow.update {
it.copy( it.copy(
itemListingType = VaultItemListingState.ItemListingType.Folder( itemListingType = VaultItemListingState.ItemListingType.Vault.Folder(
folderId = "mockId", folderId = "mockId",
folderName = "mockName", folderName = "mockName",
), ),
@ -394,7 +406,7 @@ class VaultItemListingScreenTest : BaseComposeTest() {
} }
private val DEFAULT_STATE = VaultItemListingState( private val DEFAULT_STATE = VaultItemListingState(
itemListingType = VaultItemListingState.ItemListingType.Login, itemListingType = VaultItemListingState.ItemListingType.Vault.Login,
viewState = VaultItemListingState.ViewState.Loading, viewState = VaultItemListingState.ViewState.Loading,
isIconLoadingDisabled = false, isIconLoadingDisabled = false,
baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl,

View file

@ -525,7 +525,7 @@ class VaultItemListingViewModelTest : BaseViewModelTest() {
@Suppress("MaxLineLength") @Suppress("MaxLineLength")
private fun createVaultItemListingState( private fun createVaultItemListingState(
itemListingType: VaultItemListingState.ItemListingType = VaultItemListingState.ItemListingType.Login, itemListingType: VaultItemListingState.ItemListingType = VaultItemListingState.ItemListingType.Vault.Login,
viewState: VaultItemListingState.ViewState = VaultItemListingState.ViewState.Loading, viewState: VaultItemListingState.ViewState = VaultItemListingState.ViewState.Loading,
): VaultItemListingState = ): VaultItemListingState =
VaultItemListingState( VaultItemListingState(

View file

@ -27,13 +27,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to true, VaultItemListingState.ItemListingType.Vault.Login to true,
VaultItemListingState.ItemListingType.Card to false, VaultItemListingState.ItemListingType.Vault.Card to false,
VaultItemListingState.ItemListingType.SecureNote to false, VaultItemListingState.ItemListingType.Vault.SecureNote to false,
VaultItemListingState.ItemListingType.Identity to false, VaultItemListingState.ItemListingType.Vault.Identity to false,
VaultItemListingState.ItemListingType.Trash to false, VaultItemListingState.ItemListingType.Vault.Trash to false,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to true,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to true,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -56,13 +56,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to false, VaultItemListingState.ItemListingType.Vault.Login to false,
VaultItemListingState.ItemListingType.Card to false, VaultItemListingState.ItemListingType.Vault.Card to false,
VaultItemListingState.ItemListingType.SecureNote to false, VaultItemListingState.ItemListingType.Vault.SecureNote to false,
VaultItemListingState.ItemListingType.Identity to false, VaultItemListingState.ItemListingType.Vault.Identity to false,
VaultItemListingState.ItemListingType.Trash to true, VaultItemListingState.ItemListingType.Vault.Trash to true,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to false,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to false,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -85,13 +85,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to false, VaultItemListingState.ItemListingType.Vault.Login to false,
VaultItemListingState.ItemListingType.Card to true, VaultItemListingState.ItemListingType.Vault.Card to true,
VaultItemListingState.ItemListingType.SecureNote to false, VaultItemListingState.ItemListingType.Vault.SecureNote to false,
VaultItemListingState.ItemListingType.Identity to false, VaultItemListingState.ItemListingType.Vault.Identity to false,
VaultItemListingState.ItemListingType.Trash to false, VaultItemListingState.ItemListingType.Vault.Trash to false,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to true,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to true,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -114,13 +114,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to false, VaultItemListingState.ItemListingType.Vault.Login to false,
VaultItemListingState.ItemListingType.Card to false, VaultItemListingState.ItemListingType.Vault.Card to false,
VaultItemListingState.ItemListingType.SecureNote to false, VaultItemListingState.ItemListingType.Vault.SecureNote to false,
VaultItemListingState.ItemListingType.Identity to false, VaultItemListingState.ItemListingType.Vault.Identity to false,
VaultItemListingState.ItemListingType.Trash to true, VaultItemListingState.ItemListingType.Vault.Trash to true,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to false,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to false,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -143,13 +143,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to false, VaultItemListingState.ItemListingType.Vault.Login to false,
VaultItemListingState.ItemListingType.Card to false, VaultItemListingState.ItemListingType.Vault.Card to false,
VaultItemListingState.ItemListingType.SecureNote to false, VaultItemListingState.ItemListingType.Vault.SecureNote to false,
VaultItemListingState.ItemListingType.Identity to true, VaultItemListingState.ItemListingType.Vault.Identity to true,
VaultItemListingState.ItemListingType.Trash to false, VaultItemListingState.ItemListingType.Vault.Trash to false,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to true,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to true,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -172,13 +172,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to false, VaultItemListingState.ItemListingType.Vault.Login to false,
VaultItemListingState.ItemListingType.Card to false, VaultItemListingState.ItemListingType.Vault.Card to false,
VaultItemListingState.ItemListingType.SecureNote to false, VaultItemListingState.ItemListingType.Vault.SecureNote to false,
VaultItemListingState.ItemListingType.Identity to false, VaultItemListingState.ItemListingType.Vault.Identity to false,
VaultItemListingState.ItemListingType.Trash to true, VaultItemListingState.ItemListingType.Vault.Trash to true,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to false,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to false,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -201,13 +201,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to false, VaultItemListingState.ItemListingType.Vault.Login to false,
VaultItemListingState.ItemListingType.Card to false, VaultItemListingState.ItemListingType.Vault.Card to false,
VaultItemListingState.ItemListingType.SecureNote to true, VaultItemListingState.ItemListingType.Vault.SecureNote to true,
VaultItemListingState.ItemListingType.Identity to false, VaultItemListingState.ItemListingType.Vault.Identity to false,
VaultItemListingState.ItemListingType.Trash to false, VaultItemListingState.ItemListingType.Vault.Trash to false,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to true,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to true, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to true,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -230,13 +230,13 @@ class VaultItemListingDataExtensionsTest {
) )
mapOf( mapOf(
VaultItemListingState.ItemListingType.Login to false, VaultItemListingState.ItemListingType.Vault.Login to false,
VaultItemListingState.ItemListingType.Card to false, VaultItemListingState.ItemListingType.Vault.Card to false,
VaultItemListingState.ItemListingType.SecureNote to false, VaultItemListingState.ItemListingType.Vault.SecureNote to false,
VaultItemListingState.ItemListingType.Identity to false, VaultItemListingState.ItemListingType.Vault.Identity to false,
VaultItemListingState.ItemListingType.Trash to true, VaultItemListingState.ItemListingType.Vault.Trash to true,
VaultItemListingState.ItemListingType.Folder(folderId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mockId-1") to false,
VaultItemListingState.ItemListingType.Collection(collectionId = "mockId-1") to false, VaultItemListingState.ItemListingType.Vault.Collection(collectionId = "mockId-1") to false,
) )
.forEach { (type, expected) -> .forEach { (type, expected) ->
val result = cipherView.determineListingPredicate( val result = cipherView.determineListingPredicate(
@ -324,7 +324,7 @@ class VaultItemListingDataExtensionsTest {
createMockCollectionView(number = 3), createMockCollectionView(number = 3),
) )
val result = VaultItemListingState.ItemListingType.Folder( val result = VaultItemListingState.ItemListingType.Vault.Folder(
folderId = "mockId-1", folderId = "mockId-1",
folderName = "wrong name", folderName = "wrong name",
) )
@ -334,7 +334,7 @@ class VaultItemListingDataExtensionsTest {
) )
assertEquals( assertEquals(
VaultItemListingState.ItemListingType.Folder( VaultItemListingState.ItemListingType.Vault.Folder(
folderId = "mockId-1", folderId = "mockId-1",
folderName = "mockName-1", folderName = "mockName-1",
), ),
@ -355,7 +355,7 @@ class VaultItemListingDataExtensionsTest {
createMockCollectionView(number = 3), createMockCollectionView(number = 3),
) )
val result = VaultItemListingState.ItemListingType.Collection( val result = VaultItemListingState.ItemListingType.Vault.Collection(
collectionId = "mockId-1", collectionId = "mockId-1",
collectionName = "wrong name", collectionName = "wrong name",
) )
@ -365,7 +365,7 @@ class VaultItemListingDataExtensionsTest {
) )
assertEquals( assertEquals(
VaultItemListingState.ItemListingType.Collection( VaultItemListingState.ItemListingType.Vault.Collection(
collectionId = "mockId-1", collectionId = "mockId-1",
collectionName = "mockName-1", collectionName = "mockName-1",
), ),
@ -387,14 +387,14 @@ class VaultItemListingDataExtensionsTest {
createMockCollectionView(number = 3), createMockCollectionView(number = 3),
) )
val result = VaultItemListingState.ItemListingType.Login val result = VaultItemListingState.ItemListingType.Vault.Login
.updateWithAdditionalDataIfNecessary( .updateWithAdditionalDataIfNecessary(
folderList = folderViewList, folderList = folderViewList,
collectionList = collectionViewList, collectionList = collectionViewList,
) )
assertEquals( assertEquals(
VaultItemListingState.ItemListingType.Login, VaultItemListingState.ItemListingType.Vault.Login,
result, result,
) )
} }

View file

@ -20,9 +20,11 @@ class VaultItemListingTypeExtensionsTest {
assertEquals( assertEquals(
listOf( listOf(
VaultItemListingState.ItemListingType.Folder(folderId = "mock"), VaultItemListingState.ItemListingType.Vault.Folder(folderId = "mock"),
VaultItemListingState.ItemListingType.Trash, VaultItemListingState.ItemListingType.Vault.Trash,
VaultItemListingState.ItemListingType.Collection(collectionId = "collectionId"), VaultItemListingState.ItemListingType.Vault.Collection(
collectionId = "collectionId",
),
), ),
result, result,
) )