diff --git a/js/id/actions/reverse_way.js b/js/id/actions/reverse_way.js index b170bf883..5b93f5578 100644 --- a/js/id/actions/reverse_way.js +++ b/js/id/actions/reverse_way.js @@ -2,7 +2,7 @@ iD.actions.ReverseWay = function(wayId) { return function(graph) { var way = graph.entity(wayId), - nodes = way.nodes.slice(); + nodes = way.nodes.slice().reverse(); return graph.replace(way.update({nodes: nodes}), 'changed way direction'); }; }; diff --git a/test/index.html b/test/index.html index dbfd7cba6..e904c9276 100644 --- a/test/index.html +++ b/test/index.html @@ -83,10 +83,18 @@ + + + + + + + + diff --git a/test/index_packaged.html b/test/index_packaged.html index f1e70b069..8271e3886 100644 --- a/test/index_packaged.html +++ b/test/index_packaged.html @@ -25,10 +25,18 @@ + + + + + + + + diff --git a/test/spec/actions/add_node.js b/test/spec/actions/add_node.js new file mode 100644 index 000000000..ae066edc5 --- /dev/null +++ b/test/spec/actions/add_node.js @@ -0,0 +1,7 @@ +describe("iD.actions.AddNode", function () { + it("adds a node to the graph", function () { + var node = iD.Node(), + graph = iD.actions.AddNode(node)(iD.Graph()); + expect(graph.entity(node.id)).to.equal(node); + }); +}); diff --git a/test/spec/actions/add_way.js b/test/spec/actions/add_way.js new file mode 100644 index 000000000..19948c5b2 --- /dev/null +++ b/test/spec/actions/add_way.js @@ -0,0 +1,7 @@ +describe("iD.actions.AddWay", function () { + it("adds a way to the graph", function () { + var way = iD.Way(), + graph = iD.actions.AddWay(way)(iD.Graph()); + expect(graph.entity(way.id)).to.equal(way); + }); +}); diff --git a/test/spec/actions/change_entity_tags.js b/test/spec/actions/change_entity_tags.js new file mode 100644 index 000000000..bfa9830c6 --- /dev/null +++ b/test/spec/actions/change_entity_tags.js @@ -0,0 +1,8 @@ +describe("iD.actions.ChangeEntityTags", function () { + it("changes an entity's tags", function () { + var entity = iD.Entity(), + tags = {foo: 'bar'}, + graph = iD.actions.ChangeEntityTags(entity.id, tags)(iD.Graph([entity])); + expect(graph.entity(entity.id).tags).to.eql(tags); + }); +}); diff --git a/test/spec/actions/move.js b/test/spec/actions/move.js new file mode 100644 index 000000000..5e4163af7 --- /dev/null +++ b/test/spec/actions/move.js @@ -0,0 +1,8 @@ +describe("iD.actions.Move", function () { + it("changes an entity's location", function () { + var entity = iD.Entity(), + loc = [2, 3], + graph = iD.actions.Move(entity.id, loc)(iD.Graph([entity])); + expect(graph.entity(entity.id).loc).to.eql(loc); + }); +}); diff --git a/test/spec/actions/noop.js b/test/spec/actions/noop.js new file mode 100644 index 000000000..677c3a2e0 --- /dev/null +++ b/test/spec/actions/noop.js @@ -0,0 +1,7 @@ +describe("iD.actions.Noop", function () { + it("does nothing", function () { + var graph = iD.Graph(), + action = iD.actions.Noop(graph); + expect(action(graph)).to.equal(graph); + }); +}); diff --git a/test/spec/actions/remove_relation_member.js b/test/spec/actions/remove_relation_member.js new file mode 100644 index 000000000..2c7c329ab --- /dev/null +++ b/test/spec/actions/remove_relation_member.js @@ -0,0 +1,8 @@ +describe("iD.actions.RemoveRelationMember", function () { + it("removes a member from a relation", function () { + var node = iD.Node(), + relation = iD.Way({members: [node.id]}), + graph = iD.actions.RemoveRelationMember(relation.id, node.id)(iD.Graph([node, relation])); + expect(graph.entity(relation.id).members).to.eql([]); + }); +}); diff --git a/test/spec/actions/reverse_way.js b/test/spec/actions/reverse_way.js new file mode 100644 index 000000000..0df898ae7 --- /dev/null +++ b/test/spec/actions/reverse_way.js @@ -0,0 +1,9 @@ +describe("iD.actions.ReverseWay", function () { + it("reverses the order of nodes in the way", function () { + var node1 = iD.Node(), + node2 = iD.Node(), + way = iD.Way({nodes: [node1.id, node2.id]}), + graph = iD.actions.ReverseWay(way.id)(iD.Graph([node1, node2, way])); + expect(graph.entity(way.id).nodes).to.eql([node2.id, node1.id]); + }); +});