UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

125 lines (123 loc) 3.32 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _chai = require("chai"); var _portOverride = _interopRequireDefault(require("../port-override")); /* eslint-env mocha */ describe('port-override middleware', function () { it('should leave service.ports untouched when no port state exists', function () { const config = { services: { api: { ports: ['80:80'] } } }; const state = { services: {} }; const result = (0, _portOverride.default)(config, state); (0, _chai.expect)(result.services.api.ports).to.eql(['80:80']); }); it('should leave ports untouched when state has the service but no _ports', function () { const config = { services: { api: { ports: ['80:80'] } } }; const state = { services: { api: {} } }; const result = (0, _portOverride.default)(config, state); (0, _chai.expect)(result.services.api.ports).to.eql(['80:80']); }); it('should override an internal port mapping with the configured external port', function () { const config = { services: { api: { ports: ['80', '443'] } } }; const state = { services: { api: { _ports: { 80: 8080 } } } }; const result = (0, _portOverride.default)(config, state); (0, _chai.expect)(result.services.api.ports).to.include('443'); (0, _chai.expect)(result.services.api.ports).to.include('8080:80'); (0, _chai.expect)(result.services.api.ports).to.not.include('80'); }); it('should drop entries whose external port is falsy when port state exists', function () { const config = { services: { api: { ports: ['80', '443'] } } }; const state = { services: { api: { _ports: { 80: undefined, 443: 4433 } } } }; const result = (0, _portOverride.default)(config, state); (0, _chai.expect)(result.services.api.ports).to.eql(['80', '4433:443']); }); it('should produce an empty ports list when service.ports is missing and there are no internal overrides', function () { const config = { services: { api: {} } }; const state = { services: { api: { _ports: { 80: undefined } } } }; const result = (0, _portOverride.default)(config, state); (0, _chai.expect)(result.services.api.ports).to.eql([]); }); it('should set ports to an empty array when neither the service nor state declare any ports', function () { const config = { services: { api: {} } }; const state = { services: {} }; const result = (0, _portOverride.default)(config, state); (0, _chai.expect)(result.services.api.ports).to.eql([]); }); it('should preserve top-level config keys', function () { const config = { version: '3', services: { api: {} } }; const state = { services: {} }; const result = (0, _portOverride.default)(config, state); (0, _chai.expect)(result).to.have.property('version', '3'); }); });