Skip to content

Commit 3bd89d3

Browse files
committedSep 22, 2017
add one geo base layer update test
1 parent c2b0f9c commit 3bd89d3

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
 

‎test/jasmine/tests/geo_test.js

+62
Original file line numberDiff line numberDiff line change
@@ -1352,6 +1352,68 @@ describe('Test event property of interactions on a geo plot:', function() {
13521352
});
13531353
});
13541354

1355+
describe('Test geo base layers', function() {
1356+
afterEach(destroyGraphDiv);
1357+
1358+
it('should clear obsolete features and layers on *geo.scope* relayout calls', function(done) {
1359+
var gd = createGraphDiv();
1360+
1361+
function _assert(geojson, layers) {
1362+
var cd0 = gd.calcdata[0];
1363+
var subplot = gd._fullLayout.geo._subplot;
1364+
1365+
expect(cd0[0].geojson).negateIf(geojson[0]).toBe(null);
1366+
expect(cd0[1].geojson).negateIf(geojson[1]).toBe(null);
1367+
1368+
expect(Object.keys(subplot.layers).length).toEqual(layers.length, '# of layers');
1369+
1370+
d3.select(gd).selectAll('.geo > .layer').each(function(d, i) {
1371+
expect(d).toBe(layers[i], 'layer ' + d + ' at position ' + i);
1372+
});
1373+
}
1374+
1375+
Plotly.plot(gd, [{
1376+
type: 'choropleth',
1377+
locations: ['CAN', 'FRA'],
1378+
z: [10, 20]
1379+
}], {
1380+
geo: {showframe: true}
1381+
})
1382+
.then(function() {
1383+
_assert(
1384+
[true, true],
1385+
['bg', 'coastlines', 'frame', 'backplot', 'frontplot']
1386+
);
1387+
return Plotly.relayout(gd, 'geo.scope', 'europe');
1388+
})
1389+
.then(function() {
1390+
_assert(
1391+
// 'CAN' is not drawn on 'europe' scope
1392+
[false, true],
1393+
// 'frame' is not drawn on scoped maps
1394+
// 'countries' are there by default on scoped maps
1395+
['bg', 'countries', 'backplot', 'frontplot']
1396+
);
1397+
return Plotly.relayout(gd, 'geo.scope', 'africa');
1398+
})
1399+
.then(function() {
1400+
_assert(
1401+
[false, false],
1402+
['bg', 'countries', 'backplot', 'frontplot']
1403+
);
1404+
return Plotly.relayout(gd, 'geo.scope', 'world');
1405+
})
1406+
.then(function() {
1407+
_assert(
1408+
[true, true],
1409+
['bg', 'coastlines', 'frame', 'backplot', 'frontplot']
1410+
);
1411+
})
1412+
.catch(fail)
1413+
.then(done);
1414+
});
1415+
});
1416+
13551417
describe('Test geo zoom/pan/drag interactions:', function() {
13561418
var gd;
13571419
var eventData;

0 commit comments

Comments
 (0)
Please sign in to comment.