





















@@ -10,20 +10,31 @@ import {
1010import type { ReadinessChecker } from "./server/readiness.js";
1111import { withTempConfig } from "./test-temp-config.js";
121213+type GatewayServerHarness = Parameters<typeof dispatchRequest>[0];
14+type GatewayRequestOptions = Parameters<typeof createRequest>[0];
15+16+async function sendGatewayRequest(
17+server: GatewayServerHarness,
18+options: GatewayRequestOptions,
19+) {
20+const req = createRequest(options);
21+const { res, getBody } = createResponse();
22+await dispatchRequest(server, req, res);
23+return { res, getBody };
24+}
25+1326describe("gateway OpenAI-compatible disabled HTTP routes", () => {
1427it("returns 404 when compat endpoints are disabled", async () => {
1528await withGatewayServer({
1629prefix: "openai-compat-disabled",
1730resolvedAuth: AUTH_NONE,
1831run: async (server) => {
1932for (const path of ["/v1/chat/completions", "/v1/responses"]) {
20-const req = createRequest({
33+const { res, getBody } = await sendGatewayRequest(server, {
2134 path,
2235method: "POST",
2336headers: { "content-type": "application/json" },
2437});
25-const { res, getBody } = createResponse();
26-await dispatchRequest(server, req, res);
27382839expect(res.statusCode, path).toBe(404);
2940expect(getBody(), path).toBe("Not Found");
@@ -46,9 +57,7 @@ describe("gateway probe endpoints", () => {
4657resolvedAuth: AUTH_NONE,
4758overrides: { getReadiness },
4859run: async (server) => {
49-const req = createRequest({ path: "/ready" });
50-const { res, getBody } = createResponse();
51-await dispatchRequest(server, req, res);
60+const { res, getBody } = await sendGatewayRequest(server, { path: "/ready" });
52615362expect(res.statusCode).toBe(200);
5463expect(JSON.parse(getBody())).toEqual({ ready: true, failing: [], uptimeMs: 45_000 });
@@ -68,13 +77,11 @@ describe("gateway probe endpoints", () => {
6877resolvedAuth: AUTH_NONE,
6978overrides: { getReadiness },
7079run: async (server) => {
71-const req = createRequest({
80+const { res, getBody } = await sendGatewayRequest(server, {
7281path: "/ready",
7382remoteAddress: "10.0.0.8",
7483host: "gateway.test",
7584});
76-const { res, getBody } = createResponse();
77-await dispatchRequest(server, req, res);
78857986expect(res.statusCode).toBe(503);
8087expect(JSON.parse(getBody())).toEqual({ ready: false });
@@ -94,14 +101,12 @@ describe("gateway probe endpoints", () => {
94101resolvedAuth: AUTH_TOKEN,
95102overrides: { getReadiness },
96103run: async (server) => {
97-const req = createRequest({
104+const { res, getBody } = await sendGatewayRequest(server, {
98105path: "/ready",
99106remoteAddress: "10.0.0.8",
100107host: "gateway.test",
101108authorization: "Bearer test-token",
102109});
103-const { res, getBody } = createResponse();
104-await dispatchRequest(server, req, res);
105110106111expect(res.statusCode).toBe(503);
107112expect(JSON.parse(getBody())).toEqual({
@@ -131,14 +136,12 @@ describe("gateway probe endpoints", () => {
131136},
132137run: async (server) => {
133138const sendReady = async (authorization: string) => {
134-const req = createRequest({
139+const { res, getBody } = await sendGatewayRequest(server, {
135140path: "/ready",
136141remoteAddress: "10.0.0.8",
137142host: "gateway.test",
138143 authorization,
139144});
140-const { res, getBody } = createResponse();
141-await dispatchRequest(server, req, res);
142145return { statusCode: res.statusCode, body: JSON.parse(getBody()) };
143146};
144147@@ -201,7 +204,7 @@ describe("gateway probe endpoints", () => {
201204 getReadiness,
202205},
203206run: async (server) => {
204-const req = createRequest({
207+const { res, getBody } = await sendGatewayRequest(server, {
205208path: "/ready",
206209remoteAddress: "10.0.0.1",
207210host: "gateway.test",
@@ -212,8 +215,6 @@ describe("gateway probe endpoints", () => {
212215"x-forwarded-proto": "https",
213216},
214217});
215-const { res, getBody } = createResponse();
216-await dispatchRequest(server, req, res);
217218218219expect(res.statusCode).toBe(503);
219220expect(JSON.parse(getBody())).toEqual({ ready: false });
@@ -233,9 +234,7 @@ describe("gateway probe endpoints", () => {
233234resolvedAuth: AUTH_NONE,
234235overrides: { getReadiness },
235236run: async (server) => {
236-const req = createRequest({ path: "/ready" });
237-const { res, getBody } = createResponse();
238-await dispatchRequest(server, req, res);
237+const { res, getBody } = await sendGatewayRequest(server, { path: "/ready" });
239238240239expect(res.statusCode).toBe(503);
241240expect(JSON.parse(getBody())).toEqual({ ready: false, failing: ["internal"], uptimeMs: 0 });
@@ -255,9 +254,7 @@ describe("gateway probe endpoints", () => {
255254resolvedAuth: AUTH_NONE,
256255overrides: { getReadiness },
257256run: async (server) => {
258-const req = createRequest({ path: "/healthz" });
259-const { res, getBody } = createResponse();
260-await dispatchRequest(server, req, res);
257+const { res, getBody } = await sendGatewayRequest(server, { path: "/healthz" });
261258262259expect(res.statusCode).toBe(200);
263260expect(getBody()).toBe(JSON.stringify({ ok: true, status: "live" }));
@@ -275,9 +272,7 @@ describe("gateway probe endpoints", () => {
275272resolvedAuth: AUTH_NONE,
276273overrides: { getRuntimeConfig },
277274run: async (server) => {
278-const req = createRequest({ path: "/healthz" });
279-const { res, getBody } = createResponse();
280-await dispatchRequest(server, req, res);
275+const { res, getBody } = await sendGatewayRequest(server, { path: "/healthz" });
281276282277expect(res.statusCode).toBe(200);
283278expect(getBody()).toBe(JSON.stringify({ ok: true, status: "live" }));
@@ -333,9 +328,10 @@ describe("gateway probe endpoints", () => {
333328resolvedAuth: AUTH_NONE,
334329overrides: { getReadiness },
335330run: async (server) => {
336-const req = createRequest({ path: "/readyz", method: "HEAD" });
337-const { res, getBody } = createResponse();
338-await dispatchRequest(server, req, res);
331+const { res, getBody } = await sendGatewayRequest(server, {
332+path: "/readyz",
333+method: "HEAD",
334+});
339335340336expect(res.statusCode).toBe(503);
341337expect(getBody()).toBe("");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。