navy
Version:
Quick and powerful development environments using Docker and Docker Compose
46 lines (44 loc) • 1.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _chai = require("chai");
var _sinon = _interopRequireDefault(require("sinon"));
var _dns = _interopRequireDefault(require("dns"));
var _os = _interopRequireDefault(require("os"));
var _getLanIp = require("../get-lan-ip");
/* eslint-env mocha */
describe('get-lan-ip', function () {
describe('getLANIP', function () {
let sandbox;
beforeEach(function () {
sandbox = _sinon.default.createSandbox();
});
afterEach(function () {
sandbox.restore();
});
it('should resolve with the looked-up address for the host name', async function () {
sandbox.stub(_os.default, 'hostname').returns('my-laptop.local');
const dnsStub = sandbox.stub(_dns.default, 'lookup').callsFake((host, opts, cb) => {
cb(null, '10.0.0.42');
});
const result = await (0, _getLanIp.getLANIP)();
(0, _chai.expect)(result).to.equal('10.0.0.42');
(0, _chai.expect)(dnsStub.calledOnce).to.equal(true);
(0, _chai.expect)(dnsStub.firstCall.args[0]).to.equal('my-laptop.local');
(0, _chai.expect)(dnsStub.firstCall.args[1]).to.equal(null);
});
it('should reject if dns.lookup fails', async function () {
sandbox.stub(_os.default, 'hostname').returns('unknown.local');
const lookupError = new Error('lookup failed');
sandbox.stub(_dns.default, 'lookup').callsFake((host, opts, cb) => {
cb(lookupError);
});
let caught;
try {
await (0, _getLanIp.getLANIP)();
} catch (err) {
caught = err;
}
(0, _chai.expect)(caught).to.equal(lookupError);
});
});
});