func test_observableConfinedToInteractorOnlyEmitsValueWhenInteractorIsActive()

in RIBsTests/Interactor/InteractorTests.swift [152:170]


    func test_observableConfinedToInteractorOnlyEmitsValueWhenInteractorIsActive() {
        // given
        var emittedValue: Int?
        let subjectEmiitingValues: PublishSubject<Int> = .init()
        let confinedObservable = subjectEmiitingValues.asObservable().confineTo(interactor)
        let _ = confinedObservable.confineTo(interactor)
        let _ = confinedObservable.subscribe { newValue in
            emittedValue = newValue
        }

        subjectEmiitingValues.onNext(1)
        XCTAssertNil(emittedValue)
        // when
        interactor.activate()
        subjectEmiitingValues.onNext(2)
        // then
        XCTAssertNotNil(emittedValue)
        XCTAssertEqual(emittedValue, 2)
    }