deferFulfillment all the things (#1306)

This commit is contained in:
David Langley
2023-07-12 18:59:46 +01:00
committed by GitHub
parent af699d9a68
commit 3ff257c075
6 changed files with 101 additions and 82 deletions
+20 -19
View File
@@ -71,17 +71,17 @@ class BugReportViewModelTests: XCTestCase {
deviceID: nil,
screenshot: nil, isModallyPresented: false)
let context = viewModel.context
let deferred = deferFulfillment(viewModel.actions.collect(2).first())
context.send(viewAction: .submit)
let actions = try await deferred.fulfill()
_ = await viewModel
.actions
.values
.first {
guard case .submitFinished = $0 else {
return false
}
return true
}
guard case .submitStarted = actions[0] else {
return XCTFail("Action 1 was not .submitFailed")
}
guard case .submitFinished = actions[1] else {
return XCTFail("Action 2 was not .submitFinished")
}
XCTAssert(mockService.submitBugReportProgressListenerCallsCount == 1)
XCTAssert(mockService.submitBugReportProgressListenerReceivedArguments?.bugReport == BugReport(userID: "@mock.client.com", deviceID: nil, text: "", includeLogs: true, includeCrashLog: true, canContact: false, githubLabels: [], files: []))
@@ -96,19 +96,20 @@ class BugReportViewModelTests: XCTestCase {
userID: "@mock.client.com",
deviceID: nil,
screenshot: nil, isModallyPresented: false)
let deferred = deferFulfillment(viewModel.actions.collect(2).first())
let context = viewModel.context
context.send(viewAction: .submit)
_ = await viewModel
.actions
.values
.first {
guard case .submitFailed = $0 else {
return false
}
return true
}
let actions = try await deferred.fulfill()
guard case .submitStarted = actions[0] else {
return XCTFail("Action 1 was not .submitFailed")
}
guard case .submitFailed = actions[1] else {
return XCTFail("Action 2 was not .submitFailed")
}
XCTAssert(mockService.submitBugReportProgressListenerCallsCount == 1)
XCTAssert(mockService.submitBugReportProgressListenerReceivedArguments?.bugReport == BugReport(userID: "@mock.client.com", deviceID: nil, text: "", includeLogs: true, includeCrashLog: true, canContact: false, githubLabels: [], files: []))
}