Files
openclaw/test/helpers/http-test-server.ts
2026-03-21 23:07:51 +00:00

19 lines
628 B
TypeScript

import { createServer, type RequestListener } from "node:http";
import type { AddressInfo } from "node:net";
export async function withServer(handler: RequestListener, fn: (baseUrl: string) => Promise<void>) {
const server = createServer(handler);
await new Promise<void>((resolve) => {
server.listen(0, "127.0.0.1", () => resolve());
});
const address = server.address() as AddressInfo | null;
if (!address) {
throw new Error("missing server address");
}
try {
await fn(`http://127.0.0.1:${address.port}`);
} finally {
await new Promise<void>((resolve) => server.close(() => resolve()));
}
}