@@ -705,4 +705,45 @@ describe('TreeSelect.basic', () => {
705
705
expect ( itemTitle ) . toHaveStyle ( customStyles . itemTitle ) ;
706
706
expect ( item ) . toHaveStyle ( customStyles . item ) ;
707
707
} ) ;
708
+
709
+ it ( 'labelRender' , ( ) => {
710
+ const onLabelRender = jest . fn ( ) ;
711
+ const labelRender = props => {
712
+ const { label, value } = props ;
713
+ onLabelRender ( ) ;
714
+ return `${ label } -${ value } ` ;
715
+ } ;
716
+ const { container } = render (
717
+ < TreeSelect
718
+ treeData = { [ { label : 'realLabel' , value : 'a' } ] }
719
+ value = "a"
720
+ labelRender = { labelRender }
721
+ /> ,
722
+ ) ;
723
+
724
+ expect ( onLabelRender ) . toHaveBeenCalled ( ) ;
725
+ expect ( container . querySelector ( '.rc-tree-select-selector' ) . textContent ) . toEqual ( 'realLabel-a' ) ;
726
+ } ) ;
727
+
728
+ it ( 'labelRender when value is not in treeData' , ( ) => {
729
+ const onLabelRender = jest . fn ( ) ;
730
+ const treeData = [ { label : 'realLabel' , value : 'b' } ] ;
731
+ const labelRender = props => {
732
+ const { label, value } = props ;
733
+ // current value is in treeData
734
+ if ( treeData . find ( item => item . value === value ) ) {
735
+ return label ;
736
+ } else {
737
+ // current value is not in treeData
738
+ onLabelRender ( ) ;
739
+ return `${ label || 'fakeLabel' } -${ value } ` ;
740
+ }
741
+ } ;
742
+ const { container } = render (
743
+ < TreeSelect value = "a" labelRender = { labelRender } treeData = { treeData } /> ,
744
+ ) ;
745
+
746
+ expect ( onLabelRender ) . toHaveBeenCalled ( ) ;
747
+ expect ( container . querySelector ( '.rc-tree-select-selector' ) . textContent ) . toEqual ( 'fakeLabel-a' ) ;
748
+ } ) ;
708
749
} ) ;
0 commit comments