@@ -435,6 +435,37 @@ describe('Menu', () => {
435
435
expect ( wrapper . isActive ( 1 ) ) . toBeTruthy ( ) ;
436
436
} ) ;
437
437
438
+ it ( 'input and textarea cursor can be moved by arrow' , ( ) => {
439
+ const wrapper = mount (
440
+ < Menu activeKey = "1" >
441
+ < MenuItem key = "1" >
442
+ < input value = "123" />
443
+ </ MenuItem >
444
+ < MenuItem key = "2" >
445
+ < textarea value = "123" />
446
+ </ MenuItem >
447
+ </ Menu > ,
448
+ ) ;
449
+
450
+ const input = wrapper . find ( 'input' ) ;
451
+ input . simulate ( 'focus' ) ;
452
+ const inputNode = input . getDOMNode ( ) ;
453
+ expect ( inputNode . selectionStart ) . toEqual ( 0 ) ;
454
+ input . simulate ( 'keyDown' , { which : KeyCode . RIGHT } ) ;
455
+ expect ( inputNode . selectionStart ) . toEqual ( 1 ) ;
456
+ input . simulate ( 'keyDown' , { which : KeyCode . LEFT } ) ;
457
+ expect ( inputNode . selectionStart ) . toEqual ( 0 ) ;
458
+
459
+ const textarea = wrapper . find ( 'textarea' ) ;
460
+ textarea . simulate ( 'focus' ) ;
461
+ const textareaNode = textarea . getDOMNode ( ) ;
462
+ expect ( textarea . selectionStart ) . toEqual ( 0 ) ;
463
+ textareaNode . simulate ( 'keyDown' , { which : KeyCode . RIGHT } ) ;
464
+ expect ( textarea . selectionStart ) . toEqual ( 1 ) ;
465
+ textareaNode . simulate ( 'keyDown' , { which : KeyCode . LEFT } ) ;
466
+ expect ( textarea . selectionStart ) . toEqual ( 0 ) ;
467
+ } ) ;
468
+
438
469
it ( 'defaultActiveFirst' , ( ) => {
439
470
const wrapper = mount (
440
471
< Menu selectedKeys = { [ 'foo' ] } defaultActiveFirst >
0 commit comments