Add xcDeferFulfillment to help with tests that have publishers. (#1278)

* Add xcAwaitDeferred to aid with tests that have publishers.

* Improve naming

* Address Comments

- Fix naming
- Add optional expectation message
- Use trailing closure syntax
This commit is contained in:
David Langley
2023-07-07 15:08:32 +01:00
committed by GitHub
parent 448db8a8e9
commit 83e27564d5
8 changed files with 92 additions and 24 deletions
@@ -87,8 +87,9 @@ class HomeScreenViewModelTests: XCTestCase {
let room: RoomProxyMock = .init(with: .init(id: mockRoomId, displayName: "Some room"))
room.leaveRoomClosure = { .failure(.failedLeavingRoom) }
clientProxy.roomForIdentifierMocks[mockRoomId] = room
let deferred = deferFulfillment(context.$viewState.first(), message: "viewState should be published.")
context.send(viewAction: .confirmLeaveRoom(roomIdentifier: mockRoomId))
await context.nextViewState()
try await deferred.fulfill()
XCTAssertNotNil(context.alertInfo)
}