From d9b33205dc85f25258cfe0d1dbfe65d0299f31ad Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 10 Apr 2026 19:21:34 +0100 Subject: [PATCH] test: move disabled compat routes to http harness --- src/gateway/openai-http.test.ts | 35 -------------------------- src/gateway/openresponses-http.test.ts | 30 ---------------------- src/gateway/server-http.probe.test.ts | 23 +++++++++++++++++ 3 files changed, 23 insertions(+), 65 deletions(-) diff --git a/src/gateway/openai-http.test.ts b/src/gateway/openai-http.test.ts index 2a1442e7e89..a829b4564d4 100644 --- a/src/gateway/openai-http.test.ts +++ b/src/gateway/openai-http.test.ts @@ -40,15 +40,6 @@ afterAll(async () => { await enabledServer?.close({ reason: "openai http enabled suite done" }); }); -async function startServerWithDefaultConfig(port: number) { - return await startGatewayServer(port, { - host: "127.0.0.1", - auth: { mode: "none" }, - controlUiEnabled: false, - openAiChatCompletionsEnabled: false, - }); -} - async function startServer(port: number, opts?: { openAiChatCompletionsEnabled?: boolean }) { return await startGatewayServer(port, { host: "127.0.0.1", @@ -89,23 +80,6 @@ async function postChatCompletions(port: number, body: unknown, headers?: Record return res; } -async function expectChatCompletionsDisabled( - start: (port: number) => Promise<{ close: (opts?: { reason?: string }) => Promise }>, -) { - const port = await getFreePort(); - const server = await start(port); - try { - const res = await postChatCompletions(port, { - model: "openclaw", - messages: [{ role: "user", content: "hi" }], - }); - expect(res.status).toBe(404); - await res.text(); - } finally { - await server.close({ reason: "test done" }); - } -} - function parseSseDataLines(text: string): string[] { return text .split("\n") @@ -115,15 +89,6 @@ function parseSseDataLines(text: string): string[] { } describe("OpenAI-compatible HTTP API (e2e)", () => { - it("rejects when disabled (default + config)", { timeout: 90_000 }, async () => { - await expectChatCompletionsDisabled(startServerWithDefaultConfig); - await expectChatCompletionsDisabled((port) => - startServer(port, { - openAiChatCompletionsEnabled: false, - }), - ); - }); - it("handles request validation and routing", async () => { const port = enabledPort; const mockAgentOnce = (payloads: Array<{ text: string }>) => { diff --git a/src/gateway/openresponses-http.test.ts b/src/gateway/openresponses-http.test.ts index b20359d051c..93fec96b4ac 100644 --- a/src/gateway/openresponses-http.test.ts +++ b/src/gateway/openresponses-http.test.ts @@ -203,36 +203,6 @@ async function expectInvalidRequest( } describe("OpenResponses HTTP API (e2e)", () => { - it("rejects when disabled (default + config)", { timeout: 90_000 }, async () => { - const port = await getFreePort(); - const server = await startServer(port); - try { - const res = await postResponses(port, { - model: "openclaw", - input: "hi", - }); - expect(res.status).toBe(404); - await ensureResponseConsumed(res); - } finally { - await server.close({ reason: "test done" }); - } - - const disabledPort = await getFreePort(); - const disabledServer = await startServer(disabledPort, { - openResponsesEnabled: false, - }); - try { - const res = await postResponses(disabledPort, { - model: "openclaw", - input: "hi", - }); - expect(res.status).toBe(404); - await ensureResponseConsumed(res); - } finally { - await disabledServer.close({ reason: "test done" }); - } - }); - it("handles OpenResponses request parsing and validation", async () => { const port = enabledPort; const mockAgentOnce = (payloads: Array<{ text: string }>, meta?: unknown) => { diff --git a/src/gateway/server-http.probe.test.ts b/src/gateway/server-http.probe.test.ts index 0e55ddeba32..3db4db6506f 100644 --- a/src/gateway/server-http.probe.test.ts +++ b/src/gateway/server-http.probe.test.ts @@ -9,6 +9,29 @@ import { } from "./server-http.test-harness.js"; import type { ReadinessChecker } from "./server/readiness.js"; +describe("gateway OpenAI-compatible disabled HTTP routes", () => { + it("returns 404 when compat endpoints are disabled", async () => { + await withGatewayServer({ + prefix: "openai-compat-disabled", + resolvedAuth: AUTH_NONE, + run: async (server) => { + for (const path of ["/v1/chat/completions", "/v1/responses"]) { + const req = createRequest({ + path, + method: "POST", + headers: { "content-type": "application/json" }, + }); + const { res, getBody } = createResponse(); + await dispatchRequest(server, req, res); + + expect(res.statusCode, path).toBe(404); + expect(getBody(), path).toBe("Not Found"); + } + }, + }); + }); +}); + describe("gateway probe endpoints", () => { it("returns detailed readiness payload for local /ready requests", async () => { const getReadiness: ReadinessChecker = () => ({