navy
Version:
Quick and powerful development environments using Docker and Docker Compose
54 lines (52 loc) • 1.89 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/run', function () {
let sandbox;
let getNavyStub;
let navyStub;
let run;
beforeEach(function () {
sandbox = _sinon.default.createSandbox();
navyStub = {
ensurePluginsLoaded: sandbox.stub().resolves(),
invokeCommand: sandbox.stub().resolves()
};
getNavyStub = sandbox.stub().returns(navyStub);
run = _proxyquire.default.noCallThru()('../run', {
'../': {
getNavy: getNavyStub
}
});
});
afterEach(function () {
sandbox.restore();
});
describe('default export', function () {
it('should resolve the navy instance using opts.navy', async function () {
await run('cmd', [], {
navy: 'env-1'
});
(0, _chai.expect)(getNavyStub.calledOnce).to.equal(true);
(0, _chai.expect)(getNavyStub.firstCall.args[0]).to.equal('env-1');
});
it('should call ensurePluginsLoaded before invokeCommand', async function () {
await run('cmd', ['a'], {
navy: 'env-1'
});
(0, _chai.expect)(navyStub.ensurePluginsLoaded.calledOnce).to.equal(true);
(0, _chai.expect)(navyStub.invokeCommand.calledOnce).to.equal(true);
(0, _chai.expect)(navyStub.ensurePluginsLoaded.calledBefore(navyStub.invokeCommand)).to.equal(true);
});
it('should pass through name and args to invokeCommand', async function () {
await run('migrate', ['--up', 'db'], {
navy: 'env-1'
});
(0, _chai.expect)(navyStub.invokeCommand.firstCall.args[0]).to.equal('migrate');
(0, _chai.expect)(navyStub.invokeCommand.firstCall.args[1]).to.eql(['--up', 'db']);
});
});
});