123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- describe('Observer', function()
- describe('.create', function()
- it('returns an Observer', function()
- expect(Rx.Observer.create()).to.be.an(Rx.Observer)
- end)
- it('assigns onNext, onError, and onComplete', function()
- local function onNext() end
- local function onError() end
- local function onComplete() end
- local observer = Rx.Observer.create(onNext, onError, onComplete)
- expect(observer._onNext).to.equal(onNext)
- expect(observer._onError).to.equal(onError)
- expect(observer._onComplete).to.equal(onComplete)
- end)
- it('initializes stopped to false', function()
- expect(Rx.Observer.create().stopped).to.equal(false)
- end)
- end)
- describe('.onNext', function()
- it('calls _onNext', function()
- local observer = Rx.Observer.create()
- local function run() observer:onNext() end
- local calls = spy(observer, '_onNext', run)
- expect(#calls).to.equal(1)
- end)
- it('passes all arguments to _onNext', function()
- local observer = Rx.Observer.create()
- local function run() observer:onNext(1, '2', 3, nil, 5) end
- local calls = spy(observer, '_onNext', run)
- expect(calls).to.equal({{1, '2', 3, nil, 5}})
- end)
- it('does not call _onNext if onComplete has been called', function()
- local observer = Rx.Observer.create()
- local function run()
- observer:onComplete()
- observer:onNext()
- end
- expect(#spy(observer, '_onNext', run)).to.equal(0)
- end)
- it('does not call _onNext if onError has been called', function()
- local observer = Rx.Observer.create(_, function() end, _)
- local function run()
- observer:onError()
- observer:onNext()
- end
- expect(#spy(observer, '_onNext', run)).to.equal(0)
- end)
- end)
- end)
|