biofriction-wp-theme/node_modules/dev-ip/test/devip.js

78 lines
2.1 KiB
JavaScript

"use strict";
var devIp = require("../lib/dev-ip");
var respNone = require("./fixtures/resp-none");
var respSingle = require("./fixtures/resp-single");
var respMultiple = require("./fixtures/resp-multiple");
var sinon = require("sinon");
var assert = require("chai").assert;
var os = require("os");
// From the resp files
var match1 = "10.104.103.181";
var match2 = "10.104.100.12";
var regex = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
describe("Getting the IP with a single result", function () {
var osStub;
var result;
before(function () {
osStub = sinon.stub(os, "networkInterfaces").returns(respSingle);
});
beforeEach(function () {
result = devIp(null);
});
after(function () {
osStub.restore();
});
it("should return the IP when a single match found", function () {
var expected = match1;
assert.deepEqual(result, [expected]);
});
it("should return a string matching the regex", function () {
var actual = regex.exec(result);
assert.isNotNull(actual);
});
});
describe("Getting the IP with Multiple results", function () {
var osStub;
var result;
before(function () {
osStub = sinon.stub(os, "networkInterfaces").returns(respMultiple);
});
beforeEach(function () {
result = devIp(null);
});
after(function () {
osStub.restore();
});
it("should return an array of results", function () {
assert.equal(result[0], match1);
assert.equal(result[1], match2);
});
it("should return a string matching the regex", function () {
var actual = regex.exec(result[0]);
assert.isNotNull(actual);
actual = regex.exec(result[1]);
assert.isNotNull(actual);
});
});
describe("Getting the IP with no results", function () {
var osStub;
var result;
before(function () {
osStub = sinon.stub(os, "networkInterfaces").returns(respNone);
});
after(function () {
osStub.restore();
});
it("should return empty array", function () {
var actual = devIp();
assert.isArray(actual);
assert.equal(actual.length, 0);
});
});