From 172623ea3cbf143354ab44959f0f45f16324b1ba Mon Sep 17 00:00:00 2001 From: Dmitry Boldyrev Date: Sat, 7 Apr 2018 08:34:33 +0300 Subject: [PATCH 1/3] Make sure that assumed TypeError would be thrown --- test/createStore.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/createStore.spec.js b/test/createStore.spec.js index d11e389e6e..6f9f79baae 100644 --- a/test/createStore.spec.js +++ b/test/createStore.spec.js @@ -629,11 +629,11 @@ describe('createStore', () => { expect(function() { obs.subscribe() - }).toThrow() + }).toThrowError(new TypeError('Expected the observer to be an object.')) expect(function() { obs.subscribe(() => {}) - }).toThrow() + }).toThrowError(new TypeError('Expected the observer to be an object.')) expect(function() { obs.subscribe({}) From ab93291382fc6d37355d67e96eae38e889539bb2 Mon Sep 17 00:00:00 2001 From: Dmitry Boldyrev Date: Sat, 7 Apr 2018 08:39:54 +0300 Subject: [PATCH 2/3] Check that ThrowError would be thrown in case of null observer object --- test/createStore.spec.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/createStore.spec.js b/test/createStore.spec.js index 6f9f79baae..eee7a752c9 100644 --- a/test/createStore.spec.js +++ b/test/createStore.spec.js @@ -631,6 +631,10 @@ describe('createStore', () => { obs.subscribe() }).toThrowError(new TypeError('Expected the observer to be an object.')) + expect(function() { + obs.subscribe(null) + }).toThrowError(new TypeError('Expected the observer to be an object.')) + expect(function() { obs.subscribe(() => {}) }).toThrowError(new TypeError('Expected the observer to be an object.')) From dca1ce3151099204b9c8b79101f995559e0b544f Mon Sep 17 00:00:00 2001 From: Dmitry Boldyrev Date: Sat, 7 Apr 2018 08:48:15 +0300 Subject: [PATCH 3/3] Add null check for subscribe method --- src/createStore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/createStore.js b/src/createStore.js index d4a6ad9fd3..b6a1840e22 100644 --- a/src/createStore.js +++ b/src/createStore.js @@ -234,7 +234,7 @@ export default function createStore(reducer, preloadedState, enhancer) { * emission of values from the observable. */ subscribe(observer) { - if (typeof observer !== 'object') { + if (typeof observer !== 'object' || observer === null) { throw new TypeError('Expected the observer to be an object.') }