describe('tap', function() it('does not create a subscription', function() local observable = Rx.Observable.create(error) expect(observable.tap).to_not.fail() end) it('runs the specified onNext function', function() local onNext = spy() local observable = Rx.Observable.create(function(observer) observer:onNext(1) observer:onComplete() end):tap(onNext):subscribe() expect(onNext).to.equal({{1}}) end) it('runs the specified onError function', function() local onError = spy() local observable = Rx.Observable.create(function(observer) observer:onError('message') end):tap(_, onError):subscribe(_, function() end) expect(onError).to.equal({{'message'}}) end) it('runs the specified onComplete function', function() local onComplete = spy() local observable = Rx.Observable.create(function(observer) observer:onComplete() end):tap(_, _, onComplete):subscribe() expect(#onComplete).to.equal(1) end) end)