@@ -13,6 +13,12 @@ jest.mock('../RegionRect');
1313jest . mock ( '../regionUtil' ) ;
1414
1515describe ( 'RegionCreator' , ( ) => {
16+ const defaults = {
17+ onAbort : jest . fn ( ) ,
18+ onStart : jest . fn ( ) ,
19+ onStop : jest . fn ( ) ,
20+ } ;
21+
1622 const getDOMRect = ( x = 0 , y = 0 , height = 1000 , width = 1000 ) : DOMRect => ( {
1723 bottom : y + height ,
1824 top : y ,
@@ -26,8 +32,7 @@ describe('RegionCreator', () => {
2632 } ) ;
2733
2834 // Render helpers
29- const getWrapper = ( props = { } ) : ReactWrapper =>
30- mount ( < RegionCreator onStart = { jest . fn ( ) } onStop = { jest . fn ( ) } { ...props } /> ) ;
35+ const getWrapper = ( props = { } ) : ReactWrapper => mount ( < RegionCreator { ...defaults } { ...props } /> ) ;
3136 const getWrapperRoot = ( wrapper : ReactWrapper ) : ReactWrapper => wrapper . find ( '[data-testid="ba-RegionCreator"]' ) ;
3237
3338 beforeEach ( ( ) => {
@@ -90,18 +95,16 @@ describe('RegionCreator', () => {
9095 } ) ;
9196
9297 test ( 'should call the onStart and onStop callback when drawing starts and stops' , ( ) => {
93- const onStart = jest . fn ( ) ;
94- const onStop = jest . fn ( ) ;
95- const wrapper = getWrapper ( { onStart, onStop } ) ;
98+ const wrapper = getWrapper ( ) ;
9699
97100 simulateDrawStart ( wrapper , 50 , 50 ) ;
98101 simulateDrawMove ( 100 , 100 ) ;
99102 simulateDrawStop ( ) ;
100103 jest . advanceTimersByTime ( 1000 ) ;
101104 wrapper . update ( ) ;
102105
103- expect ( onStart ) . toHaveBeenCalled ( ) ;
104- expect ( onStop ) . toHaveBeenCalledWith ( {
106+ expect ( defaults . onStart ) . toHaveBeenCalled ( ) ;
107+ expect ( defaults . onStop ) . toHaveBeenCalledWith ( {
105108 height : 5 ,
106109 type : 'rect' ,
107110 width : 5 ,
@@ -110,10 +113,20 @@ describe('RegionCreator', () => {
110113 } ) ;
111114 } ) ;
112115
116+ test ( 'should call onStart and onAbort callback when user clicks without dragging' , ( ) => {
117+ const wrapper = getWrapper ( ) ;
118+
119+ simulateDrawStart ( wrapper , 50 , 50 ) ;
120+ simulateDrawStop ( ) ;
121+ jest . advanceTimersByTime ( 1000 ) ;
122+ wrapper . update ( ) ;
123+
124+ expect ( defaults . onStart ) . toHaveBeenCalled ( ) ;
125+ expect ( defaults . onAbort ) . toHaveBeenCalled ( ) ;
126+ } ) ;
127+
113128 test ( 'should do nothing if primary button is not pressed' , ( ) => {
114- const onStart = jest . fn ( ) ;
115- const onStop = jest . fn ( ) ;
116- const wrapper = getWrapper ( { onStart, onStop } ) ;
129+ const wrapper = getWrapper ( ) ;
117130
118131 act ( ( ) => {
119132 wrapper . simulate ( 'mousedown' , { buttons : 2 , clientX : 50 , clientY : 50 } ) ;
@@ -123,21 +136,19 @@ describe('RegionCreator', () => {
123136 jest . advanceTimersByTime ( 1000 ) ;
124137 wrapper . update ( ) ;
125138
126- expect ( onStart ) . not . toHaveBeenCalled ( ) ;
127- expect ( onStop ) . not . toHaveBeenCalled ( ) ;
139+ expect ( defaults . onStart ) . not . toHaveBeenCalled ( ) ;
140+ expect ( defaults . onStop ) . not . toHaveBeenCalled ( ) ;
128141 } ) ;
129142
130143 test ( 'should do nothing if the mouse is moved without being pressed over the wrapper first' , ( ) => {
131- const onStart = jest . fn ( ) ;
132- const onStop = jest . fn ( ) ;
133- const wrapper = getWrapper ( { onStart, onStop } ) ;
144+ const wrapper = getWrapper ( ) ;
134145
135146 simulateDrawMove ( 50 , 50 ) ;
136147 jest . advanceTimersByTime ( 1000 ) ;
137148 wrapper . update ( ) ;
138149
139- expect ( onStart ) . not . toHaveBeenCalled ( ) ;
140- expect ( onStop ) . not . toHaveBeenCalled ( ) ;
150+ expect ( defaults . onStart ) . not . toHaveBeenCalled ( ) ;
151+ expect ( defaults . onStop ) . not . toHaveBeenCalled ( ) ;
141152 } ) ;
142153
143154 test ( 'should prevent click events from surfacing to the parent document' , ( ) => {
@@ -218,33 +229,29 @@ describe('RegionCreator', () => {
218229 } ) ;
219230
220231 test ( 'should call the onStart and onStop callback when drawing starts and stops' , ( ) => {
221- const onStart = jest . fn ( ) ;
222- const onStop = jest . fn ( ) ;
223- const wrapper = getWrapper ( { onStart, onStop } ) ;
232+ const wrapper = getWrapper ( ) ;
224233
225234 simulateDrawStart ( wrapper , 50 , 50 ) ;
226235 simulateDrawMove ( wrapper , 100 , 100 ) ;
227236 simulateDrawStop ( wrapper ) ;
228237 jest . advanceTimersByTime ( 1000 ) ;
229238 wrapper . update ( ) ;
230239
231- expect ( onStart ) . toHaveBeenCalled ( ) ;
232- expect ( onStop ) . toHaveBeenCalledWith ( shape ) ;
240+ expect ( defaults . onStart ) . toHaveBeenCalled ( ) ;
241+ expect ( defaults . onStop ) . toHaveBeenCalledWith ( shape ) ;
233242 } ) ;
234243
235244 test ( 'should call the onStart and onStop callback even if drawing is cancelled' , ( ) => {
236- const onStart = jest . fn ( ) ;
237- const onStop = jest . fn ( ) ;
238- const wrapper = getWrapper ( { onStart, onStop } ) ;
245+ const wrapper = getWrapper ( ) ;
239246
240247 simulateDrawStart ( wrapper , 50 , 50 ) ;
241248 simulateDrawMove ( wrapper , 100 , 100 ) ;
242249 simulateDrawCancel ( wrapper ) ;
243250 jest . advanceTimersByTime ( 1000 ) ;
244251 wrapper . update ( ) ;
245252
246- expect ( onStart ) . toHaveBeenCalled ( ) ;
247- expect ( onStop ) . toHaveBeenCalledWith ( shape ) ;
253+ expect ( defaults . onStart ) . toHaveBeenCalled ( ) ;
254+ expect ( defaults . onStop ) . toHaveBeenCalledWith ( shape ) ;
248255 } ) ;
249256 } ) ;
250257
0 commit comments