diff options
Diffstat (limited to 'test/javascript/tests/all_docs.js')
-rw-r--r-- | test/javascript/tests/all_docs.js | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/test/javascript/tests/all_docs.js b/test/javascript/tests/all_docs.js deleted file mode 100644 index 0eb382fa9..000000000 --- a/test/javascript/tests/all_docs.js +++ /dev/null @@ -1,167 +0,0 @@ -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy of -// the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. - -couchTests.elixir = true; -couchTests.all_docs = function(debug) { - return console.log('done in test/elixir/test/all_docs_test.exs'); - var db_name = get_random_db_name(); - var db = new CouchDB(db_name, {"X-Couch-Full-Commit":"false"}, {w: 3}); - db.createDb(); - if (debug) debugger; - - // Create some more documents. - // Notice the use of the ok member on the return result. - - var doc1 = db.save({_id:"0",a:1,b:1}); - var doc2 = db.save({_id:"3",a:4,b:16}); - var doc3 = db.save({_id:"1",a:2,b:4}); - var doc4 = db.save({_id:"2",a:3,b:9}); - - T(doc1.ok); - T(doc2.ok); - T(doc3.ok); - T(doc4.ok); - - var revs = []; - revs.push(doc1.rev); - revs.push(doc2.rev); - revs.push(doc3.rev); - revs.push(doc4.rev); - - // Check the all docs - var results = db.allDocs(); - var rows = results.rows; - - T(results.total_rows == results.rows.length); - - for(var i=0; i < rows.length; i++) { - T(rows[i].id >= "0" && rows[i].id <= "4"); - } - - // Check _all_docs with descending=true - var desc = db.allDocs({descending:true}); - T(desc.total_rows == desc.rows.length); - - // Check _all_docs offset - var all = db.allDocs({startkey:"2"}); - T(all.offset == 2); - - // Confirm that queries may assume raw collation. - var raw = db.allDocs({ startkey: "org.couchdb.user:", - endkey : "org.couchdb.user;" - }); - TEquals(0, raw.rows.length); - - - // check that all docs show up in the changes feed - // the order can vary - var changes = db.changes(); - changes.results.forEach(function(row, idx) { - var rev = row.changes[0].rev; - TEquals(true, revs.indexOf(rev) !== -1, "doc " + i + " should be in changes"); - }); - - // check that deletions also show up right - var doc1 = db.open("1"); - var deleted = db.deleteDoc(doc1); - T(deleted.ok); - changes = db.changes(); - T(changes.results.length == 4); - var deleted_doc = changes.results.filter(function(row) { - return row.deleted == true; - })[0]; - TEquals("1", deleted_doc.id, "deletes"); - - // (remember old seq) - var orig_doc = changes.results.filter(function(row) { - return row.id == "3" - })[0]; - // do an update - var doc3 = db.open("3"); - doc3.updated = "totally"; - doc3 = db.save(doc3); - changes = db.changes(); - - // the update should make doc id 3 have another seq num (not nec. higher or the last though) - T(changes.results.length == 4); - var updated_doc = changes.results.filter(function(row) { - return row.id == "3" - })[0]; - T(orig_doc.seq != updated_doc.seq, "seq num should be different"); - - // ok now lets see what happens with include docs - changes = db.changes({include_docs: true}); - T(changes.results.length == 4); - - var updated_doc = changes.results.filter(function(row) { - return row.id == doc3.id - })[0]; - T(updated_doc.doc.updated == "totally"); - - var deleted_doc = changes.results.filter(function(row) { - return row.deleted == true; - })[0]; - TEquals(true, deleted_doc.doc._deleted, "deletes"); - - rows = db.allDocs({include_docs: true}, ["1"]).rows; - TEquals(1, rows.length); - TEquals("1", rows[0].key); - TEquals("1", rows[0].id); - TEquals(true, rows[0].value.deleted); - TEquals(null, rows[0].doc); - - // add conflicts - var conflictDoc1 = { - _id: "3", _rev: "2-aa01552213fafa022e6167113ed01087", value: "X" - }; - var conflictDoc2 = { - _id: "3", _rev: "2-ff01552213fafa022e6167113ed01087", value: "Z" - }; - T(db.save(conflictDoc1, {new_edits: false})); - T(db.save(conflictDoc2, {new_edits: false})); - - var winRev = db.open("3"); - - changes = db.changes({include_docs: true, conflicts: true, style: "all_docs"}); - - var doc3 = changes.results.filter(function(row) { - return row.id == "3"; - })[0]; - - TEquals("3", doc3.id); - TEquals(3, doc3.changes.length); - TEquals(winRev._rev, doc3.changes[0].rev); - TEquals("3", doc3.doc._id); - TEquals(winRev._rev, doc3.doc._rev); - TEquals(true, doc3.doc._conflicts instanceof Array); - TEquals(2, doc3.doc._conflicts.length); - - rows = db.allDocs({include_docs: true, conflicts: true}).rows; - TEquals(3, rows.length); - TEquals("3", rows[2].key); - TEquals("3", rows[2].id); - TEquals(winRev._rev, rows[2].value.rev); - TEquals(winRev._rev, rows[2].doc._rev); - TEquals("3", rows[2].doc._id); - TEquals(true, rows[2].doc._conflicts instanceof Array); - TEquals(2, rows[2].doc._conflicts.length); - - // test the all docs collates sanely - db.save({_id: "Z", foo: "Z"}); - db.save({_id: "a", foo: "a"}); - - var rows = db.allDocs({startkey: "Z", endkey: "Z"}).rows; - T(rows.length == 1); - - // cleanup - db.deleteDb(); -}; |