zip.lua 952 B

123456789101112131415161718192021222324
  1. describe('zip', function()
  2. it('behaves as an identity function if only one Observable argument is specified', function()
  3. expect(Rx.Observable.fromRange(1, 5):zip()).to.produce(1, 2, 3, 4, 5)
  4. end)
  5. it('groups values produced by the sources by their index', function()
  6. local observableA = Rx.Observable.fromRange(1, 3)
  7. local observableB = Rx.Observable.fromRange(2, 4)
  8. local observableC = Rx.Observable.fromRange(3, 5)
  9. expect(Rx.Observable.zip(observableA, observableB, observableC)).to.produce({{1, 2, 3}, {2, 3, 4}, {3, 4, 5}})
  10. end)
  11. it('tolerates nils', function()
  12. local observableA = Rx.Observable.create(function(observer)
  13. observer:onNext(nil)
  14. observer:onNext(nil)
  15. observer:onNext(nil)
  16. observer:onCompleted()
  17. end)
  18. local observableB = Rx.Observable.fromRange(3)
  19. local onNext = observableSpy(Rx.Observable.zip(observableA, observableB))
  20. expect(#onNext).to.equal(3)
  21. end)
  22. end)