Files
memind/release-gate/preflight.test.mjs
T

24 lines
889 B
JavaScript
Raw Normal View History

import assert from 'node:assert/strict';
import net from 'node:net';
import test from 'node:test';
import { GATE_SUITE_PORTS, assertLoopbackPortAvailable } from './preflight.mjs';
test('gate suites pin isolated loopback ports', () => {
assert.equal(GATE_SUITE_PORTS['runtime-sanitized-data-upgrade'], 19085);
assert.equal(GATE_SUITE_PORTS['page-data-product-scenarios'], 19086);
assert.equal(GATE_SUITE_PORTS['page-content-delivery-scenarios'], 19087);
});
test('assertLoopbackPortAvailable rejects an occupied port', async () => {
const server = net.createServer();
await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve));
const { port } = server.address();
await assert.rejects(
() => assertLoopbackPortAvailable(port),
/already in use/,
);
await new Promise((resolve) => server.close(resolve));
await assertLoopbackPortAvailable(port);
});