Add test about visible range

This commit is contained in:
Benoit Marty
2023-02-06 17:52:29 +01:00
committed by Benoit Marty
parent 0082019b1c
commit 2516d0cae7
2 changed files with 42 additions and 1 deletions

View File

@@ -133,6 +133,43 @@ class RoomListPresenterTests {
assertThat(withFilteredRoomState.roomList.size).isEqualTo(0)
}
}
@Test
fun `present - update visible range`() = runTest {
val roomSummaryDataSource = InMemoryRoomSummaryDataSource()
val presenter = RoomListPresenter(
FakeMatrixClient(
sessionId = SessionId("sessionId"),
roomSummaryDataSource = roomSummaryDataSource
),
LastMessageFormatter()
)
moleculeFlow(RecompositionClock.Immediate) {
presenter.present()
}.test {
roomSummaryDataSource.postRoomSummary(listOf(aRoomSummaryFilled()))
skipItems(3)
val loadedState = awaitItem()
// check initial value
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isNull()
// Test empty range
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(1, 0)))
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isNull()
// Update visible range and check that range is transmitted to the SDK after computation
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(0, 0)))
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isEqualTo(IntRange(0, 20))
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(0, 1)))
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isEqualTo(IntRange(0, 21))
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(19, 29)))
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isEqualTo(IntRange(0, 49))
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(49, 59)))
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isEqualTo(IntRange(29, 79))
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(149, 159)))
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isEqualTo(IntRange(129, 179))
loadedState.eventSink.invoke(RoomListEvents.UpdateVisibleRange(IntRange(149, 259)))
assertThat(roomSummaryDataSource.latestSlidingSyncRange).isEqualTo(IntRange(129, 279))
}
}
}
private val aRoomListRoomSummary = RoomListRoomSummary(

View File

@@ -33,5 +33,9 @@ class InMemoryRoomSummaryDataSource : RoomSummaryDataSource {
return roomSummariesFlow
}
override fun setSlidingSyncRange(range: IntRange) = Unit
var latestSlidingSyncRange: IntRange? = null
override fun setSlidingSyncRange(range: IntRange) {
latestSlidingSyncRange = range
}
}