|
|
|
|
@@ -15,7 +15,7 @@ import app.cash.molecule.RecompositionMode
|
|
|
|
|
import app.cash.molecule.moleculeFlow
|
|
|
|
|
import app.cash.turbine.test
|
|
|
|
|
import com.google.common.truth.Truth.assertThat
|
|
|
|
|
import io.element.android.features.messages.impl.attachments.preview.AttachmentsPreviewEvents
|
|
|
|
|
import io.element.android.features.messages.impl.attachments.preview.AttachmentsPreviewEvent
|
|
|
|
|
import io.element.android.features.messages.impl.attachments.preview.AttachmentsPreviewPresenter
|
|
|
|
|
import io.element.android.features.messages.impl.attachments.preview.OnDoneListener
|
|
|
|
|
import io.element.android.features.messages.impl.attachments.preview.SendActionState
|
|
|
|
|
@@ -117,7 +117,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = true))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.ReadyToUpload(mediaUploadInfo))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(mediaUploadInfo))
|
|
|
|
|
@@ -156,7 +156,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
processLatch.complete(Unit)
|
|
|
|
|
advanceUntilIdle()
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.ReadyToUpload(mediaUploadInfo))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(mediaUploadInfo))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
|
|
|
|
@@ -191,7 +191,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
// Pre-processing finishes
|
|
|
|
|
processLatch.complete(Unit)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = true))
|
|
|
|
|
@@ -221,7 +221,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
}.test {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
// Pre-processing finishes
|
|
|
|
|
processLatch.complete(Unit)
|
|
|
|
|
@@ -249,7 +249,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
// Pre-processing finishes
|
|
|
|
|
processLatch.complete(Unit)
|
|
|
|
|
advanceUntilIdle()
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isInstanceOf(SendActionState.Failure::class.java)
|
|
|
|
|
}
|
|
|
|
|
@@ -270,7 +270,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
}.test {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.CancelAndDismiss)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.CancelAndDismiss)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
|
|
|
|
deleteCallback.assertions().isCalledOnce()
|
|
|
|
|
onDoneListener.assertions().isCalledOnce()
|
|
|
|
|
@@ -304,7 +304,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
initialState.textEditorState.setMarkdown(A_CAPTION)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isInstanceOf(SendActionState.Sending.ReadyToUpload::class.java)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isInstanceOf(SendActionState.Sending.Uploading::class.java)
|
|
|
|
|
@@ -347,7 +347,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
initialState.textEditorState.setMarkdown(A_CAPTION)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isInstanceOf(SendActionState.Sending.ReadyToUpload::class.java)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isInstanceOf(SendActionState.Sending.Uploading::class.java)
|
|
|
|
|
@@ -388,7 +388,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
initialState.textEditorState.setMarkdown(A_CAPTION)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isInstanceOf(SendActionState.Sending.ReadyToUpload::class.java)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isInstanceOf(SendActionState.Sending.Uploading::class.java)
|
|
|
|
|
@@ -423,7 +423,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
}.test {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.ReadyToUpload(mediaUploadInfo))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(mediaUploadInfo))
|
|
|
|
|
@@ -434,7 +434,7 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
val failureState = awaitItem()
|
|
|
|
|
assertThat(failureState.sendActionState).isEqualTo(SendActionState.Failure(failure, mediaUploadInfo))
|
|
|
|
|
sendFileResult.assertions().isCalledOnce()
|
|
|
|
|
failureState.eventSink(AttachmentsPreviewEvents.CancelAndClearSendState)
|
|
|
|
|
failureState.eventSink(AttachmentsPreviewEvent.CancelAndClearSendState)
|
|
|
|
|
val clearedState = awaitLastSequentialItem()
|
|
|
|
|
assertThat(clearedState.sendActionState).isEqualTo(SendActionState.Sending.ReadyToUpload(mediaUploadInfo))
|
|
|
|
|
}
|
|
|
|
|
@@ -458,11 +458,11 @@ class AttachmentsPreviewPresenterTest {
|
|
|
|
|
}.test {
|
|
|
|
|
val initialState = awaitItem()
|
|
|
|
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.SendAttachment)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing(displayProgress = false))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.ReadyToUpload(mediaUploadInfo))
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(mediaUploadInfo))
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvents.CancelAndClearSendState)
|
|
|
|
|
initialState.eventSink(AttachmentsPreviewEvent.CancelAndClearSendState)
|
|
|
|
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.ReadyToUpload(mediaUploadInfo))
|
|
|
|
|
// The sending is cancelled and the state is kept at ReadyToUpload
|
|
|
|
|
ensureAllEventsConsumed()
|
|
|
|
|
|