From 31941e93892e77c76550a2c9dab3544ef0cf8885 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Tue, 31 Dec 2019 12:03:57 -0500 Subject: [PATCH] Fix JavaScript error that could cause validation warnings to appear unexpectedly (close #7166) Add code test to account for deprecated tags with no replacement --- modules/osm/entity.js | 2 +- test/spec/validations/outdated_tags.js | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/osm/entity.js b/modules/osm/entity.js index a99f4bbc6..a86635564 100644 --- a/modules/osm/entity.js +++ b/modules/osm/entity.js @@ -205,7 +205,7 @@ osmEntity.prototype = { return vals.indexOf(d.old[key]) !== -1; } else { if (tags[key] === d.old[key]) { - if (d.old[key] === d.replace[key]) { + if (d.replace && d.old[key] === d.replace[key]) { return !Object.keys(d.replace).every(function(key) { return tags[key] === d.replace[key]; }); diff --git a/test/spec/validations/outdated_tags.js b/test/spec/validations/outdated_tags.js index d03609176..2c3abb487 100644 --- a/test/spec/validations/outdated_tags.js +++ b/test/spec/validations/outdated_tags.js @@ -55,7 +55,7 @@ describe('iD.validations.outdated_tags', function () { expect(issues).to.have.lengthOf(0); }); - it('flags deprecated tags', function() { + it('flags deprecated tag with replacement', function() { createWay({'highway': 'ford'}); var issues = validate(); expect(issues).to.have.lengthOf(1); @@ -67,6 +67,17 @@ describe('iD.validations.outdated_tags', function () { expect(issue.entityIds[0]).to.eql('w-1'); }); + it('flags deprecated tag with no replacement', function() { + createWay({'highway': 'no'}); + var issues = validate(); + expect(issues).to.have.lengthOf(1); + var issue = issues[0]; + expect(issue.type).to.eql('outdated_tags'); + expect(issue.subtype).to.eql('deprecated_tags'); + expect(issue.severity).to.eql('warning'); + expect(issue.entityIds).to.have.lengthOf(1); + expect(issue.entityIds[0]).to.eql('w-1'); + }); it('ignores way with no relations', function() { createWay({});