navy
Version:
Quick and powerful development environments using Docker and Docker Compose
66 lines (64 loc) • 2.53 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/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'
});
});
});
});