Add test for RoomListEvents.ToggleSearchResults.
This commit is contained in:
parent
d3dbb13b3f
commit
a48e87a0bf
2 changed files with 38 additions and 1 deletions
|
|
@ -38,9 +38,10 @@ fun aRoomListSearchState(
|
||||||
isSearchActive: Boolean = false,
|
isSearchActive: Boolean = false,
|
||||||
query: String = "",
|
query: String = "",
|
||||||
results: ImmutableList<RoomListRoomSummary> = persistentListOf(),
|
results: ImmutableList<RoomListRoomSummary> = persistentListOf(),
|
||||||
|
eventSink: (RoomListSearchEvents) -> Unit = { },
|
||||||
) = RoomListSearchState(
|
) = RoomListSearchState(
|
||||||
isSearchActive = isSearchActive,
|
isSearchActive = isSearchActive,
|
||||||
query = query,
|
query = query,
|
||||||
results = results,
|
results = results,
|
||||||
eventSink = { },
|
eventSink = eventSink,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import io.element.android.features.roomlist.impl.datasource.RoomListRoomSummaryF
|
||||||
import io.element.android.features.roomlist.impl.migration.InMemoryMigrationScreenStore
|
import io.element.android.features.roomlist.impl.migration.InMemoryMigrationScreenStore
|
||||||
import io.element.android.features.roomlist.impl.migration.MigrationScreenPresenter
|
import io.element.android.features.roomlist.impl.migration.MigrationScreenPresenter
|
||||||
import io.element.android.features.roomlist.impl.model.createRoomListRoomSummary
|
import io.element.android.features.roomlist.impl.model.createRoomListRoomSummary
|
||||||
|
import io.element.android.features.roomlist.impl.search.RoomListSearchEvents
|
||||||
import io.element.android.features.roomlist.impl.search.RoomListSearchState
|
import io.element.android.features.roomlist.impl.search.RoomListSearchState
|
||||||
import io.element.android.features.roomlist.impl.search.aRoomListSearchState
|
import io.element.android.features.roomlist.impl.search.aRoomListSearchState
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
|
|
@ -69,6 +70,7 @@ import io.element.android.libraries.matrix.test.room.aRoomInfo
|
||||||
import io.element.android.libraries.matrix.test.room.aRoomSummaryFilled
|
import io.element.android.libraries.matrix.test.room.aRoomSummaryFilled
|
||||||
import io.element.android.libraries.matrix.test.roomlist.FakeRoomListService
|
import io.element.android.libraries.matrix.test.roomlist.FakeRoomListService
|
||||||
import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService
|
import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService
|
||||||
|
import io.element.android.tests.testutils.EventsRecorder
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import io.element.android.tests.testutils.consumeItemsUntilPredicate
|
import io.element.android.tests.testutils.consumeItemsUntilPredicate
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
|
|
@ -414,6 +416,40 @@ class RoomListPresenterTests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `present - toggle search menu`() = runTest {
|
||||||
|
val eventRecorder = EventsRecorder<RoomListSearchEvents>()
|
||||||
|
val searchPresenter: Presenter<RoomListSearchState> = Presenter {
|
||||||
|
aRoomListSearchState(
|
||||||
|
eventSink = eventRecorder
|
||||||
|
)
|
||||||
|
}
|
||||||
|
val scope = CoroutineScope(coroutineContext + SupervisorJob())
|
||||||
|
val presenter = createRoomListPresenter(
|
||||||
|
coroutineScope = scope,
|
||||||
|
searchPresenter = searchPresenter,
|
||||||
|
)
|
||||||
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
|
presenter.present()
|
||||||
|
}.test {
|
||||||
|
skipItems(1)
|
||||||
|
val initialState = awaitItem()
|
||||||
|
eventRecorder.assertEmpty()
|
||||||
|
initialState.eventSink(RoomListEvents.ToggleSearchResults)
|
||||||
|
eventRecorder.assertSingle(
|
||||||
|
RoomListSearchEvents.ToggleSearchVisibility
|
||||||
|
)
|
||||||
|
initialState.eventSink(RoomListEvents.ToggleSearchResults)
|
||||||
|
eventRecorder.assertList(
|
||||||
|
listOf(
|
||||||
|
RoomListSearchEvents.ToggleSearchVisibility,
|
||||||
|
RoomListSearchEvents.ToggleSearchVisibility
|
||||||
|
)
|
||||||
|
)
|
||||||
|
scope.cancel()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - change in notification settings updates the summary for decorations`() = runTest {
|
fun `present - change in notification settings updates the summary for decorations`() = runTest {
|
||||||
val userDefinedMode = RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
val userDefinedMode = RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue