RoomInviteMembers : add small tests
This commit is contained in:
parent
60d015596f
commit
4e06ccd610
2 changed files with 24 additions and 10 deletions
|
|
@ -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,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue