mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-05 12:54:35 +00:00
RoomInviteMembers : add small tests
This commit is contained in:
+11
@@ -64,6 +64,17 @@ internal class RoomInviteMembersStateProvider : PreviewParameterProvider<RoomInv
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
aRoomInviteMembersState(
|
||||||
|
isSearchActive = true,
|
||||||
|
canInvite = true,
|
||||||
|
searchQuery = "@alice:server.org",
|
||||||
|
searchResults = SearchBarResultState.Results(
|
||||||
|
persistentListOf(
|
||||||
|
InvitableUser(aMatrixUser("@alice:server.org"), isUnresolved = true),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
isFetchingSearchResults = true,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-10
@@ -38,6 +38,8 @@ import io.element.android.libraries.usersearch.api.UserSearchResult
|
|||||||
import io.element.android.libraries.usersearch.api.UserSearchResults
|
import io.element.android.libraries.usersearch.api.UserSearchResults
|
||||||
import io.element.android.libraries.usersearch.test.FakeUserRepository
|
import io.element.android.libraries.usersearch.test.FakeUserRepository
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
|
import io.element.android.tests.testutils.awaitLastSequentialItem
|
||||||
|
import io.element.android.tests.testutils.consumeItemsUntilPredicate
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
@@ -95,7 +97,7 @@ internal class RoomInviteMembersPresenterTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - performs search and handles no results`() = runTest {
|
fun `present - performs search and handles empty result list`() = runTest {
|
||||||
val repository = FakeUserRepository()
|
val repository = FakeUserRepository()
|
||||||
val presenter = RoomInviteMembersPresenter(
|
val presenter = RoomInviteMembersPresenter(
|
||||||
userRepository = repository,
|
userRepository = repository,
|
||||||
@@ -106,17 +108,18 @@ internal class RoomInviteMembersPresenterTest {
|
|||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
skipItems(1)
|
|
||||||
|
|
||||||
initialState.eventSink(RoomInviteMembersEvents.UpdateSearchQuery("some query"))
|
initialState.eventSink(RoomInviteMembersEvents.UpdateSearchQuery("some query"))
|
||||||
skipItems(1)
|
|
||||||
|
|
||||||
assertThat(repository.providedQuery).isEqualTo("some query")
|
assertThat(repository.providedQuery).isEqualTo("some query")
|
||||||
repository.emitResult(UserSearchResults(results = emptyList()))
|
repository.emitResult(UserSearchResults(results = emptyList(), isFetchingSearchResults = true))
|
||||||
skipItems(1)
|
consumeItemsUntilPredicate { it.isFetchingSearchResults }.last().also { state ->
|
||||||
|
assertThat(state.searchResults).isInstanceOf(SearchBarResultState.Empty::class.java)
|
||||||
val resultState = awaitItem()
|
assertThat(state.isFetchingSearchResults).isTrue()
|
||||||
assertThat(resultState.searchResults).isInstanceOf(SearchBarResultState.NoResultsFound::class.java)
|
}
|
||||||
|
repository.emitResult(UserSearchResults(results = emptyList(), isFetchingSearchResults = false))
|
||||||
|
consumeItemsUntilPredicate { !it.isFetchingSearchResults }.last().also { state ->
|
||||||
|
assertThat(state.searchResults).isInstanceOf(SearchBarResultState.NoResultsFound::class.java)
|
||||||
|
assertThat(state.isFetchingSearchResults).isFalse()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user