map.lua 1.0 KB

12345678910111213141516171819202122232425
  1. describe('map', function()
  2. it('produces an error if its parent errors', function()
  3. local observable = Rx.Observable.throw():map(function(x) return x end)
  4. expect(observable.subscribe).to.fail()
  5. expect(observable:map().subscribe).to.fail()
  6. end)
  7. it('uses the identity function as the callback if none is specified', function()
  8. local observable = Rx.Observable.fromRange(5):map()
  9. expect(observable).to.produce(1, 2, 3, 4, 5)
  10. end)
  11. it('passes all arguments to the predicate and produces all of its return values', function()
  12. local callback = spy(function() return 1, 2, 3 end)
  13. local observable = Rx.Observable.fromTable({3, 2, 1}, ipairs, true):map(callback)
  14. expect(observable).to.produce({{1, 2, 3}, {1, 2, 3}, {1, 2, 3}})
  15. expect(callback).to.equal({{3, 1}, {2, 2}, {1, 3}})
  16. end)
  17. it('calls onError if the callback errors', function()
  18. local onError = spy()
  19. Rx.Observable.fromRange(3):map(error):subscribe(nil, onError, nil)
  20. expect(#onError).to.equal(1)
  21. end)
  22. end)