@@ -396,6 +396,61 @@ describe('Reactor', () => {
396
396
397
397
expect ( mockFn . calls . count ( ) ) . toEqual ( 0 )
398
398
} )
399
+
400
+ it ( 'should trigger an observer for a late registered store' , ( ) => {
401
+ var mockFn = jasmine . createSpy ( )
402
+ var reactor = new Reactor ( )
403
+ reactor . observe ( [ 'test' ] , mockFn )
404
+
405
+ expect ( mockFn . calls . count ( ) ) . toEqual ( 0 )
406
+
407
+ reactor . registerStores ( {
408
+ test : Store ( {
409
+ getInitialState ( ) {
410
+ return 1
411
+ }
412
+ } )
413
+ } )
414
+
415
+ expect ( mockFn . calls . count ( ) ) . toEqual ( 1 )
416
+ expect ( mockFn . calls . argsFor ( 0 ) ) . toEqual ( [ 1 ] )
417
+ } )
418
+
419
+ it ( 'should trigger an observer for a late registered store for the identity getter' , ( ) => {
420
+ var mockFn = jasmine . createSpy ( )
421
+ var reactor = new Reactor ( )
422
+ reactor . observe ( [ ] , mockFn )
423
+
424
+ expect ( mockFn . calls . count ( ) ) . toEqual ( 0 )
425
+
426
+ reactor . registerStores ( {
427
+ test : Store ( {
428
+ getInitialState ( ) {
429
+ return 1
430
+ } ,
431
+ initialize ( ) {
432
+ this . on ( 'increment' , ( state ) => state + 1 )
433
+ }
434
+ } )
435
+ } )
436
+
437
+ // it should call the observer after the store has been registered
438
+ expect ( mockFn . calls . count ( ) ) . toEqual ( 1 )
439
+ var observedValue = mockFn . calls . argsFor ( 0 ) [ 0 ]
440
+ var expectedHandlerValue = Map ( {
441
+ test : 1
442
+ } )
443
+ expect ( is ( observedValue , expectedHandlerValue ) ) . toBe ( true )
444
+
445
+ // it should call the observer again when the store handles an action
446
+ reactor . dispatch ( 'increment' )
447
+ expect ( mockFn . calls . count ( ) ) . toEqual ( 2 )
448
+ var observedValue = mockFn . calls . argsFor ( 1 ) [ 0 ]
449
+ var expectedHandlerValue = Map ( {
450
+ test : 2
451
+ } )
452
+ expect ( is ( observedValue , expectedHandlerValue ) ) . toBe ( true )
453
+ } )
399
454
} )
400
455
401
456
describe ( '#unobserve' , ( ) => {
0 commit comments