Skip to content

Commit 73290c9

Browse files
committed
add test for unified hover filtering close points
1 parent 97a8aef commit 73290c9

File tree

1 file changed

+127
-10
lines changed

1 file changed

+127
-10
lines changed

test/jasmine/tests/hover_label_test.js

Lines changed: 127 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4728,27 +4728,144 @@ describe('hovermode: (x|y)unified', function() {
47284728
.then(done, done.fail);
47294729
});
47304730

4731-
it('shares filtering logic with compare mode x', function(done) {
4731+
it('filtering logic for compare mode x', function(done) {
47324732
var mock = require('@mocks/27.json');
47334733
var mockCopy = Lib.extendDeep({}, mock);
47344734

47354735
Plotly.newPlot(gd, mockCopy)
47364736
.then(function(gd) {
47374737
_hover(gd, { xval: '2002' });
47384738
assertElementCount('g.hovertext', 2);
4739-
4740-
return Plotly.relayout(gd, 'hovermode', 'x unified');
4741-
})
4742-
.then(function() {
4743-
_hover(gd, { xval: '2002' });
4744-
assertLabel({title: '2002.042', items: [
4745-
'Market income : 0.5537845',
4746-
'Market incom... : 0.4420997'
4747-
]});
47484739
})
47494740
.then(done, done.fail);
47504741
});
47514742

4743+
it('x unified should include close points and filter multiple points from the same trace', function(done) {
4744+
Plotly.newPlot(gd, {
4745+
data: [
4746+
{
4747+
type: 'bar',
4748+
name: 'bar',
4749+
x: [
4750+
'2017-04',
4751+
'2017-07',
4752+
'2017-10',
4753+
'2018-01'
4754+
],
4755+
xperiod: 'M3',
4756+
y: [10, 5, 10, 5]
4757+
},
4758+
{
4759+
type: 'scatter',
4760+
name: 'scatter',
4761+
x: [
4762+
'2017-01-01',
4763+
'2017-02-01',
4764+
'2017-03-01',
4765+
'2017-04-01',
4766+
'2017-05-01',
4767+
'2017-06-01',
4768+
'2017-07-01',
4769+
'2017-08-01',
4770+
'2017-09-01',
4771+
'2017-10-01',
4772+
'2017-11-01',
4773+
'2017-12-01'
4774+
],
4775+
y: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
4776+
}
4777+
],
4778+
layout: {
4779+
hovermode: 'x unified',
4780+
showlegend: false,
4781+
width: 500,
4782+
height: 500,
4783+
margin: {
4784+
t: 50,
4785+
b: 50,
4786+
l: 50,
4787+
r: 50
4788+
}
4789+
}
4790+
})
4791+
.then(function(gd) {
4792+
_hover(gd, { xpx: 25, ypx: 250 });
4793+
assertLabel({title: 'Jan 1, 2017', items: [
4794+
'scatter : 1'
4795+
]});
4796+
4797+
_hover(gd, { xpx: 50, ypx: 250 });
4798+
assertLabel({title: 'Feb 1, 2017', items: [
4799+
'scatter : 2'
4800+
]});
4801+
4802+
_hover(gd, { xpx: 75, ypx: 250 });
4803+
assertLabel({title: 'Mar 1, 2017', items: [
4804+
'scatter : 3'
4805+
]});
4806+
4807+
_hover(gd, { xpx: 100, ypx: 250 });
4808+
assertLabel({title: 'Apr 1, 2017', items: [
4809+
'bar : 10',
4810+
'scatter : 4'
4811+
]});
4812+
4813+
_hover(gd, { xpx: 125, ypx: 250 });
4814+
assertLabel({title: 'May 1, 2017', items: [
4815+
'bar : (Apr 1, 2017, 10)',
4816+
'scatter : 5'
4817+
]});
4818+
4819+
_hover(gd, { xpx: 150, ypx: 250 });
4820+
assertLabel({title: 'Jun 1, 2017', items: [
4821+
'bar : (Apr 1, 2017, 10)',
4822+
'scatter : 6'
4823+
]});
4824+
4825+
_hover(gd, { xpx: 175, ypx: 250 });
4826+
assertLabel({title: 'Jul 1, 2017', items: [
4827+
'bar : 5',
4828+
'scatter : 7'
4829+
]});
4830+
4831+
_hover(gd, { xpx: 200, ypx: 250 });
4832+
assertLabel({title: 'Aug 1, 2017', items: [
4833+
'bar : (Jul 1, 2017, 5)',
4834+
'scatter : 8'
4835+
]});
4836+
4837+
_hover(gd, { xpx: 225, ypx: 250 });
4838+
assertLabel({title: 'Sep 1, 2017', items: [
4839+
'bar : (Jul 1, 2017, 5)',
4840+
'scatter : 9'
4841+
]});
4842+
4843+
_hover(gd, { xpx: 250, ypx: 250 });
4844+
assertLabel({title: 'Oct 1, 2017', items: [
4845+
'bar : 10',
4846+
'scatter : 10'
4847+
]});
4848+
4849+
_hover(gd, { xpx: 275, ypx: 250 });
4850+
assertLabel({title: 'Nov 1, 2017', items: [
4851+
'bar : (Oct 1, 2017, 10)',
4852+
'scatter : 11'
4853+
]});
4854+
4855+
_hover(gd, { xpx: 300, ypx: 250 });
4856+
assertLabel({title: 'Dec 1, 2017', items: [
4857+
'bar : (Oct 1, 2017, 10)',
4858+
'scatter : 12'
4859+
]});
4860+
4861+
_hover(gd, { xpx: 350, ypx: 250 });
4862+
assertLabel({title: 'Jan 1, 2018', items: [
4863+
'bar : 5'
4864+
]});
4865+
})
4866+
.then(done, done.fail);
4867+
});
4868+
47524869
it('should have the same traceorder as the legend', function(done) {
47534870
var mock = require('@mocks/stacked_area.json');
47544871
var mockCopy = Lib.extendDeep({}, mock);

0 commit comments

Comments
 (0)