Skip to content

Commit 805d97b

Browse files
committed
add scattermapbox tests when css transform is present
1 parent 02b6f79 commit 805d97b

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

test/jasmine/tests/scattermapbox_test.js

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,3 +1070,126 @@ describe('@noCI Test plotly events on a scattermapbox plot:', function() {
10701070
});
10711071
});
10721072
});
1073+
1074+
describe('@noCI Test plotly events on a scattermapbox plot when css transform is present:', function() {
1075+
var mock = require('@mocks/mapbox_0.json');
1076+
var pointPos = [440 / 2, 290 / 2];
1077+
var nearPos = [460 / 2, 290 / 2];
1078+
var blankPos = [10 / 2, 10 / 2];
1079+
var mockCopy;
1080+
var gd;
1081+
1082+
function transformPlot(gd, transformString) {
1083+
gd.style.webkitTransform = transformString;
1084+
gd.style.MozTransform = transformString;
1085+
gd.style.msTransform = transformString;
1086+
gd.style.OTransform = transformString;
1087+
gd.style.transform = transformString;
1088+
}
1089+
1090+
beforeAll(function() {
1091+
Plotly.setPlotConfig({
1092+
mapboxAccessToken: require('@build/credentials.json').MAPBOX_ACCESS_TOKEN
1093+
});
1094+
});
1095+
1096+
beforeEach(function(done) {
1097+
gd = createGraphDiv();
1098+
mockCopy = Lib.extendDeep({}, mock);
1099+
mockCopy.layout.width = 800;
1100+
mockCopy.layout.height = 500;
1101+
1102+
transformPlot(gd, 'translate(-25%, -25%) scale(0.5)');
1103+
Plotly.plot(gd, mockCopy).then(done);
1104+
});
1105+
1106+
afterEach(destroyGraphDiv);
1107+
1108+
describe('click events', function() {
1109+
var futureData;
1110+
1111+
beforeEach(function() {
1112+
futureData = undefined;
1113+
gd.on('plotly_click', function(data) {
1114+
futureData = data;
1115+
});
1116+
});
1117+
1118+
it('@gl should not be trigged when not on data points', function() {
1119+
click(blankPos[0], blankPos[1]);
1120+
expect(futureData).toBe(undefined);
1121+
});
1122+
1123+
it('@gl should contain the correct fields', function() {
1124+
click(pointPos[0], pointPos[1]);
1125+
1126+
var pt = futureData.points[0];
1127+
1128+
expect(Object.keys(pt)).toEqual([
1129+
'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat'
1130+
]);
1131+
1132+
expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber');
1133+
expect(typeof pt.data).toEqual(typeof {}, 'points[0].data');
1134+
expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData');
1135+
expect(pt.lat).toEqual(10, 'points[0].lat');
1136+
expect(pt.lon).toEqual(10, 'points[0].lon');
1137+
expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber');
1138+
});
1139+
});
1140+
1141+
describe('hover events', function() {
1142+
var futureData;
1143+
1144+
beforeEach(function() {
1145+
gd.on('plotly_hover', function(data) {
1146+
futureData = data;
1147+
});
1148+
});
1149+
1150+
it('@gl should contain the correct fields', function() {
1151+
mouseEvent('mousemove', blankPos[0], blankPos[1]);
1152+
mouseEvent('mousemove', pointPos[0], pointPos[1]);
1153+
1154+
var pt = futureData.points[0];
1155+
1156+
expect(Object.keys(pt)).toEqual([
1157+
'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat'
1158+
]);
1159+
1160+
expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber');
1161+
expect(typeof pt.data).toEqual(typeof {}, 'points[0].data');
1162+
expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData');
1163+
expect(pt.lat).toEqual(10, 'points[0].lat');
1164+
expect(pt.lon).toEqual(10, 'points[0].lon');
1165+
expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber');
1166+
});
1167+
});
1168+
1169+
describe('unhover events', function() {
1170+
var futureData;
1171+
1172+
beforeEach(function() {
1173+
gd.on('plotly_unhover', function(data) {
1174+
futureData = data;
1175+
});
1176+
});
1177+
1178+
it('@gl should contain the correct fields', function(done) {
1179+
move(pointPos[0], pointPos[1], nearPos[0], nearPos[1], HOVERMINTIME + 10).then(function() {
1180+
var pt = futureData.points[0];
1181+
1182+
expect(Object.keys(pt)).toEqual([
1183+
'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat'
1184+
]);
1185+
1186+
expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber');
1187+
expect(typeof pt.data).toEqual(typeof {}, 'points[0].data');
1188+
expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData');
1189+
expect(pt.lat).toEqual(10, 'points[0].lat');
1190+
expect(pt.lon).toEqual(10, 'points[0].lon');
1191+
expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber');
1192+
}).then(done);
1193+
});
1194+
});
1195+
});

0 commit comments

Comments
 (0)