mirror of
https://github.com/bitwarden/android.git
synced 2026-03-21 22:00:42 -05:00
PM-10725: Always show share sheet after creating send regardless of how it was made (#4841)
This commit is contained in:
@@ -199,20 +199,12 @@ class AddSendViewModel @Inject constructor(
|
||||
|
||||
is CreateSendResult.Success -> {
|
||||
mutableStateFlow.update { it.copy(dialogState = null) }
|
||||
if (state.isShared) {
|
||||
navigateBack()
|
||||
clipboardManager.setText(
|
||||
result.sendView.toSendUrl(state.baseWebSendUrl),
|
||||
toastDescriptorOverride = R.string.send_link.asText(),
|
||||
)
|
||||
} else {
|
||||
navigateBack()
|
||||
sendEvent(
|
||||
AddSendEvent.ShowShareSheet(
|
||||
message = result.sendView.toSendUrl(state.baseWebSendUrl),
|
||||
),
|
||||
)
|
||||
}
|
||||
navigateBack()
|
||||
sendEvent(
|
||||
AddSendEvent.ShowShareSheet(
|
||||
message = result.sendView.toSendUrl(state.baseWebSendUrl),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,36 +156,6 @@ class AddSendViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `SaveClick with createSend success should emit NavigateBack and ShowShareSheet when not an external shared`() =
|
||||
runTest {
|
||||
val viewState = DEFAULT_VIEW_STATE.copy(
|
||||
common = DEFAULT_COMMON_STATE.copy(name = "input"),
|
||||
)
|
||||
val initialState = DEFAULT_STATE.copy(viewState = viewState)
|
||||
val mockSendView = mockk<SendView>()
|
||||
every { viewState.toSendView(clock) } returns mockSendView
|
||||
val sendUrl = "www.test.com/send/test"
|
||||
val resultSendView = mockk<SendView> {
|
||||
every { toSendUrl(DEFAULT_ENVIRONMENT_URL) } returns sendUrl
|
||||
}
|
||||
coEvery {
|
||||
vaultRepository.createSend(sendView = mockSendView, fileUri = null)
|
||||
} returns CreateSendResult.Success(sendView = resultSendView)
|
||||
val viewModel = createViewModel(initialState)
|
||||
|
||||
viewModel.eventFlow.test {
|
||||
viewModel.trySendAction(AddSendAction.SaveClick)
|
||||
assertEquals(AddSendEvent.NavigateBack, awaitItem())
|
||||
assertEquals(AddSendEvent.ShowShareSheet(sendUrl), awaitItem())
|
||||
}
|
||||
assertEquals(initialState, viewModel.stateFlow.value)
|
||||
coVerify(exactly = 1) {
|
||||
vaultRepository.createSend(sendView = mockSendView, fileUri = null)
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `SaveClick with createSend success should copy the send URL to the clipboard and emit NavigateBack`() =
|
||||
@@ -212,15 +182,15 @@ class AddSendViewModelTest : BaseViewModelTest() {
|
||||
viewModel.eventFlow.test {
|
||||
viewModel.trySendAction(AddSendAction.SaveClick)
|
||||
assertEquals(AddSendEvent.NavigateBack, awaitItem())
|
||||
assertEquals(
|
||||
AddSendEvent.ShowShareSheet(message = "www.test.com/send/test"),
|
||||
awaitItem(),
|
||||
)
|
||||
}
|
||||
assertEquals(initialState, viewModel.stateFlow.value)
|
||||
coVerify(exactly = 1) {
|
||||
vaultRepository.createSend(sendView = mockSendView, fileUri = null)
|
||||
specialCircumstanceManager.specialCircumstance = null
|
||||
clipboardManager.setText(
|
||||
text = sendUrl,
|
||||
toastDescriptorOverride = R.string.send_link.asText(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -250,15 +220,15 @@ class AddSendViewModelTest : BaseViewModelTest() {
|
||||
viewModel.eventFlow.test {
|
||||
viewModel.trySendAction(AddSendAction.SaveClick)
|
||||
assertEquals(AddSendEvent.ExitApp, awaitItem())
|
||||
assertEquals(
|
||||
AddSendEvent.ShowShareSheet(message = "www.test.com/send/test"),
|
||||
awaitItem(),
|
||||
)
|
||||
}
|
||||
assertEquals(initialState, viewModel.stateFlow.value)
|
||||
coVerify(exactly = 1) {
|
||||
vaultRepository.createSend(sendView = mockSendView, fileUri = null)
|
||||
specialCircumstanceManager.specialCircumstance = null
|
||||
clipboardManager.setText(
|
||||
text = sendUrl,
|
||||
toastDescriptorOverride = R.string.send_link.asText(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user