describe('compact', function() it('produces an error if its parent errors', function() local observable = Rx.Observable.fromValue(''):map(function(x) return x() end) expect(observable.subscribe).to.fail() expect(observable:compact().subscribe).to.fail() end) it('does not produce values that are false or nil', function() local observable = Rx.Observable.create(function(observer) observer:onNext(nil) observer:onNext(true) observer:onNext(false) observer:onNext('') observer:onNext(0) observer:onCompleted() end) expect(observable:compact()).to.produce(true, '', 0) end) end)