Skip to content

Commit 0654245

Browse files
committed
test that event data has correct fields in bar, scatter, histogram
1 parent f75f2e0 commit 0654245

File tree

4 files changed

+57
-36
lines changed

4 files changed

+57
-36
lines changed
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
var Plotly = require('@lib/index');
2+
var createGraphDiv = require('../assets/create_graph_div');
3+
var destroyGraphDiv = require('../assets/destroy_graph_div');
4+
var Lib = require('@src/lib');
5+
6+
var hover = require('../assets/hover');
7+
8+
'use strict';
9+
10+
module.exports = function checkEventData(mock, x, y, additionalFields) {
11+
var mockCopy = Lib.extendDeep({}, mock),
12+
gd;
13+
14+
beforeEach(function(done) {
15+
gd = createGraphDiv();
16+
17+
Plotly.plot(gd, mockCopy.data, mockCopy.layout)
18+
.then(done);
19+
});
20+
21+
afterEach(destroyGraphDiv);
22+
23+
it('should contain the correct fields', function() {
24+
var hoverData;
25+
26+
gd.on('plotly_hover', function(data) {
27+
hoverData = data;
28+
});
29+
30+
hover(x, y);
31+
32+
var fields = [
33+
'curveNumber',
34+
'data', 'fullData',
35+
'xaxis', 'yaxis', 'x', 'y',
36+
].concat(additionalFields);
37+
38+
fields.forEach(function(field) {
39+
expect(Object.keys(hoverData.points[0])).toContain(field);
40+
});
41+
});
42+
};

test/jasmine/tests/bar_test.js

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ var failTest = require('../assets/fail_test');
1313
var checkTicks = require('../assets/custom_assertions').checkTicks;
1414
var supplyAllDefaults = require('../assets/supply_defaults');
1515

16+
var checkEventData = require('../assets/check_event_data');
17+
1618
var customAssertions = require('../assets/custom_assertions');
1719
var assertClip = customAssertions.assertClip;
1820
var assertNodeDisplay = customAssertions.assertNodeDisplay;
@@ -1857,6 +1859,11 @@ describe('bar hover', function() {
18571859
});
18581860
});
18591861

1862+
describe('event data', function() {
1863+
var mock = require('@mocks/stacked_bar');
1864+
checkEventData(mock, 0, 309, []);
1865+
});
1866+
18601867
function mockBarPlot(dataWithoutTraceType, layout) {
18611868
var traceTemplate = { type: 'bar' };
18621869

test/jasmine/tests/histogram_test.js

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ var destroyGraphDiv = require('../assets/destroy_graph_div');
1313
var supplyAllDefaults = require('../assets/supply_defaults');
1414
var failTest = require('../assets/fail_test');
1515

16+
var checkEventData = require('../assets/check_event_data');
1617

1718
describe('Test histogram', function() {
1819
'use strict';
@@ -1060,3 +1061,8 @@ describe('getBinSpanLabelRound', function() {
10601061
]);
10611062
});
10621063
});
1064+
1065+
describe('event data', function() {
1066+
var mock = require('@mocks/hist_category');
1067+
checkEventData(mock, 100, 200, ['binNumber']);
1068+
});

test/jasmine/tests/scatter_test.js

+2-36
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ var transitions = require('../assets/transitions');
1414
var assertClip = customAssertions.assertClip;
1515
var assertNodeDisplay = customAssertions.assertNodeDisplay;
1616
var assertMultiNodeOrder = customAssertions.assertMultiNodeOrder;
17-
var hover = require('../assets/hover');
17+
var checkEventData = require('../assets/check_event_data');
1818

1919
var getOpacity = function(node) { return Number(node.style.opacity); };
2020
var getFillOpacity = function(node) { return Number(node.style['fill-opacity']); };
@@ -1812,39 +1812,5 @@ describe('Test scatter *clipnaxis*:', function() {
18121812

18131813
describe('event data', function() {
18141814
var mock = require('@mocks/12');
1815-
var mockCopy = Lib.extendDeep({}, mock),
1816-
gd;
1817-
1818-
beforeEach(function(done) {
1819-
gd = createGraphDiv();
1820-
1821-
Plotly.plot(gd, mockCopy.data, mockCopy.layout)
1822-
.then(done);
1823-
});
1824-
1825-
afterEach(destroyGraphDiv);
1826-
1827-
it('should contain the correct fields', function() {
1828-
1829-
var hoverData;
1830-
1831-
gd.on('plotly_hover', function(data) {
1832-
hoverData = data;
1833-
});
1834-
1835-
hover(130, 350);
1836-
1837-
expect(hoverData.points.length).toEqual(1);
1838-
1839-
var fields = [
1840-
'curveNumber', 'pointNumber',
1841-
'data', 'fullData',
1842-
'xaxis', 'yaxis', 'x', 'y',
1843-
'marker.size'
1844-
];
1845-
1846-
fields.forEach(function(field) {
1847-
expect(Object.keys(hoverData.points[0])).toContain(field);
1848-
});
1849-
});
1815+
checkEventData(mock, 130, 350, ['marker.size']);
18501816
});

0 commit comments

Comments
 (0)