mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Fix flakiness for tests that rely on room members loading quickly.
This commit is contained in:
committed by
Stefan Ceriu
parent
7615e97c7f
commit
f5c43ed68f
@@ -110,6 +110,8 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
|
||||
}
|
||||
|
||||
buildTimelineViews()
|
||||
|
||||
updateMembers(roomProxy.membersPublisher.value)
|
||||
|
||||
// Note: beware if we get to e.g. restore a reply / edit,
|
||||
// maybe we are tracking a non-needed first initial state
|
||||
@@ -269,7 +271,13 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
|
||||
Task { await roomScreenInteractionHandler.scrubVoiceMessagePlayback(scrubbing: scrubbing) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private func updateMembers(_ members: [RoomMemberProxyProtocol]) {
|
||||
state.members = members.reduce(into: [String: RoomMemberState]()) { dictionary, member in
|
||||
dictionary[member.userID] = RoomMemberState(displayName: member.displayName, avatarURL: member.avatarURL)
|
||||
}
|
||||
}
|
||||
|
||||
private func setupSubscriptions() {
|
||||
timelineController.callbacks
|
||||
.receive(on: DispatchQueue.main)
|
||||
@@ -318,15 +326,10 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
|
||||
appSettings.$sharePresence
|
||||
.weakAssign(to: \.state.showReadReceipts, on: self)
|
||||
.store(in: &cancellables)
|
||||
|
||||
|
||||
roomProxy.membersPublisher
|
||||
.map { members in
|
||||
members.reduce(into: [String: RoomMemberState]()) { dictionary, member in
|
||||
dictionary[member.userID] = RoomMemberState(displayName: member.displayName, avatarURL: member.avatarURL)
|
||||
}
|
||||
}
|
||||
.receive(on: DispatchQueue.main)
|
||||
.weakAssign(to: \.state.members, on: self)
|
||||
.sink { [weak self] in self?.updateMembers($0) }
|
||||
.store(in: &cancellables)
|
||||
|
||||
roomProxy.typingMembersPublisher
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:15512881ca14cf2eae9556c280880243cc619817f87e27ed05887c07e8f21329
|
||||
size 112214
|
||||
oid sha256:8f7b0844007df5ea840a959b85171d3c256cf091a69972a1f7f30c0c2280958e
|
||||
size 125301
|
||||
|
||||
@@ -128,7 +128,7 @@ class RoomMembersListScreenViewModelTests: XCTestCase {
|
||||
|
||||
func testKickMember() async throws {
|
||||
setup(with: .allMembers)
|
||||
var deferred = deferFulfillment(context.$viewState) { !$0.visibleJoinedMembers.isEmpty }
|
||||
let deferred = deferFulfillment(context.$viewState) { !$0.visibleJoinedMembers.isEmpty }
|
||||
try await deferred.fulfill()
|
||||
|
||||
context.send(viewAction: .kickMember(viewModel.state.visibleJoinedMembers[0]))
|
||||
@@ -141,7 +141,7 @@ class RoomMembersListScreenViewModelTests: XCTestCase {
|
||||
|
||||
func testBanMember() async throws {
|
||||
setup(with: .allMembers)
|
||||
var deferred = deferFulfillment(context.$viewState) { !$0.visibleJoinedMembers.isEmpty }
|
||||
let deferred = deferFulfillment(context.$viewState) { !$0.visibleJoinedMembers.isEmpty }
|
||||
try await deferred.fulfill()
|
||||
|
||||
context.send(viewAction: .banMember(viewModel.state.visibleJoinedMembers[0]))
|
||||
@@ -154,7 +154,7 @@ class RoomMembersListScreenViewModelTests: XCTestCase {
|
||||
|
||||
func testUnbanMember() async throws {
|
||||
setup(with: .allMembers)
|
||||
var deferred = deferFulfillment(context.$viewState) { !$0.visibleJoinedMembers.isEmpty }
|
||||
let deferred = deferFulfillment(context.$viewState) { !$0.visibleJoinedMembers.isEmpty }
|
||||
try await deferred.fulfill()
|
||||
|
||||
context.send(viewAction: .unbanMember(viewModel.state.visibleJoinedMembers[0]))
|
||||
|
||||
Reference in New Issue
Block a user