Room List Filters implementation (#2423)

This commit is contained in:
Mauro
2024-02-08 16:50:44 +01:00
committed by GitHub
parent e1d1e99ad4
commit 224e4e4881
18 changed files with 292 additions and 128 deletions
@@ -25,10 +25,13 @@ class HomeScreenViewModelTests: XCTestCase {
var clientProxy: MockClientProxy!
var context: HomeScreenViewModelType.Context! { viewModel.context }
var cancellables = Set<AnyCancellable>()
var roomSummaryProvider: MockRoomSummaryProvider!
override func setUpWithError() throws {
ServiceLocator.shared.settings.roomListFiltersEnabled = true
cancellables.removeAll()
clientProxy = MockClientProxy(userID: "@mock:client.com")
roomSummaryProvider = MockRoomSummaryProvider(state: .loaded(.mockRooms))
clientProxy = MockClientProxy(userID: "@mock:client.com", roomSummaryProvider: roomSummaryProvider)
viewModel = HomeScreenViewModel(userSession: MockUserSession(clientProxy: clientProxy,
mediaProvider: MockMediaProvider(),
voiceMessageMediaManager: VoiceMessageMediaManagerMock()),
@@ -37,6 +40,10 @@ class HomeScreenViewModelTests: XCTestCase {
userIndicatorController: ServiceLocator.shared.userIndicatorController)
}
override func tearDown() {
AppSettings.reset()
}
func testSelectRoom() async throws {
let mockRoomId = "mock_room_id"
var correctResult = false
@@ -153,4 +160,14 @@ class HomeScreenViewModelTests: XCTestCase {
XCTAssertNil(context.alertInfo)
XCTAssertTrue(correctResult)
}
func testFilters() async throws {
context.viewState.filtersState.activateFilter(.people)
try await Task.sleep(for: .milliseconds(100))
XCTAssertEqual(roomSummaryProvider.currentFilter, RoomSummaryProviderFilter.include(.init(filters: [.people])))
context.isSearchFieldFocused = true
context.searchQuery = "Test"
try await Task.sleep(for: .milliseconds(100))
XCTAssertEqual(roomSummaryProvider.currentFilter, RoomSummaryProviderFilter.include(.init(query: "Test", filters: [.people])))
}
}