buffer.lua 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. describe('buffer', function()
  2. it('produces an error if its parent errors', function()
  3. local _, onError = observableSpy(Rx.Observable.throw():buffer())
  4. expect(#onError).to.equal(1)
  5. end)
  6. it('fails if size is not specified', function()
  7. expect(Rx.Observable.fromRange(5):buffer().subscribe).to.fail()
  8. end)
  9. it('produces values wrapped to the specified width', function()
  10. local observable = Rx.Observable.create(function(observer)
  11. observer:onNext(1)
  12. observer:onNext(2, 3)
  13. observer:onNext(4, 5, 6)
  14. observer:onCompleted()
  15. end)
  16. expect(observable).to.produce({{1}, {2, 3}, {4, 5, 6}})
  17. expect(observable:buffer(2)).to.produce({{1, 2}, {3, 4}, {5, 6}})
  18. end)
  19. it('produces a partial buffer if the observable completes', function()
  20. local observable = Rx.Observable.fromRange(5)
  21. expect(observable:buffer(2)).to.produce({{1, 2}, {3, 4}, {5}})
  22. end)
  23. it('produces a partial buffer if the observable errors', function()
  24. local observable = Rx.Observable.create(function(observer)
  25. observer:onNext(1)
  26. observer:onNext(2)
  27. observer:onNext(3)
  28. observer:onError('oops')
  29. end)
  30. local onNext, onError = observableSpy(observable:buffer(2))
  31. expect(onNext).to.equal({{1, 2}, {3}})
  32. expect(#onError).to.equal(1)
  33. end)
  34. end)