func test_workflowForkCompletionOrder() {
let workflow = TestWorkflow()
let emptyObservable = Observable.just(((), ()))
_ = workflow
.onStep { _ -> Observable<((), ())> in
return emptyObservable
}
.onStep { _, _ -> Observable<((), ())> in
let forkedStep: Step<(), (), ()>? = emptyObservable.fork(workflow)
forkedStep?
.onStep { _, _ -> Observable<((), ())> in
XCTAssertEqual(0, workflow.completeCallCount)
return emptyObservable
}
.commit()
return emptyObservable
}
.onStep { _, _ -> Observable<((), ())> in
XCTAssertEqual(0, workflow.completeCallCount) // XCTAssertEqual failed: ("0") is not equal to ("1")
return emptyObservable
}
.commit()
.subscribe(())
XCTAssertEqual(1, workflow.completeCallCount)
XCTAssertEqual(1, workflow.forkCallCount)
XCTAssertEqual(0, workflow.errorCallCount)
}
Original issue: uber/RIBs#216