| 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(); |
| }); |
| }); |
| }); |
| }); |
| }); |