@@ -78,6 +78,7 @@ import io.element.android.libraries.matrix.test.AN_EVENT_ID
78
78
import io.element.android.libraries.matrix.test.A_ROOM_ID
79
79
import io.element.android.libraries.matrix.test.A_SESSION_ID
80
80
import io.element.android.libraries.matrix.test.A_SESSION_ID_2
81
+ import io.element.android.libraries.matrix.test.A_THROWABLE
81
82
import io.element.android.libraries.matrix.test.core.aBuildMeta
82
83
import io.element.android.libraries.matrix.test.permalink.FakePermalinkBuilder
83
84
import io.element.android.libraries.matrix.test.permalink.FakePermalinkParser
@@ -898,10 +899,9 @@ class MessagesPresenterTest {
898
899
899
900
@Test
900
901
fun `present - handle action pin` () = runTest {
901
- val pinEventLambda = lambdaRecorder { _: EventId -> Result .success(true ) }
902
- val timeline = FakeTimeline ().apply {
903
- this .pinEventLambda = pinEventLambda
904
- }
902
+ val successPinEventLambda = lambdaRecorder { _: EventId -> Result .success(true ) }
903
+ val failurePinEventLambda = lambdaRecorder { _: EventId -> Result .failure<Boolean >(A_THROWABLE ) }
904
+ val timeline = FakeTimeline ()
905
905
val room = FakeMatrixRoom (
906
906
liveTimeline = timeline,
907
907
canUserSendMessageResult = { _, _ -> Result .success(true ) },
@@ -919,17 +919,23 @@ class MessagesPresenterTest {
919
919
content = aTimelineItemTextContent()
920
920
)
921
921
val initialState = awaitFirstItem()
922
+
923
+ timeline.pinEventLambda = successPinEventLambda
924
+ initialState.eventSink.invoke(MessagesEvents .HandleAction (TimelineItemAction .Pin , messageEvent))
925
+ assert (successPinEventLambda).isCalledOnce().with (value(messageEvent.eventId))
926
+
927
+ timeline.pinEventLambda = failurePinEventLambda
922
928
initialState.eventSink.invoke(MessagesEvents .HandleAction (TimelineItemAction .Pin , messageEvent))
923
- assert (pinEventLambda).isCalledOnce().with (value(messageEvent.eventId))
929
+ assert (failurePinEventLambda).isCalledOnce().with (value(messageEvent.eventId))
930
+ assertThat(awaitItem().snackbarMessage).isNotNull()
924
931
}
925
932
}
926
933
927
934
@Test
928
935
fun `present - handle action unpin` () = runTest {
929
- val unpinEventLambda = lambdaRecorder { _: EventId -> Result .success(true ) }
930
- val timeline = FakeTimeline ().apply {
931
- this .unpinEventLambda = unpinEventLambda
932
- }
936
+ val successUnpinEventLambda = lambdaRecorder { _: EventId -> Result .success(true ) }
937
+ val failureUnpinEventLambda = lambdaRecorder { _: EventId -> Result .failure<Boolean >(A_THROWABLE ) }
938
+ val timeline = FakeTimeline ()
933
939
val room = FakeMatrixRoom (
934
940
liveTimeline = timeline,
935
941
canUserSendMessageResult = { _, _ -> Result .success(true ) },
@@ -947,8 +953,15 @@ class MessagesPresenterTest {
947
953
content = aTimelineItemTextContent()
948
954
)
949
955
val initialState = awaitFirstItem()
956
+
957
+ timeline.unpinEventLambda = successUnpinEventLambda
958
+ initialState.eventSink.invoke(MessagesEvents .HandleAction (TimelineItemAction .Unpin , messageEvent))
959
+ assert (successUnpinEventLambda).isCalledOnce().with (value(messageEvent.eventId))
960
+
961
+ timeline.unpinEventLambda = failureUnpinEventLambda
950
962
initialState.eventSink.invoke(MessagesEvents .HandleAction (TimelineItemAction .Unpin , messageEvent))
951
- assert (unpinEventLambda).isCalledOnce().with (value(messageEvent.eventId))
963
+ assert (failureUnpinEventLambda).isCalledOnce().with (value(messageEvent.eventId))
964
+ assertThat(awaitItem().snackbarMessage).isNotNull()
952
965
}
953
966
}
954
967
0 commit comments