mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-04 20:01:55 +00:00
Use test extension on presenter.
This commit is contained in:
+6
-18
@@ -9,9 +9,6 @@
|
|||||||
package io.element.android.libraries.roomselect.impl
|
package io.element.android.libraries.roomselect.impl
|
||||||
|
|
||||||
import androidx.compose.foundation.text.input.setTextAndPlaceCursorAtEnd
|
import androidx.compose.foundation.text.input.setTextAndPlaceCursorAtEnd
|
||||||
import app.cash.molecule.RecompositionMode
|
|
||||||
import app.cash.molecule.moleculeFlow
|
|
||||||
import app.cash.turbine.test
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomListFilter
|
import io.element.android.libraries.matrix.api.roomlist.RoomListFilter
|
||||||
@@ -24,6 +21,7 @@ import io.element.android.libraries.roomselect.api.RoomSelectMode
|
|||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import io.element.android.tests.testutils.lambda.assert
|
import io.element.android.tests.testutils.lambda.assert
|
||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
|
import io.element.android.tests.testutils.test
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@@ -40,9 +38,7 @@ class RoomSelectPresenterTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val presenter = createRoomSelectPresenter()
|
val presenter = createRoomSelectPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.selectedRooms).isEmpty()
|
assertThat(initialState.selectedRooms).isEmpty()
|
||||||
assertThat(initialState.resultState).isInstanceOf(SearchBarResultState.Initial::class.java)
|
assertThat(initialState.resultState).isInstanceOf(SearchBarResultState.Initial::class.java)
|
||||||
@@ -53,9 +49,7 @@ class RoomSelectPresenterTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `present - toggle search active`() = runTest {
|
fun `present - toggle search active`() = runTest {
|
||||||
val presenter = createRoomSelectPresenter()
|
val presenter = createRoomSelectPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomSelectEvent.ToggleSearchActive)
|
initialState.eventSink(RoomSelectEvent.ToggleSearchActive)
|
||||||
assertThat(awaitItem().isSearchActive).isTrue()
|
assertThat(awaitItem().isSearchActive).isTrue()
|
||||||
@@ -76,9 +70,7 @@ class RoomSelectPresenterTest {
|
|||||||
val presenter = createRoomSelectPresenter(
|
val presenter = createRoomSelectPresenter(
|
||||||
roomListService = roomListService
|
roomListService = roomListService
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
val expectedRoomInfo = roomSummary.toSelectRoomInfo()
|
val expectedRoomInfo = roomSummary.toSelectRoomInfo()
|
||||||
// Do not compare the lambda because they will be different. So copy the lambda from expectedRoomSummary to result
|
// Do not compare the lambda because they will be different. So copy the lambda from expectedRoomSummary to result
|
||||||
@@ -112,9 +104,7 @@ class RoomSelectPresenterTest {
|
|||||||
val presenter = createRoomSelectPresenter(
|
val presenter = createRoomSelectPresenter(
|
||||||
roomListService = roomListService,
|
roomListService = roomListService,
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
val roomInfo = roomSummary.toSelectRoomInfo()
|
val roomInfo = roomSummary.toSelectRoomInfo()
|
||||||
initialState.eventSink(RoomSelectEvent.ToggleSelectedRoom(roomInfo))
|
initialState.eventSink(RoomSelectEvent.ToggleSelectedRoom(roomInfo))
|
||||||
@@ -136,9 +126,7 @@ class RoomSelectPresenterTest {
|
|||||||
createRoomListLambda = { roomList }
|
createRoomListLambda = { roomList }
|
||||||
)
|
)
|
||||||
val presenter = createRoomSelectPresenter(roomListService = roomListService)
|
val presenter = createRoomSelectPresenter(roomListService = roomListService)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
// Post some rooms to simulate loaded content
|
// Post some rooms to simulate loaded content
|
||||||
val rooms = (1..10).map { aRoomSummary() }
|
val rooms = (1..10).map { aRoomSummary() }
|
||||||
|
|||||||
Reference in New Issue
Block a user