Skip to content

Commit e8865bc

Browse files
committed
add scatterpolar hover label tests
1 parent e8aec86 commit e8865bc

File tree

2 files changed

+81
-9
lines changed

2 files changed

+81
-9
lines changed

src/traces/scatterpolar/hover.js

-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
1919
var newPointData = scatterPointData[0];
2020

2121
// hovering on fill case
22-
// TODO do we need to constrain the scatter point data further (like for
23-
// ternary subplots) or not?
2422
if(newPointData.index === undefined) {
2523
return scatterPointData;
2624
}

test/jasmine/tests/scatterpolar_test.js

+81-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
1-
// var Plotly = require('@lib');
2-
// var Lib = require('@src/lib');
1+
var Plotly = require('@lib');
2+
var Lib = require('@src/lib');
33
var ScatterPolar = require('@src/traces/scatterpolar');
44

5+
var createGraphDiv = require('../assets/create_graph_div');
6+
var destroyGraphDiv = require('../assets/destroy_graph_div');
7+
var fail = require('../assets/fail_test');
8+
var mouseEvent = require('../assets/mouse_event');
9+
10+
var customAssertions = require('../assets/custom_assertions');
11+
var assertHoverLabelContent = customAssertions.assertHoverLabelContent;
12+
513
describe('Test scatterpolar trace defaults:', function() {
614
var traceOut;
715

@@ -31,14 +39,80 @@ describe('Test scatterpolar trace defaults:', function() {
3139
});
3240
});
3341

34-
describe('Test scatterpolar calc:', function() {
42+
describe('Test scatterpolar hover:', function() {
43+
var gd;
44+
45+
afterEach(destroyGraphDiv);
3546

36-
});
47+
function run(specs) {
48+
gd = createGraphDiv();
3749

38-
describe('Test scatterpolar hover:', function() {
39-
// gd;
50+
var fig = Lib.extendDeep(
51+
{width: 700, height: 500},
52+
specs.mock || require('@mocks/polar_scatter.json')
53+
);
4054

41-
it('', function() {
55+
if(specs.patch) {
56+
fig = specs.patch(fig);
57+
}
4258

59+
var pos = specs.pos || [200, 200];
60+
61+
return Plotly.plot(gd, fig).then(function() {
62+
mouseEvent('mousemove', pos[0], pos[1]);
63+
assertHoverLabelContent(specs);
64+
});
65+
}
66+
67+
[{
68+
desc: 'base',
69+
nums: 'r: 4.022892\nθ: 128.342°',
70+
name: 'Trial 3'
71+
}, {
72+
desc: '(no labels - out of sector)',
73+
patch: function(fig) {
74+
fig.layout.polar.sector = [15, 75];
75+
return fig;
76+
},
77+
pos: [144, 350],
78+
nums: '',
79+
name: ''
80+
}, {
81+
desc: 'on a `thetaunit: radians` polar subplot',
82+
patch: function(fig) {
83+
fig.layout.polar.angularaxis.thetaunit = 'radians';
84+
return fig;
85+
},
86+
nums: 'r: 4.022892\nθ: 2.239991',
87+
name: 'Trial 3'
88+
}, {
89+
desc: 'on work on log radial axis',
90+
patch: function(fig) {
91+
fig.layout.polar.radialaxis.type = 'log';
92+
return fig;
93+
},
94+
nums: 'r: 1.108937\nθ: 115.4969°',
95+
name: 'Trial 3'
96+
}, {
97+
desc: 'on fills',
98+
mock: require('@mocks/polar_fills.json'),
99+
pos: [300, 230],
100+
nums: 'trace 2',
101+
name: ''
102+
}, {
103+
desc: 'on category axes',
104+
mock: require('@mocks/polar_categories.json'),
105+
patch: function(fig) {
106+
fig.data.forEach(function(t) { t.fill = 'none'; });
107+
return fig;
108+
},
109+
pos: [465, 90],
110+
nums: 'r: 4\nθ: d',
111+
name: 'angular cate...'
112+
}]
113+
.forEach(function(specs) {
114+
it('should generate correct hover labels ' + specs.desc, function(done) {
115+
run(specs).catch(fail).then(done);
116+
});
43117
});
44118
});

0 commit comments

Comments
 (0)