Files
pikasTech-HWLAB/cmd/hwlab-cloud-api/runtime-options.test.ts
T

39 lines
1.7 KiB
TypeScript

import assert from "node:assert/strict";
import { test } from "bun:test";
import { applyCloudApiImageEnv, parsePort, parseTimeout } from "./runtime-options.ts";
test("parsePort preserves current hwlab-cloud-api port fallback behavior", () => {
assert.equal(parsePort(undefined, 6667), 6667);
assert.equal(parsePort("", 6667), 6667);
assert.equal(parsePort("abc", 6667), 6667);
assert.equal(parsePort("-1", 6667), 6667);
assert.equal(parsePort("65536", 6667), 6667);
assert.equal(parsePort("0", 6667), 0);
assert.equal(parsePort("19667", 6667), 19667);
});
test("parseTimeout clamps parsed integer values to the configured range", () => {
assert.equal(parseTimeout(undefined, 1200000, { min: 1000, max: 2400000 }), 1200000);
assert.equal(parseTimeout("abc", 1200000, { min: 1000, max: 2400000 }), 1200000);
assert.equal(parseTimeout("1", 1200000, { min: 1000, max: 2400000 }), 1000);
assert.equal(parseTimeout("99999999", 1200000, { min: 1000, max: 2400000 }), 2400000);
assert.equal(parseTimeout("1500", 1200000, { min: 1000, max: 2400000 }), 1500);
});
test("applyCloudApiImageEnv derives image identity from commit without overriding explicit values", () => {
const env = { HWLAB_COMMIT_ID: "abcdef1234567890" };
applyCloudApiImageEnv(env);
assert.equal(env.HWLAB_IMAGE, "ghcr.io/pikastech/hwlab-cloud-api:abcdef1");
assert.equal(env.HWLAB_IMAGE_TAG, "abcdef1");
const explicit = {
HWLAB_GIT_SHA: "11111112222222",
HWLAB_IMAGE: "registry.local/custom:tag",
HWLAB_IMAGE_TAG: "custom"
};
applyCloudApiImageEnv(explicit);
assert.equal(explicit.HWLAB_IMAGE, "registry.local/custom:tag");
assert.equal(explicit.HWLAB_IMAGE_TAG, "custom");
});