UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

66 lines (64 loc) 2.53 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/util/get-or-initialise-navy', function () { let sandbox; let getNavyStub; let importNavyStub; let getImportOptionsForCLIStub; let navyStub; let getOrInitialiseNavy; beforeEach(function () { sandbox = _sinon.default.createSandbox(); navyStub = { isInitialised: sandbox.stub() }; getNavyStub = sandbox.stub().returns(navyStub); importNavyStub = sandbox.stub().resolves(); getImportOptionsForCLIStub = sandbox.stub().resolves({ configProvider: 'filesystem', path: '/cwd' }); getOrInitialiseNavy = _proxyquire.default.noCallThru()('../get-or-initialise-navy', { '../../': { getNavy: getNavyStub }, './import': { importNavy: importNavyStub }, '../../config-providers/filesystem': { getImportOptionsForCLI: getImportOptionsForCLIStub } }).getOrInitialiseNavy; }); afterEach(function () { sandbox.restore(); }); describe('getOrInitialiseNavy', function () { it('should return the navy without importing when already initialised', async function () { navyStub.isInitialised.resolves(true); const result = await getOrInitialiseNavy('env-1'); (0, _chai.expect)(result).to.equal(navyStub); (0, _chai.expect)(getNavyStub.calledOnce).to.equal(true); (0, _chai.expect)(getNavyStub.firstCall.args[0]).to.equal('env-1'); (0, _chai.expect)(importNavyStub.called).to.equal(false); (0, _chai.expect)(getImportOptionsForCLIStub.called).to.equal(false); }); it('should import the navy using filesystem provider opts when not initialised', async function () { navyStub.isInitialised.resolves(false); const result = await getOrInitialiseNavy('env-2'); (0, _chai.expect)(result).to.equal(navyStub); (0, _chai.expect)(getImportOptionsForCLIStub.calledOnce).to.equal(true); (0, _chai.expect)(getImportOptionsForCLIStub.firstCall.args[0]).to.eql({}); (0, _chai.expect)(importNavyStub.calledOnce).to.equal(true); (0, _chai.expect)(importNavyStub.firstCall.args[0]).to.equal(navyStub); (0, _chai.expect)(importNavyStub.firstCall.args[1]).to.eql({ configProvider: 'filesystem', path: '/cwd' }); }); }); });