39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { readRuntimeConfig } from "../../src/server/config";
|
|
|
|
describe("runtime config", () => {
|
|
test("默认使用 127.0.0.1:3000", () => {
|
|
expect(readRuntimeConfig([], {})).toEqual({ host: "127.0.0.1", port: 3000 });
|
|
});
|
|
|
|
test("CLI 参数优先于环境变量", () => {
|
|
expect(readRuntimeConfig(["--host", "0.0.0.0", "--port", "4001"], { HOST: "127.0.0.1", PORT: "3001" })).toEqual({
|
|
host: "0.0.0.0",
|
|
port: 4001,
|
|
});
|
|
});
|
|
|
|
test("环境变量可以覆盖默认端口", () => {
|
|
expect(readRuntimeConfig([], { PORT: "4100" })).toEqual({ host: "127.0.0.1", port: 4100 });
|
|
});
|
|
|
|
test("支持 inline CLI 参数", () => {
|
|
expect(readRuntimeConfig(["--host=localhost", "--port=4002"], {})).toEqual({
|
|
host: "localhost",
|
|
port: 4002,
|
|
});
|
|
});
|
|
|
|
test("拒绝无效端口", () => {
|
|
expect(() => readRuntimeConfig(["--port", "invalid"], {})).toThrow("无效端口");
|
|
expect(() => readRuntimeConfig(["--port", "3000.5"], {})).toThrow("无效端口");
|
|
expect(() => readRuntimeConfig(["--port", "-1"], {})).toThrow("无效端口");
|
|
expect(() => readRuntimeConfig(["--port", "65536"], {})).toThrow("无效端口");
|
|
});
|
|
|
|
test("接受端口边界值", () => {
|
|
expect(readRuntimeConfig(["--port", "0"], {})).toEqual({ host: "127.0.0.1", port: 0 });
|
|
expect(readRuntimeConfig(["--port", "65535"], {})).toEqual({ host: "127.0.0.1", port: 65535 });
|
|
});
|
|
});
|