diff --git a/modules/validations/crossing_ways.js b/modules/validations/crossing_ways.js index 91998e616..b66927b99 100644 --- a/modules/validations/crossing_ways.js +++ b/modules/validations/crossing_ways.js @@ -716,7 +716,7 @@ export function validationCrossingWays(context) { } } - return new validationIssueFix({ + const fix = new validationIssueFix({ icon: fixIcon, title: t.append('issues.fix.' + fixTitleID + '.title'), onClick: function(context) { @@ -756,6 +756,8 @@ export function validationCrossingWays(context) { ); } }); + fix._connectionTags = connectionTags; + return fix; } function makeChangeLayerFix(higherOrLower) { diff --git a/test/spec/validations/crossing_ways.js b/test/spec/validations/crossing_ways.js index 57ce0ff95..735b22b88 100644 --- a/test/spec/validations/crossing_ways.js +++ b/test/spec/validations/crossing_ways.js @@ -2,7 +2,12 @@ describe('iD.validations.crossing_ways', function () { var context; beforeEach(function() { - context = iD.coreContext().assetPath('../dist/').init(); + const container = d3.select('body').append('div'); + context = iD.coreContext().assetPath('../dist/').init().container(container); + container + .append('div') + .attr('class', 'main-map') + .call(context.map()); }); function createWaysWithOneCrossingPoint(tags1, tags2) { @@ -253,6 +258,17 @@ describe('iD.validations.crossing_ways', function () { verifySingleCrossingIssue(validate(), {}); }); + it('flags sidewalk crossing service road', function() { + createWaysWithOneCrossingPoint({ highway: 'service' }, { highway: 'footway', footway: 'sidewalk' }); + const issues = validate(); + verifySingleCrossingIssue(issues, {}); + context.enter(iD.modeSelect(context, ['w-1'])); + const dynamicFixes = issues[0].dynamicFixes(context); + expect(dynamicFixes).to.have.lengthOf(5); + expect(dynamicFixes[0]._connectionTags).to.eql({}); + expect(dynamicFixes[1]._connectionTags).to.eql({ highway: 'crossing' }); + }); + it('flags road crossing railway', function() { createWaysWithOneCrossingPoint({ highway: 'residential' }, { railway: 'rail' }); verifySingleCrossingIssue(validate(), { railway: 'level_crossing' });