buffer.lua 1.2 KB

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