diff --git a/UnitTests/Sources/RoomDetailsScreenViewModelTests.swift b/UnitTests/Sources/RoomDetailsScreenViewModelTests.swift index 3b0532257..857639211 100644 --- a/UnitTests/Sources/RoomDetailsScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomDetailsScreenViewModelTests.swift @@ -271,13 +271,15 @@ struct RoomDetailsScreenViewModelTests { #expect(context.viewState.dmRecipientInfo?.member == RoomMemberDetails(withProxy: recipient)) #expect(!context.viewState.isProcessingIgnoreRequest) - let deferredProcessing = deferFulfillment(viewModel.context.observe(\.viewState.isProcessingIgnoreRequest), - transitionValues: [true, false]) + // Waiting on the transient isProcessingIgnoreRequest transition races the view model's task, + // which can complete before the observation starts. Wait on the alert instead. + let deferredAlert = deferFulfillment(context.observe(\.alertInfo)) { $0 != nil } context.send(viewAction: .unignoreConfirmed) - try await deferredProcessing.fulfill() + try await deferredAlert.fulfill() + #expect(!context.viewState.isProcessingIgnoreRequest) #expect(context.viewState.dmRecipientInfo?.member.isIgnored == true) #expect(context.alertInfo != nil) }