@@ -604,4 +604,52 @@ describe( 'createRegistry', () => {
604
604
expect ( registry . select ( ) ) . toBe ( 10 ) ;
605
605
} ) ;
606
606
} ) ;
607
+
608
+ describe ( 'parent registry' , ( ) => {
609
+ it ( 'should call parent registry selectors/actions if defined' , ( ) => {
610
+ const mySelector = jest . fn ( ) ;
611
+ const myAction = jest . fn ( ) ;
612
+ const getSelectors = ( ) => ( { mySelector } ) ;
613
+ const getActions = ( ) => ( { myAction } ) ;
614
+ const subscribe = ( ) => { } ;
615
+ registry . registerGenericStore ( 'store' , { getSelectors, getActions, subscribe } ) ;
616
+ const subRegistry = createRegistry ( { } , registry ) ;
617
+
618
+ subRegistry . select ( 'store' ) . mySelector ( ) ;
619
+ subRegistry . dispatch ( 'store' ) . myAction ( ) ;
620
+
621
+ expect ( mySelector ) . toHaveBeenCalled ( ) ;
622
+ expect ( myAction ) . toHaveBeenCalled ( ) ;
623
+ } ) ;
624
+
625
+ it ( 'should override existing store in parent registry' , ( ) => {
626
+ const mySelector = jest . fn ( ) ;
627
+ const myAction = jest . fn ( ) ;
628
+ const getSelectors = ( ) => ( { mySelector } ) ;
629
+ const getActions = ( ) => ( { myAction } ) ;
630
+ const subscribe = ( ) => { } ;
631
+ registry . registerGenericStore ( 'store' , { getSelectors, getActions, subscribe } ) ;
632
+
633
+ const subRegistry = createRegistry ( { } , registry ) ;
634
+ const mySelector2 = jest . fn ( ) ;
635
+ const myAction2 = jest . fn ( ) ;
636
+ const getSelectors2 = ( ) => ( { mySelector : mySelector2 } ) ;
637
+ const getActions2 = ( ) => ( { myAction : myAction2 } ) ;
638
+ const subscribe2 = ( ) => { } ;
639
+ subRegistry . registerGenericStore ( 'store' , {
640
+ getSelectors : getSelectors2 ,
641
+ getActions : getActions2 ,
642
+ subscribe : subscribe2 ,
643
+ } ) ;
644
+
645
+ subRegistry . select ( 'store' ) . mySelector ( ) ;
646
+ subRegistry . dispatch ( 'store' ) . myAction ( ) ;
647
+
648
+ expect ( mySelector ) . not . toHaveBeenCalled ( ) ;
649
+ expect ( myAction ) . not . toHaveBeenCalled ( ) ;
650
+
651
+ expect ( mySelector2 ) . toHaveBeenCalled ( ) ;
652
+ expect ( myAction2 ) . toHaveBeenCalled ( ) ;
653
+ } ) ;
654
+ } ) ;
607
655
} ) ;
0 commit comments