From 6953d5e132eec448f64a71f4e5ce19e9ccdfad4b Mon Sep 17 00:00:00 2001 From: Patrick Honkonen Date: Mon, 24 Feb 2025 17:06:23 -0500 Subject: [PATCH] Migrate VaultItem related locations to ImmutableList --- .../vault/feature/item/VaultItemViewModel.kt | 7 +- .../feature/item/component/ItemHeader.kt | 23 ++- .../feature/item/model/VaultItemStateData.kt | 3 +- .../feature/item/util/CipherViewExtensions.kt | 3 +- .../vault/feature/item/VaultItemScreenTest.kt | 23 ++- .../feature/item/VaultItemViewModelTest.kt | 175 +++++++++--------- .../item/util/CipherViewExtensionsTest.kt | 29 +-- .../feature/item/util/VaultItemTestUtil.kt | 5 +- 8 files changed, 142 insertions(+), 126 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt index 8bec1b44f2..e6a3fb62dd 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt @@ -40,6 +40,8 @@ import com.x8bit.bitwarden.ui.vault.model.VaultCardBrand import com.x8bit.bitwarden.ui.vault.model.VaultItemCipherType import com.x8bit.bitwarden.ui.vault.model.VaultLinkedFieldType import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.map @@ -160,6 +162,7 @@ class VaultItemViewModel @Inject constructor( addAll(collections.map { VaultItemLocation.Collection(it) }) folderName?.let { add(VaultItemLocation.Folder(it)) } } + .toImmutableList() VaultItemStateData( cipher = cipherView, @@ -1197,7 +1200,7 @@ class VaultItemViewModel @Inject constructor( canEdit = this.data?.canEdit == true, baseIconUrl = environmentRepository.environment.environmentUrlData.baseIconUrl, isIconLoadingDisabled = settingsRepository.isIconLoadingDisabled, - relatedLocations = this.data?.relatedLocations.orEmpty(), + relatedLocations = this.data?.relatedLocations.orEmpty().toImmutableList(), ) ?: VaultItemState.ViewState.Error(message = errorText) @@ -1564,7 +1567,7 @@ data class VaultItemState( val canEdit: Boolean, val favorite: Boolean, val iconData: IconData, - val relatedLocations: List, + val relatedLocations: ImmutableList, ) : Parcelable { /** diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/component/ItemHeader.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/component/ItemHeader.kt index 7ca4c242f8..3e5feae418 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/component/ItemHeader.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/component/ItemHeader.kt @@ -44,6 +44,9 @@ import com.x8bit.bitwarden.ui.platform.components.model.IconData import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.ui.vault.feature.item.model.VaultItemLocation +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.persistentListOf +import kotlinx.collections.immutable.toImmutableList /** * The max number of items that can be displayed before the "show more" text is visible. @@ -59,7 +62,7 @@ private const val EXPANDABLE_THRESHOLD = 2 fun ItemHeader( value: String, isFavorite: Boolean, - relatedLocations: List, + relatedLocations: ImmutableList, iconData: IconData, modifier: Modifier = Modifier, iconTestTag: String? = null, @@ -136,14 +139,16 @@ fun ItemHeader( } ExpandingItemLocationContent( - overflowLocations = relatedLocations.drop(EXPANDABLE_THRESHOLD), + overflowLocations = relatedLocations + .drop(EXPANDABLE_THRESHOLD) + .toImmutableList(), ) } } @Composable private fun ExpandingItemLocationContent( - overflowLocations: List, + overflowLocations: ImmutableList, ) { var isExpanded by rememberSaveable { mutableStateOf(false) } AnimatedVisibility( @@ -252,7 +257,7 @@ private fun ItemHeader_LocalIcon_Preview() { iconData = IconData.Local( iconRes = R.drawable.ic_globe, ), - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -272,7 +277,7 @@ private fun ItemHeader_NetworkIcon_Preview() { uri = "mockuri", fallbackIconRes = R.drawable.ic_globe, ), - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -291,7 +296,7 @@ private fun ItemHeader_Organization_Preview() { iconData = IconData.Local( iconRes = R.drawable.ic_globe, ), - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization("Stark Industries"), ), ) @@ -312,7 +317,7 @@ private fun ItemNameField_Org_SingleCollection_Preview() { iconData = IconData.Local( iconRes = R.drawable.ic_globe, ), - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization("Stark Industries"), VaultItemLocation.Collection("Marketing"), ), @@ -334,7 +339,7 @@ private fun ItemNameField_Org_MultiCollection_Preview() { iconData = IconData.Local( iconRes = R.drawable.ic_globe, ), - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization("Stark Industries"), VaultItemLocation.Collection("Marketing"), VaultItemLocation.Collection("Product"), @@ -357,7 +362,7 @@ private fun ItemNameField_Org_SingleCollection_Folder_Preview() { iconData = IconData.Local( iconRes = R.drawable.ic_note, ), - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization("Stark Industries"), VaultItemLocation.Collection("Marketing"), VaultItemLocation.Folder("Competition"), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/model/VaultItemStateData.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/model/VaultItemStateData.kt index bb61678f6e..862e81c1b0 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/model/VaultItemStateData.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/model/VaultItemStateData.kt @@ -1,6 +1,7 @@ package com.x8bit.bitwarden.ui.vault.feature.item.model import com.bitwarden.vault.CipherView +import kotlinx.collections.immutable.ImmutableList /** * The state containing totp code item information and the cipher for the item. @@ -18,5 +19,5 @@ data class VaultItemStateData( val canDelete: Boolean, val canAssociateToCollections: Boolean, val canEdit: Boolean, - val relatedLocations: List, + val relatedLocations: ImmutableList, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensions.kt index 0703857f85..482295f976 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensions.kt @@ -27,6 +27,7 @@ import com.x8bit.bitwarden.ui.vault.feature.vault.util.toLoginIconData import com.x8bit.bitwarden.ui.vault.model.VaultCardBrand import com.x8bit.bitwarden.ui.vault.model.VaultLinkedFieldType import com.x8bit.bitwarden.ui.vault.model.findVaultCardBrandWithNameOrNull +import kotlinx.collections.immutable.ImmutableList import java.time.Clock private const val LAST_UPDATED_DATE_TIME_PATTERN: String = "M/d/yy hh:mm a" @@ -48,7 +49,7 @@ fun CipherView.toViewState( canEdit: Boolean, baseIconUrl: String, isIconLoadingDisabled: Boolean, - relatedLocations: List, + relatedLocations: ImmutableList, ): VaultItemState.ViewState = VaultItemState.ViewState.Content( common = VaultItemState.ViewState.Content.Common( diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt index 9078d17685..934a579f95 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt @@ -53,6 +53,7 @@ import io.mockk.just import io.mockk.mockk import io.mockk.runs import io.mockk.verify +import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.update import org.junit.Assert.assertEquals @@ -324,7 +325,7 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = defaultViewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ), ), ) @@ -338,7 +339,9 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = defaultViewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = listOf(VaultItemLocation.Collection("collection")), + relatedLocations = persistentListOf( + VaultItemLocation.Collection("collection"), + ), ), ), ) @@ -357,7 +360,7 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = viewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization( organizationName, ), @@ -374,7 +377,7 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = viewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ), ), ) @@ -392,7 +395,7 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = viewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Collection("My collection"), ), ), @@ -407,7 +410,7 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = viewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ), ), ) @@ -425,7 +428,7 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = viewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization("My organization"), VaultItemLocation.Collection("My collection"), VaultItemLocation.Folder("My folder"), @@ -452,7 +455,7 @@ class VaultItemScreenTest : BaseComposeTest() { DEFAULT_STATE.copy( viewState = viewState.copy( common = DEFAULT_COMMON.copy( - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization("My organization"), VaultItemLocation.Collection("My collection"), VaultItemLocation.Folder("My folder"), @@ -2948,7 +2951,7 @@ private val DEFAULT_COMMON: VaultItemState.ViewState.Content.Common = canEdit = true, favorite = false, iconData = IconData.Local(iconRes = R.drawable.ic_globe), - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) private val DEFAULT_PASSKEY = R.string.created_xy.asText( @@ -3035,7 +3038,7 @@ private val EMPTY_COMMON: VaultItemState.ViewState.Content.Common = canEdit = true, favorite = false, iconData = IconData.Local(iconRes = R.drawable.ic_globe), - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) private val EMPTY_LOGIN_TYPE: VaultItemState.ViewState.Content.ItemType.Login = diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModelTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModelTest.kt index 560a6f1ece..816324e229 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModelTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModelTest.kt @@ -56,6 +56,7 @@ import io.mockk.mockkStatic import io.mockk.runs import io.mockk.unmockkStatic import io.mockk.verify +import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.test.runTest import org.junit.jupiter.api.AfterEach @@ -201,7 +202,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -231,7 +232,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -254,7 +255,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginState @@ -303,7 +304,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginState @@ -341,7 +342,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -390,7 +391,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -442,7 +443,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -486,7 +487,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -525,7 +526,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns viewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -568,7 +569,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -614,7 +615,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -669,7 +670,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -707,7 +708,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -730,7 +731,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } assertEquals( @@ -762,7 +763,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState @@ -831,7 +832,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState @@ -891,7 +892,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState @@ -962,7 +963,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -992,7 +993,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -1012,7 +1013,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState(common = DEFAULT_COMMON.copy(requiresReprompt = false)) every { clipboardManager.setText(text = field) } just runs @@ -1036,7 +1037,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) organizationEventManager.trackEvent( event = OrganizationEvent.CipherClientCopiedHiddenField( @@ -1080,7 +1081,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1118,7 +1119,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -1156,7 +1157,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1194,7 +1195,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) organizationEventManager.trackEvent( event = OrganizationEvent.CipherClientToggledHiddenFieldVisible( @@ -1219,7 +1220,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1249,7 +1250,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -1273,7 +1274,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1313,7 +1314,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1345,7 +1346,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -1373,7 +1374,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1427,7 +1428,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1457,7 +1458,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -1481,7 +1482,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1519,7 +1520,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1549,7 +1550,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -1573,7 +1574,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1621,7 +1622,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1683,7 +1684,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1754,7 +1755,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = null, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -1926,7 +1927,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE @@ -1972,7 +1973,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = createTotpCodeData(), baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2018,7 +2019,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = createTotpCodeData(), baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } coVerify(exactly = 1) { @@ -2041,7 +2042,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = createTotpCodeData(), baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2074,7 +2075,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = createTotpCodeData(), baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2094,7 +2095,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = createTotpCodeData(), baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState(common = DEFAULT_COMMON.copy(requiresReprompt = false)) mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2120,7 +2121,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = createTotpCodeData(), baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2176,7 +2177,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { totpCodeItemData = createTotpCodeData(), baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState(common = DEFAULT_COMMON.copy(requiresReprompt = false)) mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2202,7 +2203,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2246,7 +2247,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2277,7 +2278,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2297,7 +2298,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } .returns( @@ -2330,7 +2331,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2351,7 +2352,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns DEFAULT_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2386,7 +2387,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2410,7 +2411,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns loginViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2448,7 +2449,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) organizationEventManager.trackEvent( event = OrganizationEvent.CipherClientToggledPasswordVisible( @@ -2487,7 +2488,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns CARD_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2519,7 +2520,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2539,7 +2540,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState( common = DEFAULT_COMMON.copy(requiresReprompt = false), @@ -2567,7 +2568,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2587,7 +2588,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns CARD_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2619,7 +2620,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2639,7 +2640,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState( common = DEFAULT_COMMON.copy(requiresReprompt = false), @@ -2670,7 +2671,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2690,7 +2691,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns CARD_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2722,7 +2723,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2742,7 +2743,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState( common = DEFAULT_COMMON.copy(requiresReprompt = false), @@ -2770,7 +2771,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2790,7 +2791,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns CARD_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2822,7 +2823,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2841,7 +2842,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState( common = DEFAULT_COMMON.copy(requiresReprompt = false), @@ -2872,7 +2873,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2904,7 +2905,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns SSH_KEY_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2942,7 +2943,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns sshKeyViewState mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -2976,7 +2977,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -2997,7 +2998,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns SSH_KEY_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -3030,7 +3031,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } } @@ -3050,7 +3051,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns createViewState( common = DEFAULT_COMMON.copy(requiresReprompt = false), @@ -3086,7 +3087,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns SSH_KEY_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -3127,7 +3128,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns SSH_KEY_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -3168,7 +3169,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns IDENTITY_VIEW_STATE mutableVaultItemFlow.value = DataState.Loaded(data = mockCipherView) @@ -3323,7 +3324,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = listOf( + relatedLocations = persistentListOf( VaultItemLocation.Organization("mockOrganizationName"), VaultItemLocation.Collection("mockName-1"), VaultItemLocation.Folder("mockName-1"), @@ -3394,7 +3395,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns viewState val viewModel = createViewModel(state = null) @@ -3439,7 +3440,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns viewState val viewModel = createViewModel(state = null) @@ -3479,7 +3480,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, baseIconUrl = Environment.Us.environmentUrlData.baseIconUrl, isIconLoadingDisabled = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) } returns viewState val viewModel = createViewModel(state = null) @@ -3736,7 +3737,7 @@ class VaultItemViewModelTest : BaseViewModelTest() { canEdit = true, favorite = false, iconData = IconData.Local(R.drawable.ic_globe), - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) private val DEFAULT_VIEW_STATE: VaultItemState.ViewState.Content = diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensionsTest.kt index 0cc6e3e401..b9fe440e48 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/CipherViewExtensionsTest.kt @@ -10,6 +10,7 @@ import io.mockk.every import io.mockk.mockk import io.mockk.mockkStatic import io.mockk.unmockkStatic +import kotlinx.collections.immutable.persistentListOf import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.BeforeEach @@ -70,7 +71,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -111,7 +112,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -145,7 +146,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -179,7 +180,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -219,7 +220,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -249,7 +250,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -277,7 +278,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -308,7 +309,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -349,7 +350,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -395,7 +396,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -443,7 +444,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( @@ -475,7 +476,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) val expectedState = VaultItemState.ViewState.Content( @@ -505,7 +506,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( VaultItemState.ViewState.Content( @@ -552,7 +553,7 @@ class CipherViewExtensionsTest { canEdit = true, baseIconUrl = "https://example.com/", isIconLoadingDisabled = true, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), ) assertEquals( it.value, diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt index 57b99e2af7..12c04c6643 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt @@ -19,6 +19,7 @@ import com.x8bit.bitwarden.ui.platform.components.model.IconData import com.x8bit.bitwarden.ui.vault.feature.item.VaultItemState import com.x8bit.bitwarden.ui.vault.feature.item.model.TotpCodeItemData import com.x8bit.bitwarden.ui.vault.model.VaultLinkedFieldType +import kotlinx.collections.immutable.persistentListOf import java.time.Instant const val DEFAULT_IDENTITY_NAME: String = "Mr firstName middleName lastName" @@ -177,7 +178,7 @@ fun createCommonContent( canAssignToCollections = true, canEdit = true, favorite = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), iconData = IconData.Local(iconResId), ) } else { @@ -226,7 +227,7 @@ fun createCommonContent( canAssignToCollections = true, canEdit = true, favorite = false, - relatedLocations = emptyList(), + relatedLocations = persistentListOf(), iconData = IconData.Local(iconResId), ) }