blob: bae782dceae564e0272e804350ba83c8043e2c48 [file] [log] [blame]
import assert from 'assert';
import nock from 'nock';
import {mockNodeIsOnline} from './helpers.js';
import {createReplicatorDoc, replicate} from '../src/replicate.js';
describe('replicate', () => {
describe('createReplicatorDoc', () => {
it('creates correctly defined doc', () => {
var doc = createReplicatorDoc('source-url', 'target-url', {continuous: true, 'create_target': true});
assert.deepEqual({
source: {
url: 'source-url'
},
target: {
url: 'target-url'
},
continuous: true,
'create_target': true
}, doc);
});
});
describe('replicate', () => {
it('returns json response', () => {
var data = {ok: true};
var payload = {
source: {
url: 'source-url'
},
target: {
url: 'target-url'
},
continuous: true,
'create_target': true
};
const url = 'http://127.0.0.1';
mockNodeIsOnline(url);
nock(url)
.post('/_replicator')
.reply(200, data);
return replicate(url, url + '/_replicator', payload)
.then(resp => {
assert.deepEqual(resp, data);
});
});
it('returns error on failed replication', () => {
const url = 'http://127.0.0.1';
mockNodeIsOnline(url);
nock(url)
.post('/_replicator')
.reply(500, {reason: 'ERROR'});
return replicate(url, url + '/_replicator', {})
.catch(err => {
assert.deepEqual(err.type, 'EUSAGE');
});
});
});
});