@@ -369,30 +369,56 @@ describe('Cascader.Basic', () => {
369
369
expect ( menus . length ) . toBe ( 1 ) ;
370
370
} ) ;
371
371
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
+ } ) ;
389
398
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
+ } ) ;
396
422
} ) ;
397
423
398
424
it ( 'should have correct active menu items' , ( ) => {
0 commit comments