(#2638) - 3 way sync test
diff --git a/tests/test.sync.js b/tests/test.sync.js
index aacff88..3f4143b 100644
--- a/tests/test.sync.js
+++ b/tests/test.sync.js
@@ -19,7 +19,8 @@
beforeEach(function (done) {
dbs.name = testUtils.adapterUrl(adapters[0], 'testdb');
dbs.remote = testUtils.adapterUrl(adapters[1], 'test_repl_remote');
- testUtils.cleanup([dbs.name, dbs.remote], done);
+ dbs.local = testUtils.adapterUrl(adapters[1], 'testdb2');
+ testUtils.cleanup([dbs.name, dbs.remote, dbs.local], done);
});
after(function (done) {
@@ -332,5 +333,42 @@
});
});
});
+ it('3 way replication works', function (done) {
+ var db = new PouchDB(dbs.name);
+ var local = new PouchDB(dbs.local);
+ var remote = new PouchDB(dbs.remote);
+ var j = 0;
+ var sync = db.sync(remote, {
+ live: true
+ }).on('uptodate', function (ch) {
+ console.log('rchange', ++j);
+ });
+ var sync2 = local.sync(remote, {
+ live: true
+ });
+ db.post({}).then(function (resp) {
+ var doc = {
+ _id: resp.id,
+ _rev: resp.rev
+ };
+ local.put({}, 'foo').then(function () {
+ setTimeout(function () {
+ db.remove(doc).then(function () {
+ setTimeout(function () {
+ sync.cancel();
+ sync2.cancel();
+ db.get(resp.id).then(function () {
+ console.log('bad');
+ done();
+ }, function (e) {
+ console.log(e);
+ done();
+ });
+ }, 1000);
+ });
+ }, 100);
+ });
+ });
+ });
});
});