From cac654e8ab0a6906b3bee0814275627b1389522e Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 16 May 2013 12:44:06 -0700 Subject: [PATCH] Add iD.actions.ChangeMember --- index.html | 2 ++ js/id/actions/change_member.js | 5 +++++ test/index.html | 2 ++ test/index_packaged.html | 1 + test/spec/actions/change_member.js | 9 +++++++++ test/spec/actions/delete_member.js | 2 +- 6 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 js/id/actions/change_member.js create mode 100644 test/spec/actions/change_member.js diff --git a/index.html b/index.html index 3cddaed4f..5dc6ad04d 100644 --- a/index.html +++ b/index.html @@ -118,8 +118,10 @@ + + diff --git a/js/id/actions/change_member.js b/js/id/actions/change_member.js new file mode 100644 index 000000000..ece118fab --- /dev/null +++ b/js/id/actions/change_member.js @@ -0,0 +1,5 @@ +iD.actions.ChangeMember = function(relationId, member, memberIndex) { + return function(graph) { + return graph.replace(graph.entity(relationId).updateMember(member, memberIndex)); + } +}; diff --git a/test/index.html b/test/index.html index 580885630..930bf8e5e 100644 --- a/test/index.html +++ b/test/index.html @@ -103,6 +103,7 @@ + @@ -185,6 +186,7 @@ + diff --git a/test/index_packaged.html b/test/index_packaged.html index 15bcef8df..b1a09c908 100644 --- a/test/index_packaged.html +++ b/test/index_packaged.html @@ -27,6 +27,7 @@ + diff --git a/test/spec/actions/change_member.js b/test/spec/actions/change_member.js new file mode 100644 index 000000000..c3d4291f1 --- /dev/null +++ b/test/spec/actions/change_member.js @@ -0,0 +1,9 @@ +describe("iD.actions.ChangeMember", function () { + it("updates the member at the specified index", function () { + var node = iD.Node(), + relation = iD.Relation({members: [{id: node.id}]}), + action = iD.actions.ChangeMember(relation.id, {id: node.id, role: 'node'}, 0), + graph = action(iD.Graph([node, relation])); + expect(graph.entity(relation.id).members).to.eql([{id: node.id, role: 'node'}]); + }); +}); diff --git a/test/spec/actions/delete_member.js b/test/spec/actions/delete_member.js index bb6e9c85c..f23cdb700 100644 --- a/test/spec/actions/delete_member.js +++ b/test/spec/actions/delete_member.js @@ -1,7 +1,7 @@ describe("iD.actions.DeleteMember", function () { it("removes the member at the specified index", function () { var node = iD.Node(), - relation = iD.Relation({members: [node.id]}), + relation = iD.Relation({members: [{id: node.id}]}), action = iD.actions.DeleteMember(relation.id, 0), graph = action(iD.Graph([node, relation])); expect(graph.entity(relation.id).members).to.eql([]);