@@ -369,30 +369,56 @@ describe('Cascader.Basic', () => {
369369 expect ( menus . length ) . toBe ( 1 ) ;
370370 } ) ;
371371
372- it ( 'should be unselectable when option is disabled' , ( ) => {
373- const newAddressOptions = [ ...addressOptions ] ;
374- newAddressOptions [ 0 ] = {
375- ...newAddressOptions [ 0 ] ,
376- disabled : true ,
377- } ;
378- const wrapper = mount (
379- < Cascader options = { newAddressOptions } onChange = { onChange } >
380- < input readOnly />
381- </ Cascader > ,
382- ) ;
383- wrapper . find ( 'input' ) . simulate ( 'click' ) ;
384- let menus = wrapper . find ( '.rc-cascader-menu' ) ;
385- expect ( menus . length ) . toBe ( 1 ) ;
386- const menu1Items = menus . at ( 0 ) . find ( '.rc-cascader-menu-item' ) ;
387- expect ( menu1Items . length ) . toBe ( 3 ) ;
388- expect ( selectedValue ) . toBeFalsy ( ) ;
372+ describe ( 'option disabled' , ( ) => {
373+ it ( 'should be unselectable when option is disabled' , ( ) => {
374+ const newAddressOptions = [ ...addressOptions ] ;
375+ newAddressOptions [ 0 ] = {
376+ ...newAddressOptions [ 0 ] ,
377+ disabled : true ,
378+ } ;
379+ const wrapper = mount (
380+ < Cascader options = { newAddressOptions } onChange = { onChange } >
381+ < input readOnly />
382+ </ Cascader > ,
383+ ) ;
384+ wrapper . find ( 'input' ) . simulate ( 'click' ) ;
385+ let menus = wrapper . find ( '.rc-cascader-menu' ) ;
386+ expect ( menus . length ) . toBe ( 1 ) ;
387+ const menu1Items = menus . at ( 0 ) . find ( '.rc-cascader-menu-item' ) ;
388+ expect ( menu1Items . length ) . toBe ( 3 ) ;
389+ expect ( selectedValue ) . toBeFalsy ( ) ;
390+
391+ menu1Items . at ( 0 ) . simulate ( 'click' ) ;
392+ expect (
393+ wrapper . find ( '.rc-cascader-menu-item' ) . first ( ) . hasClass ( 'rc-cascader-menu-item-disabled' ) ,
394+ ) . toBe ( true ) ;
395+ menus = wrapper . find ( '.rc-cascader-menu' ) ;
396+ expect ( menus . length ) . toBe ( 1 ) ;
397+ } ) ;
389398
390- menu1Items . at ( 0 ) . simulate ( 'click' ) ;
391- expect (
392- wrapper . find ( '.rc-cascader-menu-item' ) . first ( ) . hasClass ( 'rc-cascader-menu-item-disabled' ) ,
393- ) . toBe ( true ) ;
394- menus = wrapper . find ( '.rc-cascader-menu' ) ;
395- expect ( menus . length ) . toBe ( 1 ) ;
399+ it ( 'can not clear selector when disabled' , ( ) => {
400+ const newAddressOptions = JSON . parse ( JSON . stringify ( addressOptions ) ) ;
401+ newAddressOptions [ 0 ] . children [ 0 ] . disabled = true ;
402+
403+ const wrapper = mount (
404+ < Cascader
405+ options = { newAddressOptions }
406+ value = { [
407+ [ 'fj' , 'fuzhou' ] ,
408+ [ 'bj' , 'chaoyang' ] ,
409+ ] }
410+ checkable
411+ /> ,
412+ ) ;
413+
414+ expect ( wrapper . find ( '.rc-cascader-selection-item-disabled' ) . text ( ) ) . toEqual ( '福州' ) ;
415+ expect (
416+ wrapper
417+ . find ( '.rc-cascader-selection-item:not(.rc-cascader-selection-item-disabled)' )
418+ . find ( '.rc-cascader-selection-item-content' )
419+ . text ( ) ,
420+ ) . toEqual ( '朝阳区' ) ;
421+ } ) ;
396422 } ) ;
397423
398424 it ( 'should have correct active menu items' , ( ) => {
0 commit comments