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 }); }); });