@@ -6,6 +6,8 @@ var d3 = require('d3');
6
6
var createGraphDiv = require ( '../assets/create_graph_div' ) ;
7
7
var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
8
8
var supplyAllDefaults = require ( '../assets/supply_defaults' ) ;
9
+ var hover = require ( '../assets/hover' ) ;
10
+ var assertHoverLabelContent = require ( '../assets/custom_assertions' ) . assertHoverLabelContent ;
9
11
var failTest = require ( '../assets/fail_test' ) ;
10
12
11
13
var mock0 = {
@@ -426,15 +428,22 @@ describe('finance charts calc', function() {
426
428
addJunk ( trace1 ) ;
427
429
428
430
var out = _calcRaw ( [ trace0 , trace1 ] ) ;
429
- var indices = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ;
431
+ var indices = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , undefined , undefined , undefined , undefined ] ;
430
432
var i = 'increasing' ;
431
433
var d = 'decreasing' ;
432
- var directions = [ i , d , d , i , d , i , d , i ] ;
434
+ var directions = [ i , d , d , i , d , i , d , i , undefined , undefined , undefined , undefined ] ;
435
+ var empties = [
436
+ undefined , undefined , undefined , undefined ,
437
+ undefined , undefined , undefined , undefined ,
438
+ true , true , true , true
439
+ ] ;
433
440
434
441
expect ( mapGet ( out [ 0 ] , 'pos' ) ) . toEqual ( indices ) ;
435
442
expect ( mapGet ( out [ 0 ] , 'dir' ) ) . toEqual ( directions ) ;
436
443
expect ( mapGet ( out [ 1 ] , 'pos' ) ) . toEqual ( indices ) ;
437
444
expect ( mapGet ( out [ 1 ] , 'dir' ) ) . toEqual ( directions ) ;
445
+ expect ( mapGet ( out [ 0 ] , 'empty' ) ) . toEqual ( empties ) ;
446
+ expect ( mapGet ( out [ 1 ] , 'empty' ) ) . toEqual ( empties ) ;
438
447
} ) ;
439
448
440
449
it ( 'should work with *filter* transforms' , function ( ) {
@@ -1186,3 +1195,54 @@ describe('finance trace hover:', function() {
1186
1195
} ) ;
1187
1196
} ) ;
1188
1197
} ) ;
1198
+
1199
+ describe ( 'finance trace hover via Fx.hover():' , function ( ) {
1200
+ var gd ;
1201
+
1202
+ beforeEach ( function ( ) { gd = createGraphDiv ( ) ; } ) ;
1203
+
1204
+ afterEach ( destroyGraphDiv ) ;
1205
+
1206
+ [ 'candlestick' , 'ohlc' ] . forEach ( function ( type ) {
1207
+ it ( 'should pick correct ' + type + ' item' , function ( done ) {
1208
+ var x = [ 'hover ok!' , 'time2' , 'hover off by 1' , 'time4' ] ;
1209
+
1210
+ Plotly . newPlot ( gd , [ {
1211
+ x : x ,
1212
+ high : [ 6 , null , 7 , 8 ] ,
1213
+ close : [ 4 , null , 7 , 8 ] ,
1214
+ low : [ 5 , null , 7 , 8 ] ,
1215
+ open : [ 3 , null , 7 , 8 ] ,
1216
+ type : type
1217
+ } , {
1218
+ x : x ,
1219
+ y : [ 1 , null , 2 , 3 ] ,
1220
+ type : 'bar'
1221
+ } ] , {
1222
+ xaxis : { rangeslider : { visible : false } } ,
1223
+ width : 500 ,
1224
+ height : 500
1225
+ } )
1226
+ . then ( function ( ) {
1227
+ gd . on ( 'plotly_hover' , function ( d ) {
1228
+ Plotly . Fx . hover ( gd , [
1229
+ { curveNumber : 0 , pointNumber : d . points [ 0 ] . pointNumber } ,
1230
+ { curveNumber : 1 , pointNumber : d . points [ 0 ] . pointNumber }
1231
+ ] ) ;
1232
+ } ) ;
1233
+ } )
1234
+ . then ( function ( ) { hover ( 281 , 252 ) ; } )
1235
+ . then ( function ( ) {
1236
+ assertHoverLabelContent ( {
1237
+ nums : [
1238
+ 'hover off by 1\nopen: 7\nhigh: 7\nlow: 7\nclose: 7 ▲' ,
1239
+ '(hover off by 1, 2)'
1240
+ ] ,
1241
+ name : [ 'trace 0' , 'trace 1' ]
1242
+ } , 'hover over 3rd items (aka 2nd visible items)' ) ;
1243
+ } )
1244
+ . catch ( failTest )
1245
+ . then ( done ) ;
1246
+ } ) ;
1247
+ } ) ;
1248
+ } ) ;
0 commit comments