1
1
var Plotly = require ( '@src/plotly' ) ;
2
+ var Events = require ( '@src/lib/events' ) ;
2
3
var createGraphDiv = require ( '../assets/create_graph_div' ) ;
3
4
var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
4
5
@@ -29,6 +30,64 @@ describe('Plotly.___ methods', function() {
29
30
} ) ;
30
31
} ) ;
31
32
33
+ describe ( 'Plotly.plot promise' , function ( ) {
34
+ var gd ,
35
+ promise ,
36
+ promiseRejected = false ;
37
+
38
+ beforeEach ( function ( done ) {
39
+ var data = [ { x : [ 1 , 2 , 3 ] , y : [ 4 , 5 , 6 ] } ] ;
40
+
41
+ gd = createGraphDiv ( ) ;
42
+
43
+ Events . init ( gd ) ;
44
+
45
+ gd . on ( 'plotly_beforeplot' , function ( ) {
46
+ return false ;
47
+ } ) ;
48
+
49
+ promise = Plotly . plot ( gd , data , { } ) ;
50
+
51
+ promise . then ( null , function ( ) {
52
+ promiseRejected = true ;
53
+ done ( ) ;
54
+ } ) ;
55
+ } ) ;
56
+
57
+ afterEach ( destroyGraphDiv ) ;
58
+
59
+ it ( 'should be rejected when plotly_beforeplot event handlers return false' , function ( ) {
60
+ expect ( promiseRejected ) . toBe ( true ) ;
61
+ } ) ;
62
+ } ) ;
63
+
64
+ describe ( 'Plotly.plot promise' , function ( ) {
65
+ var gd ,
66
+ promise ,
67
+ promiseRejected = false ;
68
+
69
+ beforeEach ( function ( done ) {
70
+ var data = [ { x : [ 1 , 2 , 3 ] , y : [ 4 , 5 , 6 ] } ] ;
71
+
72
+ gd = createGraphDiv ( ) ;
73
+
74
+ gd . _dragging = true ;
75
+
76
+ promise = Plotly . plot ( gd , data , { } ) ;
77
+
78
+ promise . then ( null , function ( ) {
79
+ promiseRejected = true ;
80
+ done ( ) ;
81
+ } ) ;
82
+ } ) ;
83
+
84
+ afterEach ( destroyGraphDiv ) ;
85
+
86
+ it ( 'should reject the promise when graph is being dragged' , function ( ) {
87
+ expect ( promiseRejected ) . toBe ( true ) ;
88
+ } ) ;
89
+ } ) ;
90
+
32
91
describe ( 'Plotly.redraw promise' , function ( ) {
33
92
var promise ,
34
93
promiseGd ;
@@ -272,17 +331,42 @@ describe('Plotly.___ methods', function() {
272
331
} ) ;
273
332
} ) ;
274
333
334
+ describe ( 'Plotly.restyle promise' , function ( ) {
335
+ var promise ,
336
+ promiseRejected = false ;
337
+
338
+ beforeEach ( function ( done ) {
339
+ var data = [ { x : [ 1 , 2 , 3 ] , y : [ 4 , 5 , 6 ] } ] ,
340
+ initialDiv = createGraphDiv ( ) ;
341
+
342
+ Plotly . plot ( initialDiv , data , { } ) ;
343
+
344
+ promise = Plotly . restyle ( initialDiv , undefined , '' ) ;
345
+
346
+ promise . then ( null , function ( ) {
347
+ promiseRejected = true ;
348
+ done ( ) ;
349
+ } ) ;
350
+ } ) ;
351
+ afterEach ( destroyGraphDiv ) ;
352
+
353
+ it ( 'should be rejected when the attribute is missing' , function ( ) {
354
+ expect ( promiseRejected ) . toBe ( true ) ;
355
+ } ) ;
356
+ } ) ;
357
+
275
358
describe ( 'Plotly.relayout promise' , function ( ) {
276
359
var promise ,
277
360
promiseGd ;
278
361
279
362
beforeEach ( function ( done ) {
280
363
var data = [ { x : [ 1 , 2 , 3 ] , y : [ 4 , 5 , 6 ] } ] ,
364
+ layout = { hovermode :'closest' } ,
281
365
initialDiv = createGraphDiv ( ) ;
282
366
283
- Plotly . plot ( initialDiv , data , { } ) ;
367
+ Plotly . plot ( initialDiv , data , layout ) ;
284
368
285
- promise = Plotly . relayout ( initialDiv , 'title ' , 'Promise test!' ) ;
369
+ promise = Plotly . relayout ( initialDiv , 'hovermode ' , false ) ;
286
370
287
371
promise . then ( function ( gd ) {
288
372
promiseGd = gd ;
@@ -299,4 +383,85 @@ describe('Plotly.___ methods', function() {
299
383
} ) ;
300
384
} ) ;
301
385
386
+ describe ( 'Plotly.relayout promise' , function ( ) {
387
+ var promise ,
388
+ promiseGd ;
389
+
390
+ beforeEach ( function ( done ) {
391
+ var data = [ { x : [ 1 , 2 , 3 ] , y : [ 4 , 5 , 6 ] } ] ,
392
+ layout = { hovermode :'closest' } ,
393
+ initialDiv = createGraphDiv ( ) ;
394
+
395
+ Plotly . plot ( initialDiv , data , layout ) ;
396
+
397
+ promise = Plotly . relayout ( initialDiv , 'hovermode' , false ) ;
398
+
399
+ promise . then ( function ( gd ) {
400
+ promiseGd = gd ;
401
+ done ( ) ;
402
+ } ) ;
403
+ } ) ;
404
+ afterEach ( destroyGraphDiv ) ;
405
+
406
+ it ( 'should be returned with the graph div as an argument' , function ( ) {
407
+ expect ( promiseGd ) . toBeDefined ( ) ;
408
+ expect ( typeof promiseGd ) . toBe ( 'object' ) ;
409
+ expect ( promiseGd . data ) . toBeDefined ( ) ;
410
+ expect ( promiseGd . layout ) . toBeDefined ( ) ;
411
+ } ) ;
412
+ } ) ;
413
+
414
+ describe ( 'Plotly.relayout promise' , function ( ) {
415
+ var promise ,
416
+ promiseGd ;
417
+
418
+ beforeEach ( function ( done ) {
419
+ var data = [ { x : [ 1 , 2 , 3 ] , y : [ 4 , 5 , 6 ] } ] ,
420
+ layout = { hovermode :'closest' } ,
421
+ initialDiv = createGraphDiv ( ) ;
422
+
423
+ Plotly . plot ( initialDiv , data , layout ) ;
424
+
425
+ initialDiv . framework = { isPolar : true } ;
426
+ promise = Plotly . relayout ( initialDiv , 'hovermode' , false ) ;
427
+
428
+ promise . then ( function ( gd ) {
429
+ promiseGd = gd ;
430
+ done ( ) ;
431
+ } ) ;
432
+ } ) ;
433
+ afterEach ( destroyGraphDiv ) ;
434
+
435
+ it ( 'should be returned with the graph div unchanged when the framework is polar' , function ( ) {
436
+ expect ( promiseGd ) . toBeDefined ( ) ;
437
+ expect ( typeof promiseGd ) . toBe ( 'object' ) ;
438
+ expect ( promiseGd . changed ) . toBeFalsy ( ) ;
439
+ } ) ;
440
+ } ) ;
441
+
442
+ describe ( 'Plotly.relayout promise' , function ( ) {
443
+ var promise ,
444
+ promiseRejected = false ;
445
+
446
+ beforeEach ( function ( done ) {
447
+ var data = [ { x : [ 1 , 2 , 3 ] , y : [ 4 , 5 , 6 ] } ] ,
448
+ layout = { hovermode :'closest' } ,
449
+ initialDiv = createGraphDiv ( ) ;
450
+
451
+ Plotly . plot ( initialDiv , data , layout ) ;
452
+
453
+ promise = Plotly . relayout ( initialDiv , undefined , false ) ;
454
+
455
+ promise . then ( null , function ( ) {
456
+ promiseRejected = true ;
457
+ done ( ) ;
458
+ } ) ;
459
+ } ) ;
460
+ afterEach ( destroyGraphDiv ) ;
461
+
462
+ it ( 'should be rejected when the attribute is missing' , function ( ) {
463
+ expect ( promiseRejected ) . toBe ( true ) ;
464
+ } ) ;
465
+ } ) ;
466
+
302
467
} ) ;
0 commit comments