From 449ab58dbdd761e47c05d10043f2d6c93a617635 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 | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/spec/Subscriber-spec.js b/spec/Subscriber-spec.js index b1f97abf03..969dc48ce9 100644 --- a/spec/Subscriber-spec.js +++ b/spec/Subscriber-spec.js @@ -7,4 +7,29 @@ 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 () { + 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); + expect(function () { + subscriber.next(2); + }).toThrow('error!'); + + expect(errorSpy).not.toHaveBeenCalled(); + expect(completeSpy).not.toHaveBeenCalled(); + }); + }); +});