From 6590c0c1dcd67c71d3e69fe4b81640036a1f0136 Mon Sep 17 00:00:00 2001 From: Thomas Conner Date: Tue, 29 May 2018 09:11:46 -0400 Subject: [PATCH] MLIBZ-2323: Don't swallow error when using observable --- src/core/datastore/cachestore.spec.js | 19 +++++++++++++++++++ src/core/observable.js | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/core/datastore/cachestore.spec.js b/src/core/datastore/cachestore.spec.js index 34841b3ea..2f9a83e47 100644 --- a/src/core/datastore/cachestore.spec.js +++ b/src/core/datastore/cachestore.spec.js @@ -109,6 +109,25 @@ describe('CacheStore', () => { }); }); + it('should throw an error if trying to access a property on undefined', (done) => { + const store = new CacheStore(collection); + const onNextSpy = expect.createSpy(); + + store.find() + .subscribe((entities) => { + return entities[0].name; + }, (error) => { + try { + expect(error).toBeA(TypeError); + done(); + } catch (e) { + done(e); + } + }, () => { + done(new Error('This test should fail.')); + }); + }); + it('should return the entities', (done) => { const entity1 = { _id: randomString() }; const entity2 = { _id: randomString() }; diff --git a/src/core/observable.js b/src/core/observable.js index 2b85a8f30..9900a6257 100644 --- a/src/core/observable.js +++ b/src/core/observable.js @@ -128,7 +128,7 @@ class SafeSubscriber extends Subscriber { try { fn.call(this._context, value); } catch (err) { - this.unsubscribe(); + this.error(err); throw err; } }