diff options
Diffstat (limited to 'share/www/script/test/lots_of_docs.js')
-rw-r--r-- | share/www/script/test/lots_of_docs.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/share/www/script/test/lots_of_docs.js b/share/www/script/test/lots_of_docs.js new file mode 100644 index 00000000..702317e5 --- /dev/null +++ b/share/www/script/test/lots_of_docs.js @@ -0,0 +1,56 @@ +// 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. + + +// test saving a semi-large quanitity of documents and do some view queries. +couchTests.lots_of_docs = function(debug) { + var db = new CouchDB("test_suite_db"); + db.deleteDb(); + db.createDb(); + if (debug) debugger; + + // keep number lowish for now to keep tests fasts. Crank up manually to + // to really test. + var numDocsToCreate = 500; + + for(var i=0; i < numDocsToCreate; i += 100) { + var createNow = Math.min(numDocsToCreate - i, 100); + var docs = makeDocs(i, i + createNow); + T(db.bulkSave(docs).ok); + } + + // query all documents, and return the doc.integer member as a key. + results = db.query(function(doc){ emit(doc.integer, null) }); + + T(results.total_rows == numDocsToCreate); + + // validate the keys are ordered ascending + for(var i=0; i<numDocsToCreate; i++) { + T(results.rows[i].key==i); + } + + // do the query again, but with descending output + results = db.query(function(doc){ emit(doc.integer, null) }, null, { + descending: true + }); + + T(results.total_rows == numDocsToCreate); + + // validate the keys are ordered descending + for(var i=0; i<numDocsToCreate; i++) { + T(results.rows[numDocsToCreate-1-i].key==i); + } + + // Check _all_docs with descending=true again (now that there are many docs) + var desc = db.allDocs({descending:true}); + T(desc.total_rows == desc.rows.length); +}; |