AI_PROJECT / src /ui-server /api-pool-proxy-manager.test.mjs
chenchenaoyang's picture
Deploy HF Space with dataset backend
476094d verified
import test from "node:test";
import assert from "node:assert/strict";
import net from "node:net";
import { HistoryStore } from "./history-store.mjs";
import { ApiPoolProxyManager } from "./api-pool-proxy-manager.mjs";
function listenOnce(port) {
return new Promise((resolve, reject) => {
const server = net.createServer();
server.once("error", reject);
server.listen(port, "127.0.0.1", () => {
server.off("error", reject);
resolve(server);
});
});
}
test("ApiPoolProxyManager reports port conflicts with 409", async () => {
const occupied = await listenOnce(0);
const address = occupied.address();
const port = typeof address === "object" && address ? address.port : 8789;
const historyStore = new HistoryStore("/tmp/api-pool-proxy-manager-test");
historyStore.items = [];
historyStore.load = async () => {};
historyStore.add = async () => {};
const manager = new ApiPoolProxyManager(historyStore);
try {
await assert.rejects(
manager.start({
provider: "codex",
host: "127.0.0.1",
port,
}),
(error) => error?.statusCode === 409 && new RegExp(String(port)).test(error.message),
);
} finally {
await new Promise((resolve, reject) => occupied.close((error) => (error ? reject(error) : resolve())));
}
});