@@ -13,7 +13,14 @@ import openControlledTest from './shared/openControlledTest';
1313import removeSelectedTest from './shared/removeSelectedTest' ;
1414import maxTagRenderTest from './shared/maxTagRenderTest' ;
1515import throwOptionValue from './shared/throwOptionValue' ;
16- import { injectRunAllTimers , findSelection , expectOpen , toggleOpen , keyDown } from './utils/common' ;
16+ import {
17+ injectRunAllTimers ,
18+ findSelection ,
19+ expectOpen ,
20+ toggleOpen ,
21+ keyDown ,
22+ keyUp ,
23+ } from './utils/common' ;
1724import type { CustomTagProps } from '@/BaseSelect' ;
1825
1926describe ( 'Select.Tags' , ( ) => {
@@ -140,6 +147,29 @@ describe('Select.Tags', () => {
140147 expectOpen ( container , false ) ;
141148 } ) ;
142149
150+ it ( 'should trigger onSelect once when pressing Enter to select option in tags mode (dropdown open)' , ( ) => {
151+ const handleSelect = jest . fn ( ) ;
152+ const { container } = render (
153+ < Select
154+ mode = "tags"
155+ open
156+ showSearch
157+ onSelect = { handleSelect }
158+ options = { [
159+ { label : 'Dacryoadenitis' , value : 'opt1' } ,
160+ { label : 'Dacryocystitis' , value : 'opt2' } ,
161+ ] }
162+ /> ,
163+ ) ;
164+ fireEvent . change ( container . querySelector ( 'input' ) , { target : { value : 'da' } } ) ;
165+ jest . runAllTimers ( ) ;
166+ fireEvent . mouseMove ( container . querySelectorAll ( '.rc-select-item-option' ) [ 0 ] ) ;
167+ keyDown ( container . querySelector ( 'input' ) , KeyCode . ENTER ) ;
168+ keyUp ( container . querySelector ( 'input' ) , KeyCode . ENTER ) ;
169+ jest . runAllTimers ( ) ;
170+ expect ( handleSelect ) . toHaveBeenCalledTimes ( 1 ) ;
171+ } ) ;
172+
143173 // Paste tests
144174 [
145175 {
0 commit comments