@@ -177,6 +177,39 @@ describe('Select 组件测试', () => {
177
177
} ) ;
178
178
} ) ;
179
179
180
+ test ( '多选全选测试' , async ( ) => {
181
+ const MultipleSelect = ( ) => {
182
+ const [ value , setValue ] = useState ( [ 'apple' ] ) ;
183
+ const onChange = ( value ) => {
184
+ setValue ( value ) ;
185
+ } ;
186
+ return (
187
+ < Select value = { value } onChange = { onChange } multiple >
188
+ < Option key = "all" label = "All" value = "all" checkAll />
189
+ < Option key = "apple" label = "Apple" value = "apple" />
190
+ < Option key = "orange" label = "Orange" value = "orange" />
191
+ < Option key = "banana" label = "Banana" value = "banana" />
192
+ </ Select >
193
+ ) ;
194
+ } ;
195
+
196
+ const { getByText } = render ( < MultipleSelect /> ) ;
197
+
198
+ fireEvent . click ( document . querySelector ( '.t-input' ) ) ;
199
+
200
+ // 点击全选,input 展示 Apple、Banana、Orange 选项
201
+ fireEvent . click ( getByText ( 'All' ) ) ;
202
+ expect ( document . querySelector ( selectSelector ) ) . toHaveTextContent ( 'Apple' ) ;
203
+ expect ( document . querySelector ( selectSelector ) ) . toHaveTextContent ( 'Banana' ) ;
204
+ expect ( document . querySelector ( selectSelector ) ) . toHaveTextContent ( 'Orange' ) ;
205
+
206
+ // 再次点击全选,input 清空选项
207
+ fireEvent . click ( getByText ( 'All' ) ) ;
208
+ expect ( document . querySelector ( selectSelector ) ) . not . toHaveTextContent ( 'Apple' ) ;
209
+ expect ( document . querySelector ( selectSelector ) ) . not . toHaveTextContent ( 'Banana' ) ;
210
+ expect ( document . querySelector ( selectSelector ) ) . not . toHaveTextContent ( 'Orange' ) ;
211
+ } ) ;
212
+
180
213
test ( '分组选择器测试' , async ( ) => {
181
214
const OptionGroupSelect = ( ) => {
182
215
const [ value , setValue ] = useState ( 'apple' ) ;
0 commit comments