From 309bfacf74737d381cb19e8c149ebdf4b7f1d815 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 10 Mar 2016 15:56:57 -0500 Subject: [PATCH] Don't blacklist key-values for presets with both area and line geometry --- js/id/presets.js | 4 +++- test/spec/presets.js | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/js/id/presets.js b/js/id/presets.js index f7732ed9a..d9b5d3cf0 100644 --- a/js/id/presets.js +++ b/js/id/presets.js @@ -74,7 +74,9 @@ iD.presets = function() { if (ignore.indexOf(key) !== -1) return; var value = d.tags[key]; - if (d.geometry.indexOf('line') !== -1 && key in areaKeys && value !== '*') { + if (d.geometry.indexOf('area') === -1 && + d.geometry.indexOf('line') !== -1 && + key in areaKeys && value !== '*') { areaKeys[key][value] = true; } }); diff --git a/test/spec/presets.js b/test/spec/presets.js index dbfd4b2ed..37260fc33 100644 --- a/test/spec/presets.js +++ b/test/spec/presets.js @@ -48,6 +48,10 @@ describe("iD.presets", function() { geometry: ['point','area'], suggestion: true }, + 'golf/water_hazard': { + tags: { 'golf': 'water_hazard' }, + geometry: ['line','area'] + }, 'highway/foo': { tags: { 'highway': 'foo' }, geometry: ['area'] @@ -80,7 +84,11 @@ describe("iD.presets", function() { expect(presets.areaKeys().natural.tree_row).to.eq(true); }); - it("does not blacklist key-values for presets without a line geometry (e.g. used only on nodes)", function() { + it("does not blacklist key-values for presets with both area and line geometry", function() { + expect(presets.areaKeys().golf).not.to.have.key('water_hazard'); + }); + + it("does not blacklist key-values for presets with neither area nor line geometry", function() { expect(presets.areaKeys().natural).not.to.have.key('peak'); }); @@ -88,7 +96,7 @@ describe("iD.presets", function() { expect(presets.areaKeys().natural).not.to.have.key('natural'); }); - it("ignores keys like 'highway'", function() { + it("ignores keys like 'highway' that are assumed to be lines", function() { expect(presets.areaKeys()).not.to.have.key('highway'); });