tap.lua 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. local onNext = spy()
  16. local onError = spy()
  17. local observer = Rx.Observer.create(onNext, onError)
  18. Rx.Observable.of(1):tap(error):subscribe(observer)
  19. expect(#onNext).to.equal(0)
  20. expect(#onError).to.equal(1)
  21. end)
  22. it('runs the specified onError function', function()
  23. local onError = spy()
  24. local observable = Rx.Observable.create(function(observer)
  25. observer:onError('message')
  26. end):tap(_, onError):subscribe(_, function() end)
  27. expect(onError).to.equal({{'message'}})
  28. end)
  29. it('calls onError if the onError callback errors', function()
  30. local onError = spy()
  31. Rx.Observable.throw():tap(nil, error):subscribe(nil, onError, nil)
  32. expect(#onError).to.equal(1)
  33. end)
  34. it('runs the specified onCompleted function', function()
  35. local onCompleted = spy()
  36. local observable = Rx.Observable.create(function(observer)
  37. observer:onCompleted()
  38. end):tap(_, _, onCompleted):subscribe()
  39. expect(#onCompleted).to.equal(1)
  40. end)
  41. it('calls onError if the onCompleted callback errors', function()
  42. local onError = spy()
  43. local onCompleted = spy()
  44. Rx.Observable.of(1):tap(nil, nil, error):subscribe(nil, onError, onCompleted)
  45. expect(#onCompleted).to.equal(0)
  46. expect(#onError).to.equal(1)
  47. end)
  48. end)