File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -38,6 +38,10 @@ function cloneEvent<
3838 currentTarget . selectionEnd = target . selectionEnd ;
3939 }
4040
41+ currentTarget . setSelectionRange = ( ...args ) => {
42+ target . setSelectionRange ( ...args ) ;
43+ } ;
44+
4145 return newEvent ;
4246}
4347
Original file line number Diff line number Diff line change @@ -353,6 +353,10 @@ describe('Input ref', () => {
353353 it ( 'selectionXXX should pass' , ( ) => {
354354 const onChange = jest . fn ( ) ;
355355 const { container } = render ( < Input onChange = { onChange } /> ) ;
356+ const spySetSelectionRange = jest . spyOn (
357+ container . querySelector ( 'input' ) ! ,
358+ 'setSelectionRange' ,
359+ ) ;
356360
357361 const inputEl = container . querySelector ( 'input' ) ! ;
358362 fireEvent . change ( inputEl , { target : { value : 'test' } } ) ;
@@ -361,6 +365,10 @@ describe('Input ref', () => {
361365 const event = onChange . mock . calls [ 0 ] [ 0 ] ;
362366 expect ( event . target . selectionStart ) . toBe ( 4 ) ;
363367 expect ( event . target . selectionEnd ) . toBe ( 4 ) ;
368+
369+ // Call `setSelectionRange`
370+ event . target . setSelectionRange ( 1 , 2 ) ;
371+ expect ( spySetSelectionRange ) . toHaveBeenCalledWith ( 1 , 2 ) ;
364372 } ) ;
365373
366374 it ( 'email type not support selection' , ( ) => {
You can’t perform that action at this time.
0 commit comments