%PDF- %PDF-
Direktori : /proc/self/root/home/infra/fusioninventory/lib/lazy.js-0.5.1/spec/ |
Current File : //proc/self/root/home/infra/fusioninventory/lib/lazy.js-0.5.1/spec/async_handle_spec.js |
describe('AsyncHandle', function() { var sequence; beforeEach(function() { sequence = Lazy([1, 2, 3]).async(); }); function createHandle() { return sequence.each(Lazy.noop); } describe('then', function() { it('creates another AsyncHandle', function() { var handle = createHandle(); var next = handle.then(function() {}); expect(next).toBeInstanceOf(Lazy.AsyncHandle); expect(next).toNotBe(handle); }); }); describe('cancellation', function() { function spyOnSequence() { var spy = jasmine.createSpy(); sequence = sequence.tap(spy); return spy; } it('can cancel iteration using the provided callback', function() { var spy = spyOnSequence(); var handle = sequence .tap(function(e, i) { if (i === 1) { handle.cancel(); } }) .each(Lazy.noop); var done = jasmine.createSpy(); handle.onComplete(function() { expect(spy.callCount).toEqual(2); done(); }); waitsFor(toBeCalled(done)); }); it('passes the same cancellation function to child AsyncHandles create w/ `then`', function() { var spy = spyOnSequence(); var handle, childHandle; handle = sequence .tap(function(e, i) { if (i === 1) { childHandle.cancel(); } }) .each(Lazy.noop); childHandle = handle.then(function() { return 'foo'; }); var done = jasmine.createSpy(); childHandle.onComplete(function() { expect(spy.callCount).toEqual(2); done(); }); waitsFor(toBeCalled(done)); }); }); });