@@ -1191,9 +1191,9 @@ describe('bar hover', function() {
1191
1191
} ;
1192
1192
}
1193
1193
1194
- function _hover ( gd , xval , yval , closest ) {
1194
+ function _hover ( gd , xval , yval , hovermode ) {
1195
1195
var pointData = getPointData ( gd ) ;
1196
- var pt = Bar . hoverPoints ( pointData , xval , yval , closest ) [ 0 ] ;
1196
+ var pt = Bar . hoverPoints ( pointData , xval , yval , hovermode ) [ 0 ] ;
1197
1197
1198
1198
return {
1199
1199
style : [ pt . index , pt . color , pt . xLabelVal , pt . yLabelVal ] ,
@@ -1274,6 +1274,66 @@ describe('bar hover', function() {
1274
1274
} ) ;
1275
1275
} ) ;
1276
1276
1277
+ describe ( 'with special width/offset combinations' , function ( ) {
1278
+
1279
+ beforeEach ( function ( ) {
1280
+ gd = createGraphDiv ( ) ;
1281
+ } ) ;
1282
+
1283
+ it ( 'should return correct \'closest\' hover data (single bar, trace width)' , function ( done ) {
1284
+ Plotly . plot ( gd , [ {
1285
+ type : 'bar' ,
1286
+ x : [ 1 ] ,
1287
+ y : [ 2 ] ,
1288
+ width : 10 ,
1289
+ marker : { color : 'red' }
1290
+ } ] , {
1291
+ xaxis : { range : [ - 200 , 200 ] }
1292
+ } )
1293
+ . then ( function ( ) {
1294
+ var out = _hover ( gd , 0 , 0 , 'closest' ) ;
1295
+
1296
+ expect ( out . style ) . toEqual ( [ 0 , 'red' , 1 , 2 ] ) ;
1297
+ assertPos ( out . pos , [ 264 , 278 , 14 , 14 ] ) ;
1298
+ } )
1299
+ . then ( done ) ;
1300
+ } ) ;
1301
+
1302
+ it ( 'should return correct \'closest\' hover data (two bars, array width)' , function ( done ) {
1303
+ Plotly . plot ( gd , [ {
1304
+ type : 'bar' ,
1305
+ x : [ 1 , 200 ] ,
1306
+ y : [ 2 , 1 ] ,
1307
+ width : [ 10 , 20 ] ,
1308
+ marker : { color : 'red' }
1309
+ } , {
1310
+ type : 'bar' ,
1311
+ x : [ 1 , 200 ] ,
1312
+ y : [ 1 , 2 ] ,
1313
+ width : [ 20 , 10 ] ,
1314
+ marker : { color : 'green' }
1315
+ } ] , {
1316
+ xaxis : { range : [ - 200 , 300 ] } ,
1317
+ width : 500 ,
1318
+ height : 500
1319
+ } )
1320
+ . then ( function ( ) {
1321
+ var out = _hover ( gd , - 36 , 1.5 , 'closest' ) ;
1322
+
1323
+ expect ( out . style ) . toEqual ( [ 0 , 'red' , 1 , 2 ] ) ;
1324
+ assertPos ( out . pos , [ 99 , 106 , 13 , 13 ] ) ;
1325
+ } )
1326
+ . then ( function ( ) {
1327
+ var out = _hover ( gd , 164 , 0.8 , 'closest' ) ;
1328
+
1329
+ expect ( out . style ) . toEqual ( [ 1 , 'red' , 200 , 1 ] ) ;
1330
+ assertPos ( out . pos , [ 222 , 235 , 168 , 168 ] ) ;
1331
+ } )
1332
+ . then ( done ) ;
1333
+ } ) ;
1334
+
1335
+ } ) ;
1336
+
1277
1337
} ) ;
1278
1338
1279
1339
function mockBarPlot ( dataWithoutTraceType , layout ) {
0 commit comments