From fc75d5f2a12ba820fd87ab258aa145f5ca5578a7 Mon Sep 17 00:00:00 2001 From: Martin Raifer Date: Thu, 24 Nov 2022 19:11:40 +0100 Subject: [PATCH] fix another regression (in b72f3aa), add tests --- modules/actions/reverse.js | 2 +- test/spec/actions/reverse.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/actions/reverse.js b/modules/actions/reverse.js index e28c1346d..ac0590474 100644 --- a/modules/actions/reverse.js +++ b/modules/actions/reverse.js @@ -111,7 +111,7 @@ export function actionReverse(entityID, options) { } return degrees.toString(); } else { - return value; + return valueReplacements[value] || value; } }).join(';'); } diff --git a/test/spec/actions/reverse.js b/test/spec/actions/reverse.js index efccf39ea..ddb82b0e2 100644 --- a/test/spec/actions/reverse.js +++ b/test/spec/actions/reverse.js @@ -70,6 +70,18 @@ describe('iD.actionReverse', function () { expect(graph.entity(node1.id).tags).to.eql({ 'direction': '94.5' }); }); + it('reverses directions with multiple semicolon separated values', function () { + var node1 = iD.osmNode({ tags: { 'direction': 'N;90' } }); + var graph = iD.actionReverse(node1.id)(iD.coreGraph([node1])); + expect(graph.entity(node1.id).tags).to.eql({ 'direction': 'S;270' }); + }); + + it('reverses directions with multiple semicolon separated values, preserves non-directional part', function () { + var node1 = iD.osmNode({ tags: { 'direction': '0;error' } }); + var graph = iD.actionReverse(node1.id)(iD.coreGraph([node1])); + expect(graph.entity(node1.id).tags).to.eql({ 'direction': '180;error' }); + }); + it('preserves non-directional tags', function () { var node1 = iD.osmNode({ tags: { 'traffic_sign': 'maxspeed' } }); var graph = iD.actionReverse(node1.id)(iD.coreGraph([node1]));