fix(qa): reject invalid qa lab ports

This commit is contained in:
Vincent Koc
2026-06-18 19:38:58 +02:00
parent ae655345c4
commit 46d359237e
2 changed files with 21 additions and 1 deletions

View File

@@ -73,6 +73,9 @@ async function runQaLabUp(argv: readonly string[], deps: QaLabUpDeps = {}): Prom
if (parsed === undefined) {
throw new Error(`${flag} must be a positive integer.`);
}
if (parsed > 65535) {
throw new Error(`${flag} must be a TCP port from 1 to 65535.`);
}
return parsed;
};

View File

@@ -34,12 +34,29 @@ describe("scripts/qa-lab-up", () => {
);
});
it("accepts the maximum TCP port before loading the Docker runtime", async () => {
const runQaDockerUpCommand = vi.fn(async () => {});
const loadRuntime = vi.fn(async () => ({ runQaDockerUpCommand }));
await expect(
qaLabUpTesting.runQaLabUp(["--gateway-port", "65535", "--qa-lab-port", "65535"], {
loadRuntime,
}),
).resolves.toBe(0);
expect(runQaDockerUpCommand).toHaveBeenCalledWith(
expect.objectContaining({ gatewayPort: 65535, qaLabPort: 65535 }),
);
});
it.each([
[["--gateway-port", "1.5"], "--gateway-port must be a positive integer."],
[["--gateway-port", "0x1000"], "--gateway-port must be a positive integer."],
[["--gateway-port", "0"], "--gateway-port must be a positive integer."],
[["--gateway-port", "65536"], "--gateway-port must be a TCP port from 1 to 65535."],
[["--qa-lab-port", "1e4"], "--qa-lab-port must be a positive integer."],
])("rejects non-decimal positive integer ports: %j", async (args, errorMessage) => {
[["--qa-lab-port", "65536"], "--qa-lab-port must be a TCP port from 1 to 65535."],
])("rejects invalid TCP ports: %j", async (args, errorMessage) => {
const loadRuntime = vi.fn(async () => ({ runQaDockerUpCommand: vi.fn(async () => {}) }));
await expect(qaLabUpTesting.runQaLabUp(args, { loadRuntime })).rejects.toThrow(errorMessage);