@@ -14,6 +14,7 @@ import removeSelectedTest from './shared/removeSelectedTest';
14
14
import maxTagRenderTest from './shared/maxTagRenderTest' ;
15
15
import throwOptionValue from './shared/throwOptionValue' ;
16
16
import { injectRunAllTimers , findSelection , expectOpen , toggleOpen , keyDown } from './utils/common' ;
17
+ import type { CustomTagProps } from '@/BaseSelect' ;
17
18
18
19
describe ( 'Select.Tags' , ( ) => {
19
20
injectRunAllTimers ( jest ) ;
@@ -301,6 +302,27 @@ describe('Select.Tags', () => {
301
302
expectOpen ( container , false ) ;
302
303
} ) ;
303
304
305
+ it ( 'tagRender props have index' , ( ) => {
306
+ const tagRender = ( props : CustomTagProps ) => {
307
+ const { index : tagIndex , label } = props ;
308
+ return < div className = { `${ label } -${ tagIndex } -test` } > { label } </ div > ;
309
+ } ;
310
+ const values = [ 'light' , 'dark' ] ;
311
+ const { container } = render (
312
+ < Select
313
+ mode = "tags"
314
+ value = { values }
315
+ tagRender = { tagRender }
316
+ options = { [ { value : 'light' } , { value : 'dark' } ] }
317
+ /> ,
318
+ ) ;
319
+ values . forEach ( ( value , index ) => {
320
+ const expectedText = `.${ value } -${ index } -test` ;
321
+ const nodes = container . querySelectorAll ( expectedText ) ;
322
+ expect ( nodes ) . toHaveLength ( 1 ) ;
323
+ } ) ;
324
+ } ) ;
325
+
304
326
it ( 'disabled' , ( ) => {
305
327
const tagRender = jest . fn ( ) ;
306
328
render (
0 commit comments