@@ -8,7 +8,7 @@ var mouseEvent = require('../assets/mouse_event');
8
8
var customMatchers = require ( '../assets/custom_matchers' ) ;
9
9
10
10
11
- describe ( 'click interactions' , function ( ) {
11
+ describe ( 'Test click interactions: ' , function ( ) {
12
12
var mock = require ( '@mocks/14.json' ) ,
13
13
gd ;
14
14
@@ -26,12 +26,15 @@ describe('click interactions', function() {
26
26
mouseEvent ( 'mouseup' , x , y ) ;
27
27
}
28
28
29
- function doubleClick ( x , y , cb ) {
30
- click ( x , y ) ;
31
- setTimeout ( function ( ) {
29
+ function doubleClick ( x , y ) {
30
+ return new Promise ( function ( resolve ) {
32
31
click ( x , y ) ;
33
- cb ( ) ;
34
- } , DBLCLICKDELAY / 2 ) ;
32
+
33
+ setTimeout ( function ( ) {
34
+ click ( x , y ) ;
35
+ resolve ( ) ;
36
+ } , DBLCLICKDELAY / 2 ) ;
37
+ } ) ;
35
38
}
36
39
37
40
describe ( 'click events' , function ( ) {
@@ -87,7 +90,7 @@ describe('click interactions', function() {
87
90
} ) ;
88
91
89
92
it ( 'should return null' , function ( done ) {
90
- doubleClick ( pointPos [ 0 ] , pointPos [ 1 ] , function ( ) {
93
+ doubleClick ( pointPos [ 0 ] , pointPos [ 1 ] ) . then ( function ( ) {
91
94
expect ( futureData ) . toBe ( null ) ;
92
95
done ( ) ;
93
96
} ) ;
@@ -113,9 +116,11 @@ describe('click interactions', function() {
113
116
'yaxis.range[1]' : zoomRangeY [ 1 ]
114
117
} ;
115
118
116
- beforeEach ( function ( ) {
119
+ beforeAll ( function ( ) {
117
120
jasmine . addMatchers ( customMatchers ) ;
121
+ } ) ;
118
122
123
+ beforeEach ( function ( ) {
119
124
gd = createGraphDiv ( ) ;
120
125
mockCopy = Lib . extendDeep ( { } , mock ) ;
121
126
} ) ;
@@ -139,12 +144,12 @@ describe('click interactions', function() {
139
144
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
140
145
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
141
146
142
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
143
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
144
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
147
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
148
+ } ) . then ( function ( ) {
149
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
150
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
145
151
146
- done ( ) ;
147
- } ) ;
152
+ done ( ) ;
148
153
} ) ;
149
154
} ) ;
150
155
} ) ;
@@ -156,17 +161,17 @@ describe('click interactions', function() {
156
161
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
157
162
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
158
163
159
- Plotly . relayout ( gd , update ) . then ( function ( ) {
160
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
161
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
164
+ return Plotly . relayout ( gd , update ) ;
165
+ } ) . then ( function ( ) {
166
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
167
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
162
168
163
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
164
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
165
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
169
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
170
+ } ) . then ( function ( ) {
171
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
172
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
166
173
167
- done ( ) ;
168
- } ) ;
169
- } ) ;
174
+ done ( ) ;
170
175
} ) ;
171
176
} ) ;
172
177
@@ -177,17 +182,54 @@ describe('click interactions', function() {
177
182
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
178
183
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
179
184
180
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
181
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
182
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
185
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
186
+ } ) . then ( function ( ) {
187
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
188
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
183
189
184
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
185
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
186
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
190
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
191
+ } ) . then ( function ( ) {
192
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
193
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
187
194
188
- done ( ) ;
189
- } ) ;
190
- } ) ;
195
+ done ( ) ;
196
+ } ) ;
197
+ } ) ;
198
+
199
+ it ( 'when set to \'reset+autorange\' (the default) should follow updated auto ranges' , function ( done ) {
200
+ var updateData = {
201
+ x : [ [ 1e-4 , 0 , 1e3 ] ] ,
202
+ y : [ [ 30 , 0 , 30 ] ]
203
+ } ;
204
+
205
+ var newAutoRangeX = [ - 4.482371794871794 , 3.4823717948717943 ] ,
206
+ newAutoRangeY = [ - 0.8892256657741471 , 1.6689872212461876 ] ;
207
+
208
+ Plotly . plot ( gd , mockCopy . data , mockCopy . layout ) . then ( function ( ) {
209
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
210
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
211
+
212
+ return Plotly . relayout ( gd , update ) ;
213
+ } ) . then ( function ( ) {
214
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
215
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
216
+
217
+ return Plotly . restyle ( gd , updateData ) ;
218
+ } ) . then ( function ( ) {
219
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
220
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
221
+
222
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
223
+ } ) . then ( function ( ) {
224
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( newAutoRangeX ) ;
225
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( newAutoRangeY ) ;
226
+
227
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
228
+ } ) . then ( function ( ) {
229
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( newAutoRangeX ) ;
230
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( newAutoRangeY ) ;
231
+
232
+ done ( ) ;
191
233
} ) ;
192
234
} ) ;
193
235
@@ -196,17 +238,17 @@ describe('click interactions', function() {
196
238
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
197
239
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
198
240
199
- Plotly . relayout ( gd , update ) . then ( function ( ) {
200
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
201
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
241
+ return Plotly . relayout ( gd , update ) ;
242
+ } ) . then ( function ( ) {
243
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
244
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
202
245
203
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
204
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
205
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
246
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
247
+ } ) . then ( function ( ) {
248
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
249
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
206
250
207
- done ( ) ;
208
- } ) ;
209
- } ) ;
251
+ done ( ) ;
210
252
} ) ;
211
253
} ) ;
212
254
@@ -217,17 +259,17 @@ describe('click interactions', function() {
217
259
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
218
260
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
219
261
220
- Plotly . relayout ( gd , update ) . then ( function ( ) {
221
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
222
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
262
+ return Plotly . relayout ( gd , update ) ;
263
+ } ) . then ( function ( ) {
264
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
265
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
223
266
224
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
225
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
226
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
267
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
268
+ } ) . then ( function ( ) {
269
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
270
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
227
271
228
- done ( ) ;
229
- } ) ;
230
- } ) ;
272
+ done ( ) ;
231
273
} ) ;
232
274
} ) ;
233
275
@@ -238,12 +280,12 @@ describe('click interactions', function() {
238
280
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
239
281
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
240
282
241
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
242
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
243
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
283
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
284
+ } ) . then ( function ( ) {
285
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
286
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
244
287
245
- done ( ) ;
246
- } ) ;
288
+ done ( ) ;
247
289
} ) ;
248
290
} ) ;
249
291
@@ -252,17 +294,17 @@ describe('click interactions', function() {
252
294
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
253
295
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
254
296
255
- Plotly . relayout ( gd , update ) . then ( function ( ) {
256
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
257
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
297
+ return Plotly . relayout ( gd , update ) ;
298
+ } ) . then ( function ( ) {
299
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
300
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
258
301
259
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
260
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
261
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
302
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
303
+ } ) . then ( function ( ) {
304
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
305
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
262
306
263
- done ( ) ;
264
- } ) ;
265
- } ) ;
307
+ done ( ) ;
266
308
} ) ;
267
309
} ) ;
268
310
@@ -273,17 +315,17 @@ describe('click interactions', function() {
273
315
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
274
316
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
275
317
276
- Plotly . relayout ( gd , update ) . then ( function ( ) {
277
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
278
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
318
+ return Plotly . relayout ( gd , update ) ;
319
+ } ) . then ( function ( ) {
320
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( zoomRangeX ) ;
321
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( zoomRangeY ) ;
279
322
280
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
281
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
282
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
323
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
324
+ } ) . then ( function ( ) {
325
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
326
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
283
327
284
- done ( ) ;
285
- } ) ;
286
- } ) ;
328
+ done ( ) ;
287
329
} ) ;
288
330
} ) ;
289
331
@@ -294,12 +336,12 @@ describe('click interactions', function() {
294
336
expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( setRangeX ) ;
295
337
expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( setRangeY ) ;
296
338
297
- doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] , function ( ) {
298
- expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
299
- expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
339
+ return doubleClick ( blankPos [ 0 ] , blankPos [ 1 ] ) ;
340
+ } ) . then ( function ( ) {
341
+ expect ( gd . layout . xaxis . range ) . toBeCloseToArray ( autoRangeX ) ;
342
+ expect ( gd . layout . yaxis . range ) . toBeCloseToArray ( autoRangeY ) ;
300
343
301
- done ( ) ;
302
- } ) ;
344
+ done ( ) ;
303
345
} ) ;
304
346
} ) ;
305
347
0 commit comments