Files
Z.AI-Chat-for-Android/node_modules/find-free-ports/tests.js

89 lines
2.7 KiB
JavaScript

"use strict";
var _ava = _interopRequireDefault(require("ava"));
var _net = _interopRequireDefault(require("net"));
var _index = require("./index");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const PORT_COUNT = 1000;
function isUnique(array) {
const set = new Set();
for (const element of array) {
if (set.has(element)) {
return false;
}
set.add(element);
}
return true;
}
function listen(server, port) {
return new Promise((accept, reject) => {
server.once('error', reject);
server.listen(port, () => {
accept(server.address().port);
});
});
}
function closeServer(server) {
return new Promise((accept, reject) => {
server.close(err => {
if (err) {
reject(err);
} else {
accept();
}
});
});
}
(0, _ava.default)('findFreePorts() crashes properly when there are not enough free ports within the given range', async t => {
await t.throwsAsync(() => (0, _index.findFreePorts)(10, {
startPort: 65530
}));
await t.throwsAsync(() => (0, _index.findFreePorts)(3, {
startPort: 1024,
endPort: 1026
}));
});
(0, _ava.default)('searches for one port by default', async t => {
const ports = await (0, _index.findFreePorts)();
t.assert(ports.length === 1);
t.truthy(await (0, _index.isFreePort)(ports[0]));
});
(0, _ava.default)('can find a few ports when requested', async t => {
const ports = await (0, _index.findFreePorts)(3);
t.assert(ports.length === 3);
t.assert(isUnique(ports));
});
(0, _ava.default)('can find a large amount of unique free ports', async t => {
const ports = await (0, _index.findFreePorts)(PORT_COUNT);
t.assert(ports.length === PORT_COUNT);
t.truthy(isUnique(ports));
});
(0, _ava.default)('can run with only one job specified', async t => {
const ports = await (0, _index.findFreePorts)(PORT_COUNT, {
jobCount: 1
});
t.assert(ports.length === PORT_COUNT);
t.truthy(isUnique(ports));
});
(0, _ava.default)('can run with exactly two jobs', async t => {
const ports = await (0, _index.findFreePorts)(PORT_COUNT, {
jobCount: 2
});
t.assert(ports.length === PORT_COUNT);
t.truthy(isUnique(ports));
});
(0, _ava.default)('isFree() detects when a port is in use', async t => {
t.plan(1);
const server = _net.default.createServer();
const port = await listen(server, undefined);
t.falsy(await (0, _index.isFreePort)(port));
await closeServer(server);
});
(0, _ava.default)('isFree() detects when a port is free', async t => {
t.plan(1);
const server = _net.default.createServer();
const port = await listen(server);
await closeServer(server);
t.truthy(await (0, _index.isFreePort)(port));
});
//# sourceMappingURL=tests.js.map