@@ -3,6 +3,7 @@ import { fireEvent, render } from '@testing-library/react';
33import { mount } from 'enzyme' ;
44import React from 'react' ;
55import TreeSelect , { SHOW_ALL , SHOW_PARENT , TreeNode } from '../src' ;
6+ import { clearSelection , search , selectNode } from './util' ;
67
78describe ( 'TreeSelect.checkable' , ( ) => {
89 it ( 'allow clear when controlled' , ( ) => {
@@ -209,7 +210,7 @@ describe('TreeSelect.checkable', () => {
209210 expect ( wrapper . getSelection ( ) ) . toHaveLength ( 0 ) ;
210211 } ) ;
211212
212- it ( 'clear selected value and input value' , ( ) => {
213+ it ( 'clear selected value and input value' , async ( ) => {
213214 const treeData = [
214215 {
215216 key : '0' ,
@@ -218,7 +219,7 @@ describe('TreeSelect.checkable', () => {
218219 } ,
219220 ] ;
220221
221- const wrapper = mount (
222+ const { container } = render (
222223 < TreeSelect
223224 treeData = { treeData }
224225 treeCheckable
@@ -382,7 +383,7 @@ describe('TreeSelect.checkable', () => {
382383 } ,
383384 ] ;
384385
385- const wrapper = mount (
386+ const { container } = render (
386387 < TreeSelect
387388 treeCheckable
388389 treeData = { treeData }
@@ -393,8 +394,8 @@ describe('TreeSelect.checkable', () => {
393394 /> ,
394395 ) ;
395396
396- wrapper . search ( '0-0' ) ;
397- wrapper . selectNode ( 0 ) ;
397+ search ( container , '0-0' ) ;
398+ selectNode ( 0 ) ;
398399 expect ( onChange ) . toHaveBeenCalledWith ( [ '0-1-0' , '0-1-2' ] , expect . anything ( ) , expect . anything ( ) ) ;
399400 } ) ;
400401
@@ -420,7 +421,7 @@ describe('TreeSelect.checkable', () => {
420421 it ( 'uncontrolled' , ( ) => {
421422 const onChange = jest . fn ( ) ;
422423
423- const wrapper = mount (
424+ const { container } = render (
424425 < TreeSelect
425426 treeCheckable
426427 treeData = { treeData }
@@ -430,15 +431,14 @@ describe('TreeSelect.checkable', () => {
430431 /> ,
431432 ) ;
432433
433- wrapper . search ( '0-0-1' ) ;
434- wrapper . selectNode ( 1 ) ;
434+ search ( container , '0-0-1' ) ;
435+ selectNode ( 1 ) ;
435436 expect ( onChange ) . toHaveBeenCalledWith ( [ '0-0-1' ] , expect . anything ( ) , expect . anything ( ) ) ;
436437
437438 expect (
438- wrapper
439- . find ( '.rc-tree-select-tree-checkbox' )
440- . at ( 0 )
441- . hasClass ( 'rc-tree-select-tree-checkbox-indeterminate' ) ,
439+ container
440+ . querySelectorAll ( '.rc-tree-select-tree-checkbox' ) [ 0 ]
441+ . classList . contains ( 'rc-tree-select-tree-checkbox-indeterminate' ) ,
442442 ) . toBeTruthy ( ) ;
443443 } ) ;
444444
@@ -471,25 +471,29 @@ describe('TreeSelect.checkable', () => {
471471 }
472472 }
473473
474- const wrapper = mount ( < Test /> ) ;
474+ const { container } = render ( < Test /> ) ;
475475
476- wrapper . search ( '0-0-1' ) ;
477- wrapper . selectNode ( 1 ) ;
476+ search ( container , '0-0-1' ) ;
477+ selectNode ( 1 ) ;
478478 expect ( onChange ) . toHaveBeenCalled ( ) ;
479479
480480 expect (
481- wrapper
482- . find ( '.rc-tree-select-tree-checkbox' )
483- . at ( 0 )
484- . hasClass ( 'rc-tree-select-tree-checkbox-indeterminate' ) ,
481+ container
482+ . querySelectorAll ( '.rc-tree-select-tree-checkbox' ) [ 0 ]
483+ . classList . contains ( 'rc-tree-select-tree-checkbox-indeterminate' ) ,
485484 ) . toBe ( true ) ;
486485 } ) ;
487486 } ) ;
488487
489488 describe ( 'labelInValue' , ( ) => {
490489 it ( 'basic' , ( ) => {
491490 const wrapper = mount (
492- < TreeSelect treeCheckable showCheckedStrategy = "SHOW_PARENT" labelInValue value = { [ { value : '0-0' } ] } >
491+ < TreeSelect
492+ treeCheckable
493+ showCheckedStrategy = "SHOW_PARENT"
494+ labelInValue
495+ value = { [ { value : '0-0' } ] }
496+ >
493497 < TreeNode key = "0-0" value = "0-0" title = "0-0" >
494498 < TreeNode key = "0-0-0" value = "0-0-0" title = "0-0-0" />
495499 </ TreeNode >
@@ -540,26 +544,26 @@ describe('TreeSelect.checkable', () => {
540544 it ( 'extra.allCheckedNodes' , ( ) => {
541545 const onChange = jest . fn ( ) ;
542546
543- const wrapper = mount (
547+ const { container } = render (
544548 < TreeSelect open multiple treeCheckable onChange = { onChange } >
545549 < TreeNode key = "0-0" value = "0-0" title = "0-0" />
546550 </ TreeSelect > ,
547551 ) ;
548552
549553 // Just click
550- wrapper . selectNode ( ) ;
554+ selectNode ( ) ;
551555 expect ( onChange . mock . calls [ 0 ] [ 2 ] . allCheckedNodes ) . toEqual ( [
552556 expect . objectContaining ( {
553557 pos : '0-0' ,
554558 } ) ,
555559 ] ) ;
556560
557- wrapper . clearSelection ( 0 ) ;
561+ clearSelection ( container , 0 ) ;
558562 onChange . mockReset ( ) ;
559563
560564 // By search
561- wrapper . search ( '0' ) ;
562- wrapper . selectNode ( ) ;
565+ search ( container , '0' ) ;
566+ selectNode ( ) ;
563567 expect ( onChange . mock . calls [ 0 ] [ 2 ] . allCheckedNodes ) . toEqual ( [
564568 expect . objectContaining ( {
565569 pos : '0-0' ,
@@ -608,7 +612,7 @@ describe('TreeSelect.checkable', () => {
608612
609613 const onChange = jest . fn ( ) ;
610614
611- const wrapper = mount (
615+ const { container } = render (
612616 < TreeSelect
613617 open
614618 defaultValue = { [ { value : '0-1' } ] }
@@ -620,8 +624,8 @@ describe('TreeSelect.checkable', () => {
620624 /> ,
621625 ) ;
622626
623- wrapper . search ( '0-0-0' ) ;
624- wrapper . selectNode ( 1 ) ;
627+ search ( container , '0-0-0' ) ;
628+ selectNode ( 1 ) ;
625629
626630 expect ( onChange . mock . calls [ 0 ] [ 0 ] ) . toEqual ( [
627631 { label : 'Node2' , value : '0-1' } ,
@@ -639,15 +643,17 @@ describe('TreeSelect.checkable', () => {
639643 } ,
640644 ] ;
641645
642- const wrapper = mount ( < TreeSelect defaultValue = { [ '0-0' ] } treeData = { treeData } treeCheckable /> ) ;
646+ const { container } = render (
647+ < TreeSelect defaultValue = { [ '0-0' ] } treeData = { treeData } treeCheckable /> ,
648+ ) ;
643649
644- expect ( wrapper . getSelection ( ) . length ) . toBeTruthy ( ) ;
645- expect ( wrapper . find ( '.rc-tree-select-selection-item-remove' ) . length ) . toBeFalsy ( ) ;
650+ expect ( container . querySelectorAll ( '.rc-tree-select-selection-item' ) . length ) . toBeTruthy ( ) ;
651+ expect ( container . querySelectorAll ( '.rc-tree-select-selection-item-remove' ) . length ) . toBeFalsy ( ) ;
646652 } ) ;
647653
648654 it ( 'treeCheckStrictly can set halfChecked' , ( ) => {
649655 const onChange = jest . fn ( ) ;
650- const wrapper = mount (
656+ const { container } = render (
651657 < TreeSelect
652658 treeCheckStrictly
653659 treeCheckable
@@ -662,17 +668,19 @@ describe('TreeSelect.checkable', () => {
662668 ) ;
663669
664670 function getTreeNode ( index ) {
665- return wrapper . find ( '.rc-tree-select-tree-treenode' ) . not ( '[aria-hidden]' ) . at ( index ) ;
671+ const treeNodes = container . querySelectorAll ( '.rc-tree-select-tree-treenode' ) ;
672+ const visibleNodes = Array . from ( treeNodes ) . filter ( node => ! node . hasAttribute ( 'aria-hidden' ) ) ;
673+ return visibleNodes [ index ] ;
666674 }
667675
668676 expect (
669- getTreeNode ( 0 ) . hasClass ( 'rc-tree-select-tree-treenode-checkbox-indeterminate' ) ,
677+ getTreeNode ( 0 ) . classList . contains ( 'rc-tree-select-tree-treenode-checkbox-indeterminate' ) ,
670678 ) . toBeTruthy ( ) ;
671679 expect (
672- getTreeNode ( 1 ) . hasClass ( 'rc-tree-select-tree-treenode-checkbox-indeterminate' ) ,
680+ getTreeNode ( 1 ) . classList . contains ( 'rc-tree-select-tree-treenode-checkbox-indeterminate' ) ,
673681 ) . toBeFalsy ( ) ;
674682
675- wrapper . selectNode ( 1 ) ;
683+ selectNode ( 1 ) ;
676684 expect ( onChange ) . toHaveBeenCalledWith (
677685 [
678686 {
0 commit comments