it('does not render if hover is set to none', function() { var gd = document.getElementById('graph'); Fx.hover('graph', evt, 'xy'); var hoverTrace = gd._hoverdata[0]; expect(hoverTrace.curveNumber).toEqual(0); expect(hoverTrace.pointNumber).toEqual(17); expect(hoverTrace.x).toEqual(0.388); expect(hoverTrace.y).toEqual(1); expect(d3.selectAll('g.axistext').size()).toEqual(0); expect(d3.selectAll('g.hovertext').size()).toEqual(0); });
it('responds to hover y', function() { var gd = document.getElementById('graph'); Fx.hover('graph', evt, 'xy'); var hoverTrace = gd._hoverdata[0]; expect(hoverTrace.curveNumber).toEqual(0); expect(hoverTrace.pointNumber).toEqual(17); expect(hoverTrace.x).toEqual(0.388); expect(hoverTrace.y).toEqual(1); expect(d3.selectAll('g.axistext').size()).toEqual(0); expect(d3.selectAll('g.hovertext').size()).toEqual(1); expect(d3.selectAll('g.hovertext').select('text').html()).toEqual('1'); });
it('render hover labels of the above trace', function() { Fx.hover('graph', evt, 'xy'); expect(gd._hoverdata.length).toEqual(1); var hoverTrace = gd._hoverdata[0]; expect(hoverTrace.fullData.index).toEqual(1); expect(hoverTrace.curveNumber).toEqual(1); expect(hoverTrace.pointNumber).toEqual(16); expect(hoverTrace.x).toEqual(0.33); expect(hoverTrace.y).toEqual(1.25); expect(d3.selectAll('g.axistext').size()).toEqual(0); expect(d3.selectAll('g.hovertext').size()).toEqual(1); var expectations = ['PV learning ...', '(0.33, 1.25)']; d3.selectAll('g.hovertext').selectAll('text').each(function(_, i) { expect(d3.select(this).html()).toEqual(expectations[i]); }); });
Plotly.restyle(gd, 'hoverinfo', ['none', 'name']).then(function() { Fx.hover('graph', evt, 'xy'); expect(gd._hoverdata.length).toEqual(1); var hoverTrace = gd._hoverdata[0]; expect(hoverTrace.fullData.index).toEqual(1); expect(hoverTrace.curveNumber).toEqual(1); expect(hoverTrace.pointNumber).toEqual(16); expect(hoverTrace.x).toEqual(0.33); expect(hoverTrace.y).toEqual(1.25); expect(d3.selectAll('g.axistext').size()).toEqual(0); expect(d3.selectAll('g.hovertext').size()).toEqual(1); var text = d3.selectAll('g.hovertext').select('text'); expect(text.size()).toEqual(1); expect(text.html()).toEqual('PV learning ...'); done(); });
it('responds to hover x+text', function() { Fx.hover('graph', evt, 'xy'); expect(d3.selectAll('g.axistext').size()).toEqual(1); expect(d3.selectAll('g.axistext').select('text').html()).toEqual('0.388'); });