Add only a single defs element to surface

This commit is contained in:
Bryan Housel
2016-09-09 23:20:48 -04:00
parent 482b4d7cbe
commit bb942aa9b6
2 changed files with 13 additions and 2 deletions

View File

@@ -29,8 +29,12 @@ export function Layers(projection, context) {
.attr('class', 'surface')
.merge(svg);
svg
.append('defs');
var defs = svg.selectAll('.surface-defs')
.data([0]);
defs.enter()
.append('defs')
.attr('class', 'surface-defs');
var groups = svg.selectAll('.data-layer')
.data(layers);

View File

@@ -16,6 +16,13 @@ describe('iD.svg.Layers', function () {
expect(container.selectAll('svg')).to.be.classed('surface');
});
it('creates surface defs', function () {
container.call(iD.svg.Layers(projection, context));
var nodes = container.selectAll('svg defs').nodes();
expect(nodes.length).to.eql(1);
expect(d3.select(nodes[0])).to.be.classed('surface-defs');
});
it('creates default data layers', function () {
container.call(iD.svg.Layers(projection, context));
var nodes = container.selectAll('svg .data-layer').nodes();