summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsebastianro <sebastianro@apache.org>2015-11-17 22:48:01 +0100
committersebastianro <sebastianro@apache.org>2015-11-17 22:48:01 +0100
commit2607318a61a2393dce9702fd0e24edc9998fb03e (patch)
tree7c17e7a8a2b0596beee042196384faa892bec208
parentc690cfe15cf2f1d91ab762f1d78b94546695300c (diff)
downloadcouchdb-2876-js-tests.tar.gz
One more replicator DB test2876-js-tests
-rw-r--r--test/javascript/tests/replicator_db_by_doc_id.js62
1 files changed, 45 insertions, 17 deletions
diff --git a/test/javascript/tests/replicator_db_by_doc_id.js b/test/javascript/tests/replicator_db_by_doc_id.js
index e460ebdae..d9de0f119 100644
--- a/test/javascript/tests/replicator_db_by_doc_id.js
+++ b/test/javascript/tests/replicator_db_by_doc_id.js
@@ -11,15 +11,17 @@
// the License.
couchTests.replicator_db_by_doc_id = function(debug) {
- return console.log('TODO');
+ //return console.log('TODO');
if (debug) debugger;
var populate_db = replicator_db.populate_db;
var docs1 = replicator_db.docs1;
+ // TODO: dice DBs (at least target)
var dbA = replicator_db.dbA;
var dbB = replicator_db.dbB;
- var repDb = replicator_db.repDb;
+ //var repDb = replicator_db.repDb;
+ var replDb = new CouchDB("_replicator");
var wait = replicator_db.wait;
var waitForRep = replicator_db.waitForRep;
var waitForSeq = replicator_db.waitForSeq;
@@ -39,12 +41,13 @@ couchTests.replicator_db_by_doc_id = function(debug) {
var repDoc = {
_id: "foo_cont_rep_doc",
source: "http://" + CouchDB.host + "/" + dbA.name,
- target: dbB.name,
+ // TODO: fix DB name issue and remove absolute URL again
+ target: 'http://localhost:15984/' + dbB.name,
doc_ids: ["foo666", "foo3", "_design/mydesign", "foo999", "foo1"]
};
- T(repDb.save(repDoc).ok);
+ T(replDb.save(repDoc).ok);
- waitForRep(repDb, repDoc, "completed");
+ waitForRep(replDb, repDoc, "completed");
var copy = dbB.open("foo1");
T(copy !== null);
T(copy.value === 11);
@@ -63,21 +66,22 @@ couchTests.replicator_db_by_doc_id = function(debug) {
T(copy === null);
copy = dbB.open("_design/mydesign");
- T(copy === null);
+ // TODO: recheck - but I believe this should be in the target! (see also #written below)
+ T(copy !== null);
- repDoc = repDb.open(repDoc._id);
+ repDoc = replDb.open(repDoc._id);
T(typeof repDoc._replication_stats === "object", "doc has stats");
var stats = repDoc._replication_stats;
TEquals(3, stats.revisions_checked, "right # of revisions_checked");
TEquals(3, stats.missing_revisions_found, "right # of missing_revisions_found");
TEquals(3, stats.docs_read, "right # of docs_read");
- TEquals(2, stats.docs_written, "right # of docs_written");
- TEquals(1, stats.doc_write_failures, "right # of doc_write_failures");
- TEquals(dbA.info().update_seq, stats.checkpointed_source_seq,
- "right checkpointed_source_seq");
+ TEquals(3, stats.docs_written, "right # of docs_written");
+ TEquals(0, stats.doc_write_failures, "right # of doc_write_failures");
+ // sequences are no more meaningful in a cluster
+ //TEquals(dbA.info().update_seq, stats.checkpointed_source_seq, "right checkpointed_source_seq");
}
- var server_config = [
+ /*var server_config = [
{
section: "couch_httpd_auth",
key: "iterations",
@@ -88,13 +92,37 @@ couchTests.replicator_db_by_doc_id = function(debug) {
key: "db",
value: repDb.name
}
- ];
+ ];*/
+
+ //repDb.deleteDb();
+ // don't run on modified server as it would be strange on cluster
+ // but use "normal" replication DB, create a doc, reliably clear after run
+ // on delete fail, the next tests would all fail
+ function handleReplDoc(show) {
+ var replDoc = replDb.open("foo_cont_rep_doc");
+ if(replDoc!=null) {
+ if(show) {
+ //console.log(JSON.stringify(replDoc));
+ }
+ replDb.deleteDoc(replDoc);
+ }
+ }
- repDb.deleteDb();
- run_on_modified_server(server_config, by_doc_ids_replication);
+ handleReplDoc();
+ try {
+ by_doc_ids_replication();
+ } finally {
+ // cleanup or log
+ try {
+ handleReplDoc(true);
+ } catch (e2) {
+ console.log("Error during cleanup " + e2);
+ }
+ }
+ //run_on_modified_server(server_config, by_doc_ids_replication);
// cleanup
- repDb.deleteDb();
+ //repDb.deleteDb();
dbA.deleteDb();
dbB.deleteDb();
-} \ No newline at end of file
+}