in RIBsTests/Workflow/WorkflowTests.swift [23:78]
func test_nestedStepsDoNotRepeat() {
var outerStep1RunCount = 0
var outerStep2RunCount = 0
var outerStep3RunCount = 0
var innerStep1RunCount = 0
var innerStep2RunCount = 0
var innerStep3RunCount = 0
let emptyObservable = Observable.just(((), ()))
let workflow = Workflow<String>()
_ = workflow
.onStep { (mock) -> Observable<((), ())> in
outerStep1RunCount += 1
return emptyObservable
}
.onStep { (_, _) -> Observable<((), ())> in
outerStep2RunCount += 1
return emptyObservable
}
.onStep { (_, _) -> Observable<((), ())> in
outerStep3RunCount += 1
let innerStep: Step<String, (), ()>? = emptyObservable.fork(workflow)
innerStep?
.onStep({ (_, _) -> Observable<((), ())> in
innerStep1RunCount += 1
return emptyObservable
})
.onStep({ (_, _) -> Observable<((), ())> in
innerStep2RunCount += 1
return emptyObservable
})
.onStep({ (_, _) -> Observable<((), ())> in
innerStep3RunCount += 1
return emptyObservable
})
.commit()
return emptyObservable
}
.commit()
.subscribe("Test Actionable Item")
XCTAssertEqual(outerStep1RunCount, 1, "Outer step 1 should not have been run more than once")
XCTAssertEqual(outerStep2RunCount, 1, "Outer step 2 should not have been run more than once")
XCTAssertEqual(outerStep3RunCount, 1, "Outer step 3 should not have been run more than once")
XCTAssertEqual(innerStep1RunCount, 1, "Inner step 1 should not have been run more than once")
XCTAssertEqual(innerStep2RunCount, 1, "Inner step 2 should not have been run more than once")
XCTAssertEqual(innerStep3RunCount, 1, "Inner step 3 should not have been run more than once")
}