@@ -14,6 +14,7 @@ import removeSelectedTest from './shared/removeSelectedTest';
1414import maxTagRenderTest from './shared/maxTagRenderTest' ;
1515import throwOptionValue from './shared/throwOptionValue' ;
1616import { injectRunAllTimers , findSelection , expectOpen , toggleOpen , keyDown } from './utils/common' ;
17+ import type { CustomTagProps } from '@/BaseSelect' ;
1718
1819describe ( 'Select.Tags' , ( ) => {
1920 injectRunAllTimers ( jest ) ;
@@ -301,6 +302,27 @@ describe('Select.Tags', () => {
301302 expectOpen ( container , false ) ;
302303 } ) ;
303304
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+
304326 it ( 'disabled' , ( ) => {
305327 const tagRender = jest . fn ( ) ;
306328 render (
0 commit comments