blob: 6cfee18e5cbeb62db90c3b2cf266fbfb448294bb [file] [log] [blame]
import assert from 'assert';
import Lab from 'lab';
import { cli } from '../src/replicate-to.js';
import * as common from './common.js';
import nmo from '../src/nmo.js';
import nock from 'nock';
export let lab = Lab.script();
const oldConsole = console.log;
const nmoconf = {nmoconf: __dirname + '/fixtures/randomini'};
common.createConfigFile();
lab.experiment('replicate-to', () => {
lab.experiment('cli', () => {
lab.beforeEach((done) => {
nmo
.load(nmoconf)
.then(() => done())
.catch(() => done());
});
lab.afterEach((done) => {
console.log = oldConsole;
done();
});
lab.test('returns error on no value provided', done => {
cli()
.catch((err) => {
assert.ok(err instanceof Error);
done();
});
});
lab.test('replicates db given cluster details', done => {
const doc = {
"target":{
"url":"http://127.0.0.1/mydb"
},
"source":{
"url":"https://target-repl.com/new-db"
},
"continuous":false,
"create_target":false
};
nock('http://127.0.0.1')
.post('/_replicator', doc)
.reply(200, {ok: true, id: '123', rev: '123'});
cli('clusterone', 'mydb', 'https://target-repl.com/new-db')
.then(resp => {
assert.ok(resp.ok);
done();
});
});
lab.test('replicates db given cluster details with continuous and create_target', done => {
nmo
.load({nmoconf: __dirname + '/fixtures/randomini', "create-target": true, continuous: true})
.then(() => {
const doc = {
"target":{
"url":"http://127.0.0.1/mydb"
},
"source":{
"url":"https://target-repl.com/new-db"
},
"continuous":true,
"create_target":true
};
nock('http://127.0.0.1')
.post('/_replicator', doc)
.reply(200, {ok: true, id: '123', rev: '123'});
cli('clusterone', 'mydb', 'https://target-repl.com/new-db')
.then(resp => {
assert.ok(resp.ok);
done();
});
});
});
});
});