tap.lua 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. describe('tap', function()
  2. it('does not create a subscription', function()
  3. local observable = Rx.Observable.create(error)
  4. expect(observable.tap).to_not.fail()
  5. end)
  6. it('runs the specified onNext function', function()
  7. local onNext = spy()
  8. local observable = Rx.Observable.create(function(observer)
  9. observer:onNext(1)
  10. observer:onCompleted()
  11. end):tap(onNext):subscribe()
  12. expect(onNext).to.equal({{1}})
  13. end)
  14. it('calls onError if the onNext callback errors', function()
  15. expect(Rx.Observable.of(1):tap(error)).to.produce.error()
  16. end)
  17. it('runs the specified onError function', function()
  18. local onError = spy()
  19. local observable = Rx.Observable.create(function(observer)
  20. observer:onError('message')
  21. end):tap(_, onError):subscribe(_, function() end)
  22. expect(onError).to.equal({{'message'}})
  23. end)
  24. it('calls onError if the onError callback errors', function()
  25. expect(Rx.Observable.throw():tap(nil, error)).to.produce.error()
  26. end)
  27. it('runs the specified onCompleted function', function()
  28. local onCompleted = spy()
  29. local observable = Rx.Observable.create(function(observer)
  30. observer:onCompleted()
  31. end):tap(_, _, onCompleted):subscribe()
  32. expect(#onCompleted).to.equal(1)
  33. end)
  34. it('calls onError if the onCompleted callback errors', function()
  35. expect(Rx.Observable.of(1):tap(nil, nil, error)).to.produce.error()
  36. end)
  37. end)