UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

72 lines (70 loc) 2.67 kB
"use strict"; 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); }); }); });