Extract MoveWay action

This commit is contained in:
John Firebaugh
2012-12-13 14:01:43 -08:00
parent ee3f5cc768
commit 209b87f7e8
6 changed files with 40 additions and 9 deletions
+2
View File
@@ -55,6 +55,7 @@
<script src="../js/id/actions/delete_node.js"></script>
<script src="../js/id/actions/delete_way.js"></script>
<script src='../js/id/actions/move_node.js'></script>
<script src='../js/id/actions/move_way.js'></script>
<script src='../js/id/actions/noop.js'></script>
<script src='../js/id/actions/remove_relation_member.js'></script>
<script src='../js/id/actions/remove_way_node.js'></script>
@@ -95,6 +96,7 @@
<script src="spec/actions/delete_node.js"></script>
<script src="spec/actions/delete_way.js"></script>
<script src="spec/actions/move_node.js"></script>
<script src="spec/actions/move_way.js"></script>
<script src="spec/actions/noop.js"></script>
<script src="spec/actions/remove_way_node.js"></script>
<script src="spec/actions/remove_relation_member.js"></script>
+1
View File
@@ -32,6 +32,7 @@
<script src="spec/actions/delete_node.js"></script>
<script src="spec/actions/delete_way.js"></script>
<script src="spec/actions/move_node.js"></script>
<script src="spec/actions/move_way.js"></script>
<script src="spec/actions/noop.js"></script>
<script src="spec/actions/remove_way_node.js"></script>
<script src="spec/actions/remove_relation_member.js"></script>
+21
View File
@@ -0,0 +1,21 @@
describe("iD.actions.MoveWay", function () {
it("moves all nodes in a way by the given amount", function () {
var node1 = iD.Node({loc: [0, 0]}),
node2 = iD.Node({loc: [5, 10]}),
way = iD.Way({nodes: [node1.id, node2.id]}),
dxdy = [2, 3],
projection = d3.geo.mercator(),
graph = iD.actions.MoveWay(way.id, dxdy, projection)(iD.Graph([node1, node2, way]));
expect(graph.entity(node1.id).loc).to.eql([1.4400000000000002, -2.1594885414215783]);
expect(graph.entity(node2.id).loc).to.eql([6.440000000000008, 7.866329874099955]);
});
it("moves repeated nodes only once", function () {
var node = iD.Node({loc: [0, 0]}),
way = iD.Way({nodes: [node.id, node.id]}),
dxdy = [2, 3],
projection = d3.geo.mercator(),
graph = iD.actions.MoveWay(way.id, dxdy, projection)(iD.Graph([node, way]));
expect(graph.entity(node.id).loc).to.eql([1.4400000000000002, -2.1594885414215783]);
});
});