mirror of
https://github.com/bitwarden/android.git
synced 2026-10-23 19:43:26 -05:00
Add navigation support for editing a send (#558)
This commit is contained in:
1 parent
49411f3e2f
commit
8d45a650c3
16 files changed
+184
-38
No files matched your search
+1
@@ -43,6 +43,7 @@ class VaultUnlockedNavBarScreenTest : BaseComposeTest() {
|
||||
onNavigateToVaultItem = {},
|
||||
onNavigateToVaultEditItem = {},
|
||||
onNavigateToAddSend = {},
|
||||
onNavigateToEditSend = {},
|
||||
onNavigateToDeleteAccount = {},
|
||||
onNavigateToFolders = {},
|
||||
onNavigateToPasswordHistory = {},
|
||||
|
||||
@@ -31,6 +31,7 @@ import io.mockk.runs
|
||||
import io.mockk.verify
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
@@ -38,6 +39,7 @@ import org.junit.Test
|
||||
class SendScreenTest : BaseComposeTest() {
|
||||
|
||||
private var onNavigateToNewSendCalled = false
|
||||
private var onNavigateToEditSendId: String? = null
|
||||
|
||||
private val intentHandler = mockk<IntentHandler> {
|
||||
every { launchUri(any()) } just runs
|
||||
@@ -56,6 +58,7 @@ class SendScreenTest : BaseComposeTest() {
|
||||
SendScreen(
|
||||
viewModel = viewModel,
|
||||
onNavigateToAddSend = { onNavigateToNewSendCalled = true },
|
||||
onNavigateToEditSend = { onNavigateToEditSendId = it },
|
||||
intentHandler = intentHandler,
|
||||
)
|
||||
}
|
||||
@@ -67,6 +70,13 @@ class SendScreenTest : BaseComposeTest() {
|
||||
assertTrue(onNavigateToNewSendCalled)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `on NavigateToEditSend should call onNavigateToEditSend`() {
|
||||
val sendId = "sendId1234"
|
||||
mutableEventFlow.tryEmit(SendEvent.NavigateToEditSend(sendId))
|
||||
assertEquals(sendId, onNavigateToEditSendId)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `on NavigateToAboutSend should call launchUri on intentHandler`() {
|
||||
mutableEventFlow.tryEmit(SendEvent.NavigateToAboutSend)
|
||||
|
||||
@@ -142,12 +142,16 @@ class SendViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `SendClick should emit ShowToast`() = runTest {
|
||||
fun `SendClick should emit NavigateToEditSend`() = runTest {
|
||||
val sendId = "sendId1234"
|
||||
val sendItem = mockk<SendState.ViewState.Content.SendItem> {
|
||||
every { id } returns sendId
|
||||
}
|
||||
val viewModel = createViewModel()
|
||||
val sendItem = mockk<SendState.ViewState.Content.SendItem>()
|
||||
|
||||
viewModel.eventFlow.test {
|
||||
viewModel.trySendAction(SendAction.SendClick(sendItem))
|
||||
assertEquals(SendEvent.ShowToast("Not yet implemented".asText()), awaitItem())
|
||||
assertEquals(SendEvent.NavigateToEditSend(sendId), awaitItem())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -19,6 +19,7 @@ import com.x8bit.bitwarden.data.platform.repository.util.bufferedMutableSharedFl
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.util.IntentHandler
|
||||
import com.x8bit.bitwarden.ui.platform.base.util.asText
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.model.AddSendType
|
||||
import com.x8bit.bitwarden.ui.util.isProgressBar
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
@@ -596,6 +597,7 @@ class AddSendScreenTest : BaseComposeTest() {
|
||||
)
|
||||
|
||||
private val DEFAULT_STATE = AddSendState(
|
||||
addSendType = AddSendType.AddItem,
|
||||
viewState = DEFAULT_VIEW_STATE,
|
||||
dialogState = null,
|
||||
isPremiumUser = false,
|
||||
|
||||
+14
-1
@@ -12,6 +12,7 @@ import com.x8bit.bitwarden.data.vault.repository.VaultRepository
|
||||
import com.x8bit.bitwarden.data.vault.repository.model.CreateSendResult
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseViewModelTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.util.asText
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.model.AddSendType
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.util.toSendView
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.util.toSendUrl
|
||||
import io.mockk.coEvery
|
||||
@@ -394,8 +395,19 @@ class AddSendViewModelTest : BaseViewModelTest() {
|
||||
|
||||
private fun createViewModel(
|
||||
state: AddSendState? = null,
|
||||
addSendType: AddSendType = AddSendType.AddItem,
|
||||
): AddSendViewModel = AddSendViewModel(
|
||||
savedStateHandle = SavedStateHandle().apply { set("state", state) },
|
||||
savedStateHandle = SavedStateHandle().apply {
|
||||
set("state", state)
|
||||
set(
|
||||
"add_send_item_type",
|
||||
when (addSendType) {
|
||||
AddSendType.AddItem -> "add"
|
||||
is AddSendType.EditItem -> "edit"
|
||||
},
|
||||
)
|
||||
set("edit_send_id", (addSendType as? AddSendType.EditItem)?.sendItemId)
|
||||
},
|
||||
authRepo = authRepository,
|
||||
environmentRepo = environmentRepository,
|
||||
clock = clock,
|
||||
@@ -432,6 +444,7 @@ class AddSendViewModelTest : BaseViewModelTest() {
|
||||
private const val DEFAULT_ENVIRONMENT_URL = "https://vault.bitwarden.com/#/send/"
|
||||
|
||||
private val DEFAULT_STATE = AddSendState(
|
||||
addSendType = AddSendType.AddItem,
|
||||
viewState = DEFAULT_VIEW_STATE,
|
||||
dialogState = null,
|
||||
isPremiumUser = false,
|
||||
|
||||
Reference in new issue
Block a user