@@ -58,24 +58,21 @@ test('Emits resize events on mouse resizing', () => {
58
58
expect ( onResize ) . toHaveBeenCalledWith ( 150 ) ;
59
59
} ) ;
60
60
61
- test ( 'Emits resize events on keyboard resizing' , ( ) => {
61
+ test . each ( [
62
+ [ 'ArrowDown' , 20 ] ,
63
+ [ 'ArrowRight' , 20 ] ,
64
+ [ 'ArrowUp' , - 20 ] ,
65
+ [ 'ArrowLeft' , - 20 ] ,
66
+ ] ) ( 'Emits resize events on keydown press: %s' , ( key , expectedChange ) => {
67
+ const initialHeight = 100 ;
62
68
const onResize = jest . fn ( ) ;
63
- render ( < ResizableBox { ...defaultProps } height = { 100 } onResize = { onResize } /> ) ;
64
- // Arrow keys resize by 20px
65
- fireEvent . keyDown ( findHandle ( ) , { key : 'ArrowDown' } ) ;
66
- expect ( onResize ) . toHaveBeenCalledWith ( 120 ) ;
67
69
68
- onResize . mockClear ( ) ;
69
- fireEvent . keyDown ( findHandle ( ) , { key : 'ArrowRight' } ) ;
70
- expect ( onResize ) . toHaveBeenCalledWith ( 120 ) ;
70
+ render ( < ResizableBox { ...defaultProps } height = { initialHeight } onResize = { onResize } /> ) ;
71
71
72
- onResize . mockClear ( ) ;
73
- fireEvent . keyDown ( findHandle ( ) , { key : 'ArrowUp' } ) ;
74
- expect ( onResize ) . toHaveBeenCalledWith ( 80 ) ;
75
-
76
- onResize . mockClear ( ) ;
77
- fireEvent . keyDown ( findHandle ( ) , { key : 'ArrowLeft' } ) ;
78
- expect ( onResize ) . toHaveBeenCalledWith ( 80 ) ;
72
+ const keydownEvent = new KeyboardEvent ( 'keydown' , { key, bubbles : true , cancelable : true } ) ;
73
+ fireEvent ( findHandle ( ) , keydownEvent ) ;
74
+ expect ( keydownEvent . defaultPrevented ) . toBe ( true ) ;
75
+ expect ( onResize ) . toHaveBeenCalledWith ( initialHeight + expectedChange ) ;
79
76
} ) ;
80
77
81
78
test ( 'Emits resize events when direction buttons are pressed' , ( ) => {
0 commit comments