Add test MessagesViewTest.clicking on an Event timestamp in error emits the expected Event
This commit is contained in:
parent
f3a0ce87a1
commit
81ca61645f
3 changed files with 29 additions and 7 deletions
|
|
@ -30,6 +30,7 @@ import io.element.android.features.messages.impl.timeline.components.reactionsum
|
||||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
||||||
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||||
import io.element.android.features.messages.impl.timeline.components.retrysendmenu.RetrySendMenuState
|
import io.element.android.features.messages.impl.timeline.components.retrysendmenu.RetrySendMenuState
|
||||||
|
import io.element.android.features.messages.impl.timeline.components.retrysendmenu.aRetrySendMenuState
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
||||||
import io.element.android.features.messages.impl.typing.aTypingNotificationState
|
import io.element.android.features.messages.impl.typing.aTypingNotificationState
|
||||||
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerState
|
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageComposerState
|
||||||
|
|
@ -97,6 +98,7 @@ fun aMessagesState(
|
||||||
mode = MessageComposerMode.Normal,
|
mode = MessageComposerMode.Normal,
|
||||||
),
|
),
|
||||||
voiceMessageComposerState: VoiceMessageComposerState = aVoiceMessageComposerState(),
|
voiceMessageComposerState: VoiceMessageComposerState = aVoiceMessageComposerState(),
|
||||||
|
retrySendMenuState: RetrySendMenuState = aRetrySendMenuState(),
|
||||||
actionListState: ActionListState = anActionListState(),
|
actionListState: ActionListState = anActionListState(),
|
||||||
customReactionState: CustomReactionState = aCustomReactionState(),
|
customReactionState: CustomReactionState = aCustomReactionState(),
|
||||||
reactionSummaryState: ReactionSummaryState = aReactionSummaryState(),
|
reactionSummaryState: ReactionSummaryState = aReactionSummaryState(),
|
||||||
|
|
@ -119,10 +121,7 @@ fun aMessagesState(
|
||||||
timelineItems = aTimelineItemList(aTimelineItemTextContent()),
|
timelineItems = aTimelineItemList(aTimelineItemTextContent()),
|
||||||
),
|
),
|
||||||
typingNotificationState = aTypingNotificationState(),
|
typingNotificationState = aTypingNotificationState(),
|
||||||
retrySendMenuState = RetrySendMenuState(
|
retrySendMenuState = retrySendMenuState,
|
||||||
selectedEvent = null,
|
|
||||||
eventSink = {},
|
|
||||||
),
|
|
||||||
readReceiptBottomSheetState = ReadReceiptBottomSheetState(
|
readReceiptBottomSheetState = ReadReceiptBottomSheetState(
|
||||||
selectedEvent = null,
|
selectedEvent = null,
|
||||||
eventSink = {},
|
eventSink = {},
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,15 @@ import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||||
|
|
||||||
class RetrySendMenuStateProvider : PreviewParameterProvider<RetrySendMenuState> {
|
class RetrySendMenuStateProvider : PreviewParameterProvider<RetrySendMenuState> {
|
||||||
override val values: Sequence<RetrySendMenuState> = sequenceOf(
|
override val values: Sequence<RetrySendMenuState> = sequenceOf(
|
||||||
aRetrySendMenuState(event = null),
|
aRetrySendMenuState(),
|
||||||
aRetrySendMenuState(event = aTimelineItemEvent()),
|
aRetrySendMenuState(event = aTimelineItemEvent()),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aRetrySendMenuState(event: TimelineItem.Event? = aTimelineItemEvent()) =
|
fun aRetrySendMenuState(
|
||||||
RetrySendMenuState(selectedEvent = event, eventSink = {})
|
event: TimelineItem.Event? = null,
|
||||||
|
eventSink: (RetrySendMenuEvents) -> Unit = {},
|
||||||
|
) = RetrySendMenuState(
|
||||||
|
selectedEvent = event,
|
||||||
|
eventSink = eventSink,
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ import io.element.android.features.messages.impl.attachments.Attachment
|
||||||
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
||||||
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionEvents
|
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionEvents
|
||||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvents
|
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvents
|
||||||
|
import io.element.android.features.messages.impl.timeline.components.retrysendmenu.RetrySendMenuEvents
|
||||||
|
import io.element.android.features.messages.impl.timeline.components.retrysendmenu.aRetrySendMenuState
|
||||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.testtags.TestTags
|
import io.element.android.libraries.testtags.TestTags
|
||||||
|
|
@ -128,6 +130,22 @@ class MessagesViewTest {
|
||||||
callback.assertSuccess()
|
callback.assertSuccess()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `clicking on an Event timestamp in error emits the expected Event`() {
|
||||||
|
val eventsRecorder = EventsRecorder<RetrySendMenuEvents>()
|
||||||
|
val state = aMessagesState(
|
||||||
|
retrySendMenuState = aRetrySendMenuState(
|
||||||
|
eventSink = eventsRecorder
|
||||||
|
),
|
||||||
|
)
|
||||||
|
val timelineItem = state.timelineState.timelineItems[1] as TimelineItem.Event
|
||||||
|
rule.setMessagesView(
|
||||||
|
state = state,
|
||||||
|
)
|
||||||
|
rule.onAllNodesWithText(timelineItem.sentTime)[1].performClick()
|
||||||
|
eventsRecorder.assertSingle(RetrySendMenuEvents.EventSelected(timelineItem))
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `clicking on send location invoke expected callback`() {
|
fun `clicking on send location invoke expected callback`() {
|
||||||
val eventsRecorder = EventsRecorder<MessagesEvents>(expectEvents = false)
|
val eventsRecorder = EventsRecorder<MessagesEvents>(expectEvents = false)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue