@@ -468,6 +468,67 @@ describe('TreeSelect.basic', () => {
468
468
keyDown ( KeyCode . ENTER ) ;
469
469
expect ( onChange ) . not . toHaveBeenCalled ( ) ;
470
470
} ) ;
471
+
472
+ it ( 'active index matches value' , ( ) => {
473
+ const wrapper = mount (
474
+ < TreeSelect
475
+ value = { [ '10' ] }
476
+ treeDefaultExpandAll
477
+ treeData = { [
478
+ { key : '0' , value : '0' , title : '0 label' } ,
479
+ {
480
+ key : '1' ,
481
+ value : '1' ,
482
+ title : '1 label' ,
483
+ children : [
484
+ { key : '10' , value : '10' , title : '10 label' } ,
485
+ { key : '11' , value : '11' , title : '11 label' } ,
486
+ ] ,
487
+ } ,
488
+ ] }
489
+ /> ,
490
+ ) ;
491
+ wrapper . openSelect ( ) ;
492
+ expect ( wrapper . find ( '.rc-tree-select-tree-treenode-active' ) . text ( ) ) . toBe ( '10 label' ) ;
493
+ } ) ;
494
+
495
+ it ( 'active index updates correctly with key operation' , ( ) => {
496
+ const wrapper = mount (
497
+ < TreeSelect
498
+ value = { [ '10' ] }
499
+ treeDefaultExpandAll
500
+ treeData = { [
501
+ { key : '0' , value : '0' , title : '0 label' } ,
502
+ {
503
+ key : '1' ,
504
+ value : '1' ,
505
+ title : '1 label' ,
506
+ children : [
507
+ { key : '10' , value : '10' , title : '10 label' } ,
508
+ { key : '11' , value : '11' , title : '11 label' } ,
509
+ ] ,
510
+ } ,
511
+ ] }
512
+ /> ,
513
+ ) ;
514
+
515
+ function keyDown ( code ) {
516
+ wrapper . find ( 'input' ) . first ( ) . simulate ( 'keyDown' , { which : code } ) ;
517
+ wrapper . update ( ) ;
518
+ }
519
+
520
+ wrapper . openSelect ( ) ;
521
+ expect ( wrapper . find ( '.rc-tree-select-tree-treenode-active' ) . text ( ) ) . toBe ( '10 label' ) ;
522
+
523
+ keyDown ( KeyCode . DOWN ) ;
524
+ expect ( wrapper . find ( '.rc-tree-select-tree-treenode-active' ) . text ( ) ) . toBe ( '11 label' ) ;
525
+
526
+ keyDown ( KeyCode . DOWN ) ;
527
+ expect ( wrapper . find ( '.rc-tree-select-tree-treenode-active' ) . text ( ) ) . toBe ( '0 label' ) ;
528
+
529
+ keyDown ( KeyCode . UP ) ;
530
+ expect ( wrapper . find ( '.rc-tree-select-tree-treenode-active' ) . text ( ) ) . toBe ( '11 label' ) ;
531
+ } ) ;
471
532
} ) ;
472
533
473
534
it ( 'click in list should preventDefault' , ( ) => {
0 commit comments