@@ -1827,6 +1827,42 @@ describe('hover info', function () {
18271827 } )
18281828 . then ( done , done . fail ) ;
18291829 } ) ;
1830+
1831+ it ( 'should emit event data with the expected keys and values' , function ( done ) {
1832+ var hoverData ;
1833+ gd . on ( 'plotly_hover' , function ( d ) {
1834+ hoverData = d ;
1835+ } ) ;
1836+
1837+ Promise . resolve ( )
1838+ . then ( function ( ) {
1839+ _hoverNatural ( gd , 250 , 200 ) ;
1840+ } )
1841+ . then ( function ( ) {
1842+ expect ( Object . keys ( hoverData ) . sort ( ) ) . toEqual (
1843+ [ 'event' , 'points' , 'xaxes' , 'yaxes' , 'xvals' , 'yvals' , 'xPixel' , 'yPixel' ] . sort ( )
1844+ ) ;
1845+
1846+ expect ( hoverData . event ) . not . toBe ( null ) ;
1847+ var pt = hoverData . points [ 0 ] ;
1848+ expect ( Object . keys ( pt ) . sort ( ) ) . toEqual ( [
1849+ 'data' , 'fullData' , 'curveNumber' , 'pointNumber' , 'pointIndex' ,
1850+ 'bbox' , 'label' , 'value' ,
1851+ 'x' , 'y' , 'xaxis' , 'yaxis' , 'xPixel' , 'yPixel'
1852+ ] . sort ( ) ) ;
1853+ expect ( pt . curveNumber ) . toEqual ( 0 ) ;
1854+ expect ( pt . pointNumber ) . toEqual ( 1 ) ;
1855+ expect ( pt . x ) . toEqual ( 2 ) ;
1856+ expect ( pt . y ) . toEqual ( 3 ) ;
1857+ expect ( hoverData . xvals ) . toEqual ( [ 2.2045454545454546 ] ) ;
1858+ expect ( hoverData . yvals ) . toEqual ( [ 0.28708133971291905 ] ) ;
1859+ expect ( hoverData . xaxes ) . toEqual ( [ gd . _fullLayout . xaxis ] ) ;
1860+ expect ( hoverData . yaxes ) . toEqual ( [ gd . _fullLayout . yaxis ] ) ;
1861+ expect ( hoverData . xPixel ) . toEqual ( 330 ) ;
1862+ expect ( hoverData . yPixel ) . toEqual ( 300 ) ;
1863+ } )
1864+ . then ( done , done . fail ) ;
1865+ } ) ;
18301866 } ) ;
18311867
18321868 describe ( 'overflowing hover labels' , function ( ) {
0 commit comments