diff --git a/src/jio.storage/revisionstorage.js b/src/jio.storage/revisionstorage.js index 9c9f13df3bcb2295ce53bf53ce716dca6ff82644..4a66d266eea1176f120c501f83b6085c34cbd405 100644 --- a/src/jio.storage/revisionstorage.js +++ b/src/jio.storage/revisionstorage.js @@ -181,7 +181,8 @@ jIO.addStorageType('revision', function (spec, my) { "status":document_tree.status }); } - if (document_tree.children.length === 0) { + if (document_tree.children.length === 0 && + document_tree.status !== "deleted" ) { // This node is a leaf if (result.length < deep) { // The leaf is deeper than result @@ -298,7 +299,8 @@ jIO.addStorageType('revision', function (spec, my) { if (except !== undefined && except === document_tree.rev) { return; } - if (document_tree.children.length === 0) { + if (document_tree.children.length === 0 && + document_tree.status !== "deleted") { // This node is a leaf result.push(document_tree.rev); return; diff --git a/test/jiotests.js b/test/jiotests.js index d13698d3a38fc7a52f36b66e0b7d4d7cd71ac247..ea336c382c610d508c55cb8a4ed5661cdcdd850c 100644 --- a/test/jiotests.js +++ b/test/jiotests.js @@ -1678,6 +1678,19 @@ test ("Scenario", function(){ o.jio.remove({"_id":"sample1", "_rev":o.rev_1}, o.f); o.tick(o); + // check to see if conflict still exists + o.mydocSample4 = {"_id": "sample1", "title": "mySample2_modified", + "_rev": o.rev_2}; + o.mydocSample4._revs_info = [{"rev": o.rev_2, "status": "available"},{ + "rev":o.rev,"status":"available" + }]; + o.mydocSample4._revisions = {"ids":[o.hex_2, o.hex], "start":2 }; + + o.spy(o, "value", o.mydocSample4, "Test if conflict still exists"); + o.jio.get("sample1", {"revs_info": true, "revs": true, + "conflicts": true,}, o.f); + o.tick(o); + // END o.jio.stop();