PM-10725: Always show share sheet after creating send regardless of how it was made (#4841)

This commit is contained in:
David Perez
2025-03-10 15:43:49 -05:00
committed by GitHub
parent 778a630012
commit b9b90165bf
2 changed files with 14 additions and 52 deletions

View File

@@ -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),
),
)
}
}
}

View File

@@ -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(),
)
}
}