From 8b404eccffe61ad1ca35125f18429b0e99c675a3 Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Tue, 14 Apr 2026 21:42:52 +0530 Subject: [PATCH] test(openai): cover base URL helpers --- extensions/openai/base-url.test.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 extensions/openai/base-url.test.ts diff --git a/extensions/openai/base-url.test.ts b/extensions/openai/base-url.test.ts new file mode 100644 index 00000000000..e430a47b63a --- /dev/null +++ b/extensions/openai/base-url.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from "vitest"; +import { isOpenAIApiBaseUrl, isOpenAICodexBaseUrl } from "./base-url.js"; + +describe("openai base URL helpers", () => { + it("recognizes direct OpenAI API routes", () => { + expect(isOpenAIApiBaseUrl("https://api.openai.com")).toBe(true); + expect(isOpenAIApiBaseUrl("https://api.openai.com/v1")).toBe(true); + expect(isOpenAIApiBaseUrl("https://api.openai.com/v1/")).toBe(true); + }); + + it("rejects proxy or unrelated API routes", () => { + expect(isOpenAIApiBaseUrl("https://proxy.example.com/v1")).toBe(false); + expect(isOpenAIApiBaseUrl("https://chatgpt.com/backend-api")).toBe(false); + expect(isOpenAIApiBaseUrl(undefined)).toBe(false); + }); + + it("recognizes Codex ChatGPT backend routes", () => { + expect(isOpenAICodexBaseUrl("https://chatgpt.com/backend-api")).toBe(true); + expect(isOpenAICodexBaseUrl("https://chatgpt.com/backend-api/")).toBe(true); + }); + + it("rejects non-Codex backend routes", () => { + expect(isOpenAICodexBaseUrl("https://api.openai.com/v1")).toBe(false); + expect(isOpenAICodexBaseUrl("https://chatgpt.com")).toBe(false); + expect(isOpenAICodexBaseUrl(undefined)).toBe(false); + }); +});