@@ -9,6 +9,8 @@ describe('Cascader.Search', () => {
99 prefix : 'test-prefix' ,
1010 suffix : 'test-suffix' ,
1111 input : 'test-input' ,
12+ placeholder : 'test-placeholder' ,
13+ content : 'test-content' ,
1214 popup : {
1315 list : 'test-popup-list' ,
1416 listItem : 'test-popup-list-item' ,
@@ -18,6 +20,8 @@ describe('Cascader.Search', () => {
1820 prefix : { color : 'green' } ,
1921 suffix : { color : 'blue' } ,
2022 input : { color : 'purple' } ,
23+ placeholder : { fontSize : '12px' } ,
24+ content : { backgroundColor : 'lightgray' } ,
2125 popup : {
2226 list : { background : 'red' } ,
2327 listItem : { color : 'yellow' } ,
@@ -34,20 +38,120 @@ describe('Cascader.Search', () => {
3438 optionRender = { option => `${ option . label } - test` }
3539 /> ,
3640 ) ;
37- const input = container . querySelector ( '.rc-cascader-selection-search-input' ) ;
41+
42+ const input = container . querySelector ( '.rc-cascader-input' ) ;
3843 const prefix = container . querySelector ( '.rc-cascader-prefix' ) ;
39- const suffix = container . querySelector ( '.rc-cascader-arrow' ) ;
44+ const suffix = container . querySelector ( '.rc-cascader-suffix' ) ;
45+ const placeholder = container . querySelector ( '.rc-cascader-placeholder' ) ;
46+ const content = container . querySelector ( '.rc-cascader-content' ) ;
4047 const list = container . querySelector ( '.rc-cascader-menu' ) ;
4148 const listItem = container . querySelector ( '.rc-cascader-menu-item' ) ;
49+
50+ // Test styles for supported semantic elements
4251 expect ( input ) . toHaveStyle ( testStyles . input ) ;
4352 expect ( prefix ) . toHaveStyle ( testStyles . prefix ) ;
4453 expect ( suffix ) . toHaveStyle ( testStyles . suffix ) ;
54+ if ( placeholder ) {
55+ expect ( placeholder ) . toHaveStyle ( testStyles . placeholder ) ;
56+ }
57+ expect ( content ) . toHaveStyle ( testStyles . content ) ;
4558 expect ( list ) . toHaveStyle ( testStyles . popup . list ) ;
4659 expect ( listItem ) . toHaveStyle ( testStyles . popup . listItem ) ;
60+
61+ // Test class names for supported semantic elements
62+ expect ( input ?. className ) . toContain ( testClassNames . input ) ;
63+ expect ( prefix ?. className ) . toContain ( testClassNames . prefix ) ;
64+ expect ( suffix ?. className ) . toContain ( testClassNames . suffix ) ;
65+ if ( placeholder ) {
66+ expect ( placeholder ?. className ) . toContain ( testClassNames . placeholder ) ;
67+ }
68+ expect ( content ?. className ) . toContain ( testClassNames . content ) ;
69+ expect ( list ?. className ) . toContain ( testClassNames . popup . list ) ;
70+ expect ( listItem ?. className ) . toContain ( testClassNames . popup . listItem ) ;
71+ } ) ;
72+
73+ it ( 'Should support semantic for multiple mode' , ( ) => {
74+ const testClassNames = {
75+ prefix : 'test-prefix' ,
76+ suffix : 'test-suffix' ,
77+ input : 'test-input' ,
78+ placeholder : 'test-placeholder' ,
79+ content : 'test-content' ,
80+ item : 'test-item' ,
81+ itemContent : 'test-item-content' ,
82+ itemRemove : 'test-item-remove' ,
83+ popup : {
84+ list : 'test-popup-list' ,
85+ listItem : 'test-popup-list-item' ,
86+ } ,
87+ } ;
88+ const testStyles = {
89+ prefix : { color : 'green' } ,
90+ suffix : { color : 'blue' } ,
91+ input : { color : 'purple' } ,
92+ placeholder : { fontSize : '12px' } ,
93+ content : { backgroundColor : 'lightgray' } ,
94+ item : { border : '1px solid red' } ,
95+ itemContent : { fontWeight : 'bold' } ,
96+ itemRemove : { color : 'red' } ,
97+ popup : {
98+ list : { background : 'red' } ,
99+ listItem : { color : 'yellow' } ,
100+ } ,
101+ } ;
102+ const { container } = render (
103+ < Cascader
104+ classNames = { testClassNames }
105+ styles = { testStyles }
106+ prefix = "prefix"
107+ suffixIcon = { ( ) => 'icon' }
108+ open
109+ checkable
110+ value = { [ [ 'bamboo' ] ] }
111+ options = { [
112+ { label : 'bamboo' , value : 'bamboo' , children : [ { label : 'leaf' , value : 'leaf' } ] } ,
113+ ] }
114+ optionRender = { option => `${ option . label } - test` }
115+ /> ,
116+ ) ;
117+
118+ const input = container . querySelector ( '.rc-cascader-input' ) ;
119+ const prefix = container . querySelector ( '.rc-cascader-prefix' ) ;
120+ const suffix = container . querySelector ( '.rc-cascader-suffix' ) ;
121+ const placeholder = container . querySelector ( '.rc-cascader-placeholder' ) ;
122+ const content = container . querySelector ( '.rc-cascader-content' ) ;
123+ const list = container . querySelector ( '.rc-cascader-menu' ) ;
124+ const listItem = container . querySelector ( '.rc-cascader-menu-item' ) ;
125+ const item = container . querySelector ( '.rc-cascader-selection-item' ) ;
126+ const itemContent = container . querySelector ( '.rc-cascader-selection-item-content' ) ;
127+ const itemRemove = container . querySelector ( '.rc-cascader-selection-item-remove' ) ;
128+
129+ // Test styles for supported semantic elements
130+ expect ( input ) . toHaveStyle ( testStyles . input ) ;
131+ expect ( prefix ) . toHaveStyle ( testStyles . prefix ) ;
132+ expect ( suffix ) . toHaveStyle ( testStyles . suffix ) ;
133+ if ( placeholder ) {
134+ expect ( placeholder ) . toHaveStyle ( testStyles . placeholder ) ;
135+ }
136+ expect ( content ) . toHaveStyle ( testStyles . content ) ;
137+ expect ( list ) . toHaveStyle ( testStyles . popup . list ) ;
138+ expect ( listItem ) . toHaveStyle ( testStyles . popup . listItem ) ;
139+ expect ( item ) . toHaveStyle ( testStyles . item ) ;
140+ expect ( itemContent ) . toHaveStyle ( testStyles . itemContent ) ;
141+ expect ( itemRemove ) . toHaveStyle ( testStyles . itemRemove ) ;
142+
143+ // Test class names for supported semantic elements
47144 expect ( input ?. className ) . toContain ( testClassNames . input ) ;
48145 expect ( prefix ?. className ) . toContain ( testClassNames . prefix ) ;
49146 expect ( suffix ?. className ) . toContain ( testClassNames . suffix ) ;
147+ if ( placeholder ) {
148+ expect ( placeholder ?. className ) . toContain ( testClassNames . placeholder ) ;
149+ }
150+ expect ( content ?. className ) . toContain ( testClassNames . content ) ;
50151 expect ( list ?. className ) . toContain ( testClassNames . popup . list ) ;
51152 expect ( listItem ?. className ) . toContain ( testClassNames . popup . listItem ) ;
153+ expect ( item ?. className ) . toContain ( testClassNames . item ) ;
154+ expect ( itemContent ?. className ) . toContain ( testClassNames . itemContent ) ;
155+ expect ( itemRemove ?. className ) . toContain ( testClassNames . itemRemove ) ;
52156 } ) ;
53157} ) ;
0 commit comments