Skip to content

Commit f74b4ba

Browse files
committed
test for pull request #123: when the store's action handler throws, the error has to be logged (and hence the console group will be closed correctly)
1 parent c69f1c7 commit f74b4ba

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

tests/reactor-tests.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var List = require('immutable').List
44
var Reactor = require('../src/main').Reactor
55
var Store = require('../src/main').Store
66
var toImmutable = require('../src/immutable-helpers').toImmutable
7+
var logging = require('../src/logging')
78

89

910
describe('Reactor', () => {
@@ -451,6 +452,40 @@ describe('Reactor', () => {
451452
})
452453
})
453454

455+
describe('when debug is true and a store has a handler for an action but throws', () => {
456+
var reactor
457+
458+
beforeEach(() => {
459+
spyOn(logging, 'dispatchError')
460+
var throwingStore = new Store({
461+
getInitialState() {
462+
return 1
463+
},
464+
initialize() {
465+
this.on('set', (_, val) => {throw new Error('Error during action handling')})
466+
},
467+
})
468+
469+
reactor = new Reactor({
470+
debug: true,
471+
})
472+
reactor.registerStores({
473+
test: throwingStore,
474+
})
475+
})
476+
477+
afterEach(() => {
478+
reactor.reset()
479+
})
480+
481+
it('should log and throw an error', function() {
482+
expect(function() {
483+
reactor.dispatch('set', 'foo')
484+
}).toThrow()
485+
expect(logging.dispatchError).toHaveBeenCalled()
486+
})
487+
})
488+
454489
describe('#registerStores', () => {
455490
var reactor
456491

0 commit comments

Comments
 (0)