Browse Source

Test room filtering.

kittykat-patch-1
Benoit Marty 2 years ago committed by Benoit Marty
parent
commit
e4ca3541c3
  1. 51
      features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt

51
features/roomlist/src/test/kotlin/io/element/android/features/roomlist/RoomListPresenterTests.kt

@ -36,7 +36,6 @@ import io.element.android.libraries.matrixtest.room.aRoomSummaryFilled
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
import org.junit.Test import org.junit.Test
import timber.log.Timber
class RoomListPresenterTests { class RoomListPresenterTests {
@ -96,15 +95,47 @@ class RoomListPresenterTests {
// Room list is loaded with 16 placeholders // Room list is loaded with 16 placeholders
assertThat(withUserState.roomList.size).isEqualTo(16) assertThat(withUserState.roomList.size).isEqualTo(16)
assertThat(withUserState.roomList.all { it.isPlaceholder }).isTrue() assertThat(withUserState.roomList.all { it.isPlaceholder }).isTrue()
val roomSummary = aRoomSummaryFilled() roomSummaryDataSource.postRoomSummary(listOf(aRoomSummaryFilled()))
roomSummaryDataSource.postRoomSummary(
listOf(roomSummary)
)
skipItems(1) skipItems(1)
val withRoomState = awaitItem() val withRoomState = awaitItem()
assertThat(withRoomState.roomList.size).isEqualTo(1) assertThat(withRoomState.roomList.size).isEqualTo(1)
assertThat(withRoomState.roomList.first()).isEqualTo( assertThat(withRoomState.roomList.first()).isEqualTo(aRoomListRoomSummary)
RoomListRoomSummary( }
}
@Test
fun `present - load 1 room with success and filter rooms`() = 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()
// Test filtering with result
loadedState.eventSink.invoke(RoomListEvents.UpdateFilter(A_ROOM_NAME.substring(0, 3)))
val withNotFilteredRoomState = awaitItem()
assertThat(withNotFilteredRoomState.filter).isEqualTo(A_ROOM_NAME.substring(0, 3))
assertThat(withNotFilteredRoomState.roomList.size).isEqualTo(1)
assertThat(withNotFilteredRoomState.roomList.first()).isEqualTo(aRoomListRoomSummary)
// Test filtering without result
withNotFilteredRoomState.eventSink.invoke(RoomListEvents.UpdateFilter("tada"))
skipItems(1) // Filter update
val withFilteredRoomState = awaitItem()
assertThat(withFilteredRoomState.filter).isEqualTo("tada")
assertThat(withFilteredRoomState.roomList.size).isEqualTo(0)
}
}
}
private val aRoomListRoomSummary = RoomListRoomSummary(
id = A_ROOM_ID_VALUE, id = A_ROOM_ID_VALUE,
roomId = A_ROOM_ID, roomId = A_ROOM_ID,
name = A_ROOM_NAME, name = A_ROOM_NAME,
@ -113,8 +144,4 @@ class RoomListPresenterTests {
lastMessage = A_LAST_MESSAGE, lastMessage = A_LAST_MESSAGE,
avatarData = AvatarData(name = A_ROOM_NAME), avatarData = AvatarData(name = A_ROOM_NAME),
isPlaceholder = false, isPlaceholder = false,
) )
)
}
}
}

Loading…
Cancel
Save