UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

45 lines (43 loc) 1.82 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _chai = require("chai"); var _sinon = _interopRequireDefault(require("sinon")); var _path = _interopRequireDefault(require("path")); var _fs = _interopRequireDefault(require("../fs")); var _navyrc = _interopRequireDefault(require("../navyrc")); /* eslint-env mocha */ describe('navyrc', function () { describe('getNavyRc', function () { let sandbox; beforeEach(function () { sandbox = _sinon.default.createSandbox(); }); afterEach(function () { sandbox.restore(); }); it('should read and parse the .navyrc JSON file from the given directory', async function () { const config = { services: ['api', 'web'], plugins: ['nodejs'] }; const readStub = sandbox.stub(_fs.default, 'readFileAsync').resolves(JSON.stringify(config)); const result = await (0, _navyrc.default)('/some/dir'); (0, _chai.expect)(result).to.eql(config); (0, _chai.expect)(readStub.calledOnce).to.equal(true); (0, _chai.expect)(readStub.firstCall.args[0]).to.equal(_path.default.join('/some/dir', '.navyrc')); }); it('should return null when the file cannot be read', async function () { const err = Object.assign(new Error('not found'), { code: 'ENOENT' }); sandbox.stub(_fs.default, 'readFileAsync').rejects(err); const result = await (0, _navyrc.default)('/missing/dir'); (0, _chai.expect)(result).to.equal(null); }); it('should return null when the file content is not valid JSON', async function () { sandbox.stub(_fs.default, 'readFileAsync').resolves('not json {{{'); const result = await (0, _navyrc.default)('/dir'); (0, _chai.expect)(result).to.equal(null); }); }); });