@@ -440,3 +440,83 @@ describe('axis zoom/pan and main plot zoom', function() {
440
440
. then ( done ) ;
441
441
} ) ;
442
442
} ) ;
443
+
444
+ describe ( 'Event data:' , function ( ) {
445
+ var gd ;
446
+
447
+ beforeEach ( function ( ) {
448
+ gd = createGraphDiv ( ) ;
449
+ } ) ;
450
+
451
+ afterEach ( destroyGraphDiv ) ;
452
+
453
+ function _hover ( px , py ) {
454
+ return new Promise ( function ( resolve , reject ) {
455
+ gd . once ( 'plotly_hover' , function ( d ) {
456
+ delete gd . _lastHoverTime ;
457
+ resolve ( d ) ;
458
+ } ) ;
459
+
460
+ mouseEvent ( 'mousemove' , px , py ) ;
461
+
462
+ setTimeout ( function ( ) {
463
+ reject ( 'plotly_hover did not get called!' ) ;
464
+ } , 100 ) ;
465
+ } ) ;
466
+ }
467
+
468
+ it ( 'should have correct content for *scatter* traces' , function ( done ) {
469
+ Plotly . plot ( gd , [ {
470
+ y : [ 1 , 2 , 1 ] ,
471
+ marker : {
472
+ color : [ 20 , 30 , 10 ] ,
473
+ colorbar : {
474
+ tickvals : [ 25 ] ,
475
+ ticktext : [ 'one single tick' ]
476
+ }
477
+ }
478
+ } ] , {
479
+ width : 500 ,
480
+ height : 500
481
+ } )
482
+ . then ( function ( ) { return _hover ( 200 , 200 ) ; } )
483
+ . then ( function ( d ) {
484
+ var pt = d . points [ 0 ] ;
485
+
486
+ expect ( pt . y ) . toBe ( 2 , 'y' ) ;
487
+ expect ( pt [ 'marker.color' ] ) . toBe ( 30 , 'marker.color' ) ;
488
+ expect ( 'marker.colorbar.tickvals' in pt ) . toBe ( false , 'marker.colorbar.tickvals' ) ;
489
+ expect ( 'marker.colorbar.ticktext' in pt ) . toBe ( false , 'marker.colorbar.ticktext' ) ;
490
+ } )
491
+ . catch ( fail )
492
+ . then ( done ) ;
493
+ } ) ;
494
+
495
+ it ( 'should have correct content for *heatmap* traces' , function ( done ) {
496
+ Plotly . plot ( gd , [ {
497
+ type : 'heatmap' ,
498
+ z : [ [ 1 , 2 , 1 ] , [ 2 , 3 , 1 ] ] ,
499
+ colorbar : {
500
+ tickvals : [ 2 ] ,
501
+ ticktext : [ 'one single tick' ]
502
+ } ,
503
+ text : [ [ 'incomplete array' ] ] ,
504
+ ids : [ [ 'incomplete array' ] ]
505
+ } ] , {
506
+ width : 500 ,
507
+ height : 500
508
+ } )
509
+ . then ( function ( ) { return _hover ( 200 , 200 ) ; } )
510
+ . then ( function ( d ) {
511
+ var pt = d . points [ 0 ] ;
512
+
513
+ expect ( pt . z ) . toBe ( 3 , 'z' ) ;
514
+ expect ( pt . text ) . toBe ( undefined , 'undefined text items are included' ) ;
515
+ expect ( 'id' in pt ) . toBe ( false , 'undefined ids items are not included' ) ;
516
+ expect ( 'marker.colorbar.tickvals' in pt ) . toBe ( false , 'marker.colorbar.tickvals' ) ;
517
+ expect ( 'marker.colorbar.ticktext' in pt ) . toBe ( false , 'marker.colorbar.ticktext' ) ;
518
+ } )
519
+ . catch ( fail )
520
+ . then ( done ) ;
521
+ } ) ;
522
+ } ) ;
0 commit comments