mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
RoomDirectoryEvents -> RoomDirectoryEvent
This commit is contained in:
+3
-3
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
package io.element.android.features.roomdirectory.impl.root
|
package io.element.android.features.roomdirectory.impl.root
|
||||||
|
|
||||||
sealed interface RoomDirectoryEvents {
|
sealed interface RoomDirectoryEvent {
|
||||||
data class Search(val query: String) : RoomDirectoryEvents
|
data class Search(val query: String) : RoomDirectoryEvent
|
||||||
data object LoadMore : RoomDirectoryEvents
|
data object LoadMore : RoomDirectoryEvent
|
||||||
}
|
}
|
||||||
+3
-3
@@ -63,12 +63,12 @@ class RoomDirectoryPresenter(
|
|||||||
loadingMore = false
|
loadingMore = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fun handleEvent(event: RoomDirectoryEvents) {
|
fun handleEvent(event: RoomDirectoryEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
RoomDirectoryEvents.LoadMore -> {
|
RoomDirectoryEvent.LoadMore -> {
|
||||||
loadingMore = true
|
loadingMore = true
|
||||||
}
|
}
|
||||||
is RoomDirectoryEvents.Search -> {
|
is RoomDirectoryEvent.Search -> {
|
||||||
searchQuery = event.query
|
searchQuery = event.query
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ data class RoomDirectoryState(
|
|||||||
val query: String,
|
val query: String,
|
||||||
val roomDescriptions: ImmutableList<RoomDescription>,
|
val roomDescriptions: ImmutableList<RoomDescription>,
|
||||||
val displayLoadMoreIndicator: Boolean,
|
val displayLoadMoreIndicator: Boolean,
|
||||||
val eventSink: (RoomDirectoryEvents) -> Unit
|
val eventSink: (RoomDirectoryEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val displayEmptyState = roomDescriptions.isEmpty() && !displayLoadMoreIndicator
|
val displayEmptyState = roomDescriptions.isEmpty() && !displayLoadMoreIndicator
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ fun aRoomDirectoryState(
|
|||||||
query: String = "",
|
query: String = "",
|
||||||
displayLoadMoreIndicator: Boolean = false,
|
displayLoadMoreIndicator: Boolean = false,
|
||||||
roomDescriptions: ImmutableList<RoomDescription> = persistentListOf(),
|
roomDescriptions: ImmutableList<RoomDescription> = persistentListOf(),
|
||||||
eventSink: (RoomDirectoryEvents) -> Unit = {},
|
eventSink: (RoomDirectoryEvent) -> Unit = {},
|
||||||
) = RoomDirectoryState(
|
) = RoomDirectoryState(
|
||||||
query = query,
|
query = query,
|
||||||
roomDescriptions = roomDescriptions,
|
roomDescriptions = roomDescriptions,
|
||||||
|
|||||||
+2
-2
@@ -107,7 +107,7 @@ private fun RoomDirectoryContent(
|
|||||||
Column(modifier = modifier) {
|
Column(modifier = modifier) {
|
||||||
SearchTextField(
|
SearchTextField(
|
||||||
query = state.query,
|
query = state.query,
|
||||||
onQueryChange = { state.eventSink(RoomDirectoryEvents.Search(it)) },
|
onQueryChange = { state.eventSink(RoomDirectoryEvent.Search(it)) },
|
||||||
placeholder = stringResource(id = CommonStrings.action_search),
|
placeholder = stringResource(id = CommonStrings.action_search),
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
)
|
)
|
||||||
@@ -116,7 +116,7 @@ private fun RoomDirectoryContent(
|
|||||||
displayLoadMoreIndicator = state.displayLoadMoreIndicator,
|
displayLoadMoreIndicator = state.displayLoadMoreIndicator,
|
||||||
displayEmptyState = state.displayEmptyState,
|
displayEmptyState = state.displayEmptyState,
|
||||||
onResultClick = onResultClick,
|
onResultClick = onResultClick,
|
||||||
onReachedLoadMore = { state.eventSink(RoomDirectoryEvents.LoadMore) },
|
onReachedLoadMore = { state.eventSink(RoomDirectoryEvent.LoadMore) },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -91,7 +91,7 @@ class RoomDirectoryPresenterTest {
|
|||||||
val presenter = createRoomDirectoryPresenter(roomDirectoryService = roomDirectoryService)
|
val presenter = createRoomDirectoryPresenter(roomDirectoryService = roomDirectoryService)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
state.eventSink(RoomDirectoryEvents.Search("test"))
|
state.eventSink(RoomDirectoryEvent.Search("test"))
|
||||||
}
|
}
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
assertThat(state.query).isEqualTo("test")
|
assertThat(state.query).isEqualTo("test")
|
||||||
@@ -112,7 +112,7 @@ class RoomDirectoryPresenterTest {
|
|||||||
val presenter = createRoomDirectoryPresenter(roomDirectoryService = roomDirectoryService)
|
val presenter = createRoomDirectoryPresenter(roomDirectoryService = roomDirectoryService)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
state.eventSink(RoomDirectoryEvents.LoadMore)
|
state.eventSink(RoomDirectoryEvent.LoadMore)
|
||||||
}
|
}
|
||||||
advanceUntilIdle()
|
advanceUntilIdle()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
|
|||||||
+5
-5
@@ -30,7 +30,7 @@ import org.junit.Test
|
|||||||
class RoomDirectoryViewTest : RobolectricTest() {
|
class RoomDirectoryViewTest : RobolectricTest() {
|
||||||
@Test
|
@Test
|
||||||
fun `typing text in search field emits the expected Event`() = runAndroidComposeUiTest {
|
fun `typing text in search field emits the expected Event`() = runAndroidComposeUiTest {
|
||||||
val eventsRecorder = EventsRecorder<RoomDirectoryEvents>()
|
val eventsRecorder = EventsRecorder<RoomDirectoryEvent>()
|
||||||
setRoomDirectoryView(
|
setRoomDirectoryView(
|
||||||
state = aRoomDirectoryState(
|
state = aRoomDirectoryState(
|
||||||
eventSink = eventsRecorder,
|
eventSink = eventsRecorder,
|
||||||
@@ -39,12 +39,12 @@ class RoomDirectoryViewTest : RobolectricTest() {
|
|||||||
onNodeWithTag(TestTags.searchTextField.value).performTextInput(
|
onNodeWithTag(TestTags.searchTextField.value).performTextInput(
|
||||||
text = "Test"
|
text = "Test"
|
||||||
)
|
)
|
||||||
eventsRecorder.assertSingle(RoomDirectoryEvents.Search("Test"))
|
eventsRecorder.assertSingle(RoomDirectoryEvent.Search("Test"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `clicking on room item then onResultClick lambda is called once`() = runAndroidComposeUiTest {
|
fun `clicking on room item then onResultClick lambda is called once`() = runAndroidComposeUiTest {
|
||||||
val eventsRecorder = EventsRecorder<RoomDirectoryEvents>()
|
val eventsRecorder = EventsRecorder<RoomDirectoryEvent>()
|
||||||
val state = aRoomDirectoryState(
|
val state = aRoomDirectoryState(
|
||||||
roomDescriptions = aRoomDescriptionList(),
|
roomDescriptions = aRoomDescriptionList(),
|
||||||
eventSink = eventsRecorder,
|
eventSink = eventsRecorder,
|
||||||
@@ -61,13 +61,13 @@ class RoomDirectoryViewTest : RobolectricTest() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `composing load more indicator emits expected Event`() = runAndroidComposeUiTest {
|
fun `composing load more indicator emits expected Event`() = runAndroidComposeUiTest {
|
||||||
val eventsRecorder = EventsRecorder<RoomDirectoryEvents>()
|
val eventsRecorder = EventsRecorder<RoomDirectoryEvent>()
|
||||||
val state = aRoomDirectoryState(
|
val state = aRoomDirectoryState(
|
||||||
displayLoadMoreIndicator = true,
|
displayLoadMoreIndicator = true,
|
||||||
eventSink = eventsRecorder,
|
eventSink = eventsRecorder,
|
||||||
)
|
)
|
||||||
setRoomDirectoryView(state = state)
|
setRoomDirectoryView(state = state)
|
||||||
eventsRecorder.assertSingle(RoomDirectoryEvents.LoadMore)
|
eventsRecorder.assertSingle(RoomDirectoryEvent.LoadMore)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user