navy
Version:
Quick and powerful development environments using Docker and Docker Compose
72 lines (70 loc) • 2.67 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _chai = require("chai");
var _sinon = _interopRequireDefault(require("sinon"));
var _proxyquire = _interopRequireDefault(require("proxyquire"));
/* eslint-env mocha */
describe('cli/local-ip', function () {
let sandbox;
let setConfigStub;
let getConfigStub;
let reconfigureAllNaviesStub;
let consoleLogStub;
let localIpCli;
beforeEach(function () {
sandbox = _sinon.default.createSandbox();
setConfigStub = sandbox.stub().resolves();
getConfigStub = sandbox.stub();
reconfigureAllNaviesStub = sandbox.stub().resolves();
consoleLogStub = sandbox.stub(console, 'log');
localIpCli = _proxyquire.default.noCallThru()('../local-ip', {
'../config': {
setConfig: setConfigStub,
getConfig: getConfigStub
},
'./util/reconfigure': {
reconfigureAllNavies: reconfigureAllNaviesStub
}
});
});
afterEach(function () {
sandbox.restore();
});
describe('default export', function () {
it('should write a config that merges existing config with externalIP=127.0.0.1', async function () {
getConfigStub.returns({
defaultNavy: 'dev',
tlsRootCaDir: '/ca'
});
await localIpCli();
(0, _chai.expect)(setConfigStub.calledOnce).to.equal(true);
(0, _chai.expect)(setConfigStub.firstCall.args[0]).to.eql({
defaultNavy: 'dev',
tlsRootCaDir: '/ca',
externalIP: '127.0.0.1'
});
});
it('should override an existing externalIP in config with 127.0.0.1', async function () {
getConfigStub.returns({
externalIP: 'remote.host'
});
await localIpCli();
(0, _chai.expect)(setConfigStub.firstCall.args[0].externalIP).to.equal('127.0.0.1');
});
it('should reconfigure all navies after writing the new config', async function () {
getConfigStub.returns({});
await localIpCli();
(0, _chai.expect)(reconfigureAllNaviesStub.calledOnce).to.equal(true);
(0, _chai.expect)(setConfigStub.calledBefore(reconfigureAllNaviesStub)).to.equal(true);
});
it('should log a confirmation including the local IP', async function () {
getConfigStub.returns({});
await localIpCli();
const messages = consoleLogStub.getCalls().map(c => c.args[0] || '');
const hasIp = messages.some(m => typeof m === 'string' && m.includes('127.0.0.1'));
(0, _chai.expect)(hasIp).to.equal(true);
const hasLabel = messages.some(m => typeof m === 'string' && m.includes('local IP'));
(0, _chai.expect)(hasLabel).to.equal(true);
});
});
});