it("should be true when both email and password are valid") {
let xs1 = scheduler.createHotObservable([
Recorded.next(10, "a"),
Recorded.next(30, "
[email protected]"),
Recorded.next(50, "a")
])
let xs2 = scheduler.createHotObservable([
Recorded.next(20, "p"),
Recorded.next(40, "passw0rd"),
Recorded.next(60, "p")
])
xs1.bind(to: loginViewModel.email).disposed(by: disposeBag)
xs2.bind(to: loginViewModel.password).disposed(by: disposeBag)
let observer = scheduler.createObserver(Bool.self)
loginViewModel.isValidForm.drive(observer).disposed(by: disposeBag)
scheduler.start()
expect(observer.events).to(equal([
Recorded.next(0, false),
Recorded.next(10, false),
Recorded.next(20, false),
Recorded.next(30, false),
Recorded.next(40, true),
Recorded.next(50, false),
Recorded.next(60, false)
]))
}