From e7c5ecf6fc4d1a5a1083bf0c16ee1f461f997953 Mon Sep 17 00:00:00 2001 From: Andre Staltz Date: Wed, 13 Jan 2016 16:36:19 +0200 Subject: [PATCH] test(Subscriber): add test for no error propagation Add test to assert that error happening in the next() handler should not propagate to the error() handler. For issue #1135. --- spec/Subscriber-spec.js | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/spec/Subscriber-spec.js b/spec/Subscriber-spec.js index b1f97abf03..cc3e5e5f9c 100644 --- a/spec/Subscriber-spec.js +++ b/spec/Subscriber-spec.js @@ -7,4 +7,34 @@ describe('Subscriber', function () { var sub = new Subscriber(); expect(sub[Rx.Symbol.rxSubscriber]()).toBe(sub); }); -}); \ No newline at end of file + + describe('when created through create()', function () { + it('should not call error() if next() handler throws an error', function (done) { + var errorSpy = jasmine.createSpy('error'); + var completeSpy = jasmine.createSpy('complete'); + + var subscriber = Subscriber.create( + function next(value) { + if (value === 2) { + throw 'error!'; + } + }, + errorSpy, + completeSpy + ); + + subscriber.next(1); + try { + subscriber.next(2); + } catch (err) { + expect(err).toEqual('error!'); + } + + setTimeout(function () { + expect(errorSpy).not.toHaveBeenCalled(); + expect(completeSpy).not.toHaveBeenCalled(); + done(); + }); + }); + }); +});