@@ -673,17 +673,18 @@ describe('shallow', () => {
673
673
674
674
class OuterComponent extends React . Component {
675
675
render ( ) {
676
+ const { value } = this . props ;
676
677
return (
677
- < Provider value = "foo" > < InnerComponent /> </ Provider >
678
+ < Provider value = { value } > < InnerComponent /> </ Provider >
678
679
) ;
679
680
}
680
681
}
681
682
682
683
class WrappingComponent extends React . Component {
683
684
render ( ) {
684
- const { children } = this . props ;
685
+ const { children, value } = this . props ;
685
686
return (
686
- < Provider value = "foo" > { children } </ Provider >
687
+ < Provider value = { value } > { children } </ Provider >
687
688
) ;
688
689
}
689
690
}
@@ -696,16 +697,45 @@ describe('shallow', () => {
696
697
697
698
InnerComponent . contextType = Provider ;
698
699
699
- it ( 'works on a Provider' , ( ) => {
700
- const wrapper = shallow ( < OuterComponent /> ) ;
701
- const provides = wrapper . find ( Provider ) . shallow ( ) ;
702
- const provider = provides . find ( InnerComponent ) . shallow ( ) ;
703
- expect ( provider . text ( ) ) . to . equal ( 'foo' ) ;
700
+ describe ( 'rendering the Provider directly' , ( ) => {
701
+ it ( 'renders initial context value' , ( ) => {
702
+ const wrapper = shallow ( < OuterComponent value = "foo" /> ) ;
703
+ const provides = wrapper . find ( Provider ) . shallow ( ) ;
704
+ const provider = provides . find ( InnerComponent ) . shallow ( ) ;
705
+
706
+ expect ( provider . text ( ) ) . to . equal ( 'foo' ) ;
707
+ } ) ;
708
+
709
+ it ( 'renders updated context value' , ( ) => {
710
+ const wrapper = shallow ( < OuterComponent value = "foo" /> ) ;
711
+ wrapper . setProps ( { value : 'bar' } ) ;
712
+ const provides = wrapper . find ( Provider ) . shallow ( ) ;
713
+ const provider = provides . find ( InnerComponent ) . shallow ( ) ;
714
+
715
+ expect ( provider . text ( ) ) . to . equal ( 'bar' ) ;
716
+ } ) ;
704
717
} ) ;
705
718
706
- it ( 'works with wrappingComponent' , ( ) => {
707
- const wrapper = shallow ( < InnerComponent /> , { wrappingComponent : WrappingComponent } ) ;
708
- expect ( wrapper . text ( ) ) . to . equal ( 'foo' ) ;
719
+ describe ( 'rendereing the Provider through wrappingComponent' , ( ) => {
720
+ it ( 'renders initial context value' , ( ) => {
721
+ const wrapper = shallow ( < InnerComponent /> , {
722
+ wrappingComponent : WrappingComponent ,
723
+ wrappingComponentProps : { value : 'foo' } ,
724
+ } ) ;
725
+
726
+ expect ( wrapper . text ( ) ) . to . equal ( 'foo' ) ;
727
+ } ) ;
728
+
729
+ it ( 'renders updated context value' , ( ) => {
730
+ const wrapper = shallow ( < InnerComponent /> , {
731
+ wrappingComponent : WrappingComponent ,
732
+ wrappingComponentProps : { value : 'foo' } ,
733
+ } ) ;
734
+ const wrappingComponent = wrapper . getWrappingComponent ( ) ;
735
+ wrappingComponent . setProps ( { value : 'bar' } ) ;
736
+ wrapper . update ( ) ;
737
+ expect ( wrapper . text ( ) ) . to . equal ( 'bar' ) ;
738
+ } ) ;
709
739
} ) ;
710
740
} ) ;
711
741
} ) ;
0 commit comments