Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 16542f3

Browse files
committed
add spikeline tests
- covering cases where `ax._subplotsWith.length > 1` and ax in question isn't at extremity of graph - covering cases for `anchor:'free'` axes - make other test use `Plotly.plot` instead of `newPlot`, to not purge the graph twice.
1 parent a7e8eaf commit 16542f3

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

test/jasmine/tests/hover_spikeline_test.js

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,120 @@ describe('spikeline hover', function() {
156156
.then(done);
157157
});
158158

159+
it('draws lines up to x-axis position', function(done) {
160+
Plotly.plot(gd, [
161+
{ y: [1, 2, 1] },
162+
{ y: [2, 1, 2], yaxis: 'y2' }
163+
], {
164+
// here the x-axis is drawn at the middle of the graph
165+
xaxis: { showspike: true, spikemode: 'toaxis' },
166+
yaxis: { domain: [0.5, 1] },
167+
yaxis2: { anchor: 'x', domain: [0, 0.5] },
168+
width: 400,
169+
height: 400
170+
})
171+
.then(function() {
172+
_hover({xval: 1, yval: 2});
173+
// from "y" of x-axis up to "y" of pt
174+
_assert([[189, 210.5, 189, 109.25]], []);
175+
})
176+
.then(function() { return Plotly.relayout(gd, 'xaxis.spikemode', 'across'); })
177+
.then(function() {
178+
_hover({xval: 1, yval: 2});
179+
// from "y" of xy subplot top, down to "y" xy2 subplot bottom
180+
_assert([[189, 100, 189, 320]], []);
181+
})
182+
.catch(failTest)
183+
.then(done);
184+
});
185+
186+
it('draws lines up to y-axis position - anchor free case', function(done) {
187+
Plotly.plot(gd, [
188+
{ y: [1, 2, 1] },
189+
{ y: [2, 1, 2], xaxis: 'x2' }
190+
], {
191+
yaxis: { domain: [0.5, 1] },
192+
xaxis2: {
193+
anchor: 'free', position: 0, overlaying: 'x',
194+
showspikes: true, spikemode: 'across'
195+
},
196+
width: 400,
197+
height: 400,
198+
showlegend: false
199+
})
200+
.then(function() {
201+
_hover({xval: 0, yval: 2}, 'x2y');
202+
// from "y" of pt, down to "y" of x2 axis
203+
_assert([[95.75, 100, 95.75, 320]], []);
204+
})
205+
.then(function() { return Plotly.relayout(gd, 'xaxis2.position', 0.6); })
206+
.then(function() {
207+
_hover({xval: 0, yval: 2}, 'x2y');
208+
// from "y" of pt, down to "y" of x axis (which is further down)
209+
_assert([[95.75, 100, 95.75, 210]], []);
210+
})
211+
.catch(failTest)
212+
.then(done);
213+
});
214+
215+
it('draws lines up to y-axis position', function(done) {
216+
Plotly.plot(gd, [
217+
{ y: [1, 2, 1] },
218+
{ y: [2, 1, 2], xaxis: 'x2' }
219+
], {
220+
// here the y-axis is drawn at the middle of the graph,
221+
// with xy subplot to the right and xy2 to the left
222+
yaxis: { showspike: true, spikemode: 'toaxis' },
223+
xaxis: { domain: [0.5, 1] },
224+
xaxis2: { anchor: 'y', domain: [0, 0.5] },
225+
width: 400,
226+
height: 400,
227+
showlegend: false
228+
})
229+
.then(function() {
230+
_hover({xval: 1, yval: 2});
231+
// from "x" of y-axis to "x" of pt
232+
_assert([[199.5, 114.75, 260, 114.75]], []);
233+
})
234+
.then(function() { return Plotly.relayout(gd, 'yaxis.spikemode', 'across'); })
235+
.then(function() {
236+
_hover({xval: 1, yval: 2});
237+
// from "x" at xy2 subplot left, to "x" at xy subplot right
238+
_assert([[80, 114.75, 320, 114.75]], []);
239+
})
240+
.catch(failTest)
241+
.then(done);
242+
});
243+
244+
it('draws lines up to y-axis position - anchor free case', function(done) {
245+
Plotly.plot(gd, [
246+
{ y: [1, 2, 1] },
247+
{ y: [2, 1, 2], yaxis: 'y2' }
248+
], {
249+
xaxis: { domain: [0.5, 1] },
250+
yaxis2: {
251+
anchor: 'free', position: 0, overlaying: 'y',
252+
showspikes: true, spikemode: 'across'
253+
},
254+
width: 400,
255+
height: 400,
256+
showlegend: false
257+
})
258+
.then(function() {
259+
_hover({xval: 0, yval: 2}, 'xy2');
260+
// from "x" of y2 axis to "x" of pt
261+
_assert([[80, 114.75, 320, 114.75]], []);
262+
})
263+
.then(function() { return Plotly.relayout(gd, 'yaxis2.position', 0.6); })
264+
.then(function() {
265+
_hover({xval: 0, yval: 2}, 'xy2');
266+
// from "x" of y axis (which is further left) to "x" of pt
267+
_assert([[200, 114.75, 320, 114.75]], []);
268+
})
269+
.catch(failTest)
270+
.then(done);
271+
});
272+
159273
it('draws lines and markers on enabled axes in the spikesnap "cursor" mode', function(done) {
160274
var _mock = makeMock('toaxis', 'x');
161275

0 commit comments

Comments
 (0)