MatrixUserRepo : fix tests

This commit is contained in:
ganfra 2024-01-05 13:44:59 +01:00
parent c6b3387b62
commit 109aea5ede
6 changed files with 45 additions and 30 deletions

View file

@ -24,6 +24,7 @@ import io.element.android.libraries.designsystem.theme.components.SearchBarResul
import io.element.android.libraries.matrix.ui.components.aMatrixUser
import io.element.android.libraries.matrix.ui.components.aMatrixUserList
import io.element.android.libraries.usersearch.api.UserSearchResult
import io.element.android.libraries.usersearch.api.UserSearchResults
import io.element.android.libraries.usersearch.test.FakeUserRepository
import io.element.android.tests.testutils.WarmUpRule
import kotlinx.collections.immutable.persistentListOf
@ -136,20 +137,33 @@ class DefaultUserListPresenterTests {
skipItems(2)
// When the user repository emits a result, it's copied to the state
userRepository.emitResult(listOf(UserSearchResult(aMatrixUser())))
assertThat(awaitItem().searchResults).isEqualTo(
SearchBarResultState.Results(
persistentListOf(UserSearchResult(aMatrixUser()))
)
val result = UserSearchResults(
results = listOf(UserSearchResult(aMatrixUser())),
isFetchingSearchResults = false,
)
userRepository.emitResult(result)
awaitItem().also { state ->
assertThat(state.searchResults).isEqualTo(
SearchBarResultState.Results(
persistentListOf(UserSearchResult(aMatrixUser()))
)
)
assertThat(state.isFetchingSearchResults).isFalse()
}
// When the user repository emits another result, it replaces the previous value
userRepository.emitResult(aMatrixUserList().map { UserSearchResult(it) })
assertThat(awaitItem().searchResults).isEqualTo(
SearchBarResultState.Results(
aMatrixUserList().map { UserSearchResult(it) }
)
val newResult = UserSearchResults(
results = aMatrixUserList().map { UserSearchResult(it) },
isFetchingSearchResults = false,
)
userRepository.emitResult(newResult)
awaitItem().also { state ->
assertThat(state.searchResults).isEqualTo(
SearchBarResultState.Results(
aMatrixUserList().map { UserSearchResult(it) }
)
)
assertThat(state.isFetchingSearchResults).isFalse()
}
}
}
@ -175,7 +189,7 @@ class DefaultUserListPresenterTests {
skipItems(2)
// When the results list is empty, the state is set to NoResults
userRepository.emitResult(emptyList())
userRepository.emitResult(UserSearchResults(results = emptyList(), isFetchingSearchResults = false))
assertThat(awaitItem().searchResults).isInstanceOf(SearchBarResultState.NoResultsFound::class.java)
}
}