Add missing tests.
This commit is contained in:
parent
f5b17d4ddb
commit
6ae0d67e69
2 changed files with 71 additions and 3 deletions
|
|
@ -345,7 +345,7 @@ class MediaGalleryPresenterTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - view in timeline invokes the navigator`() = runTest {
|
fun `present - view in timeline closes the bottom sheet and invokes the navigator`() = runTest {
|
||||||
val onViewInTimelineClickLambda = lambdaRecorder<EventId, Unit> { }
|
val onViewInTimelineClickLambda = lambdaRecorder<EventId, Unit> { }
|
||||||
val navigator = FakeMediaGalleryNavigator(
|
val navigator = FakeMediaGalleryNavigator(
|
||||||
onViewInTimelineClickLambda = onViewInTimelineClickLambda,
|
onViewInTimelineClickLambda = onViewInTimelineClickLambda,
|
||||||
|
|
@ -353,16 +353,59 @@ class MediaGalleryPresenterTest {
|
||||||
val presenter = createMediaGalleryPresenter(
|
val presenter = createMediaGalleryPresenter(
|
||||||
room = FakeJoinedRoom(
|
room = FakeJoinedRoom(
|
||||||
createTimelineResult = { Result.success(FakeTimeline()) },
|
createTimelineResult = { Result.success(FakeTimeline()) },
|
||||||
|
baseRoom = FakeBaseRoom(
|
||||||
|
canRedactOwnResult = { Result.success(true) },
|
||||||
|
),
|
||||||
),
|
),
|
||||||
navigator = navigator,
|
navigator = navigator,
|
||||||
)
|
)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
val initialState = awaitFirstItem()
|
val initialState = awaitFirstItem()
|
||||||
initialState.eventSink(MediaGalleryEvents.ViewInTimeline(AN_EVENT_ID))
|
val item = aMediaItemImage(
|
||||||
|
eventId = AN_EVENT_ID,
|
||||||
|
senderId = A_USER_ID,
|
||||||
|
)
|
||||||
|
initialState.eventSink(MediaGalleryEvents.OpenInfo(item))
|
||||||
|
val withBottomSheetState = awaitItem()
|
||||||
|
assertThat(withBottomSheetState.mediaBottomSheetState).isInstanceOf(MediaBottomSheetState.MediaDetailsBottomSheetState::class.java)
|
||||||
|
withBottomSheetState.eventSink(MediaGalleryEvents.ViewInTimeline(AN_EVENT_ID))
|
||||||
|
val finalState = awaitItem()
|
||||||
|
assertThat(finalState.mediaBottomSheetState).isEqualTo(MediaBottomSheetState.Hidden)
|
||||||
onViewInTimelineClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID))
|
onViewInTimelineClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `present - forward closes the bottom sheet and invokes the navigator`() = runTest {
|
||||||
|
val onForwardClickLambda = lambdaRecorder<EventId, Unit> { }
|
||||||
|
val navigator = FakeMediaGalleryNavigator(
|
||||||
|
onForwardClickLambda = onForwardClickLambda,
|
||||||
|
)
|
||||||
|
val presenter = createMediaGalleryPresenter(
|
||||||
|
room = FakeJoinedRoom(
|
||||||
|
createTimelineResult = { Result.success(FakeTimeline()) },
|
||||||
|
baseRoom = FakeBaseRoom(
|
||||||
|
canRedactOwnResult = { Result.success(true) },
|
||||||
|
),
|
||||||
|
),
|
||||||
|
navigator = navigator,
|
||||||
|
)
|
||||||
|
presenter.test {
|
||||||
|
val initialState = awaitFirstItem()
|
||||||
|
val item = aMediaItemImage(
|
||||||
|
eventId = AN_EVENT_ID,
|
||||||
|
senderId = A_USER_ID,
|
||||||
|
)
|
||||||
|
initialState.eventSink(MediaGalleryEvents.OpenInfo(item))
|
||||||
|
val withBottomSheetState = awaitItem()
|
||||||
|
assertThat(withBottomSheetState.mediaBottomSheetState).isInstanceOf(MediaBottomSheetState.MediaDetailsBottomSheetState::class.java)
|
||||||
|
withBottomSheetState.eventSink(MediaGalleryEvents.Forward(AN_EVENT_ID))
|
||||||
|
val finalState = awaitItem()
|
||||||
|
assertThat(finalState.mediaBottomSheetState).isEqualTo(MediaBottomSheetState.Hidden)
|
||||||
|
onForwardClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - load more`() = runTest {
|
fun `present - load more`() = runTest {
|
||||||
val loadMoreLambda = lambdaRecorder<Timeline.PaginationDirection, Unit> { }
|
val loadMoreLambda = lambdaRecorder<Timeline.PaginationDirection, Unit> { }
|
||||||
|
|
|
||||||
|
|
@ -759,7 +759,7 @@ class MediaViewerPresenterTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - view in timeline hide the bottom sheet and invokes the navigator`() = runTest {
|
fun `present - view in timeline hides the bottom sheet and invokes the navigator`() = runTest {
|
||||||
val onViewInTimelineClickLambda = lambdaRecorder<EventId, Unit> { }
|
val onViewInTimelineClickLambda = lambdaRecorder<EventId, Unit> { }
|
||||||
val navigator = FakeMediaViewerNavigator(
|
val navigator = FakeMediaViewerNavigator(
|
||||||
onViewInTimelineClickLambda = onViewInTimelineClickLambda,
|
onViewInTimelineClickLambda = onViewInTimelineClickLambda,
|
||||||
|
|
@ -783,6 +783,31 @@ class MediaViewerPresenterTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `present - forward hides the bottom sheet and invokes the navigator`() = runTest {
|
||||||
|
val onForwardClickLambda = lambdaRecorder<EventId, Unit> { }
|
||||||
|
val navigator = FakeMediaViewerNavigator(
|
||||||
|
onForwardClickLambda = onForwardClickLambda,
|
||||||
|
)
|
||||||
|
val presenter = createMediaViewerPresenter(
|
||||||
|
localMediaFactory = localMediaFactory,
|
||||||
|
mediaViewerNavigator = navigator,
|
||||||
|
room = FakeJoinedRoom(
|
||||||
|
baseRoom = FakeBaseRoom(canRedactOwnResult = { Result.success(true) }),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
presenter.test {
|
||||||
|
val initialState = awaitItem()
|
||||||
|
initialState.eventSink(MediaViewerEvents.OpenInfo(aMediaViewerPageData()))
|
||||||
|
val withBottomSheetState = awaitItem()
|
||||||
|
assertThat(withBottomSheetState.mediaBottomSheetState).isInstanceOf(MediaBottomSheetState.MediaDetailsBottomSheetState::class.java)
|
||||||
|
initialState.eventSink(MediaViewerEvents.Forward(AN_EVENT_ID))
|
||||||
|
val finalState = awaitItem()
|
||||||
|
assertThat(finalState.mediaBottomSheetState).isEqualTo(MediaBottomSheetState.Hidden)
|
||||||
|
onForwardClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private suspend fun <T> ReceiveTurbine<T>.awaitFirstItem(): T {
|
private suspend fun <T> ReceiveTurbine<T>.awaitFirstItem(): T {
|
||||||
return awaitItem()
|
return awaitItem()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue