Files
openclaw/extensions/openai/base-url.test.ts
Nimrod Gutman 90801ba400 fix(openai-codex): normalize stale transport metadata in resolution and discovery (#67635)
Merged via squash.

Supersedes:
- #66969 by @saamuelng601-pixel
- #67159 by @hclsys

Co-authored-by: saamuelng601-pixel <274746699+saamuelng601-pixel@users.noreply.github.com>
Co-authored-by: hclsys <7755017+hclsys@users.noreply.github.com>
2026-04-16 14:30:05 +03:00

32 lines
1.5 KiB
TypeScript

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);
expect(isOpenAICodexBaseUrl("https://chatgpt.com/backend-api/v1")).toBe(true);
expect(isOpenAICodexBaseUrl("https://chatgpt.com/backend-api/v1/")).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("https://chatgpt.com/backend-api/v2")).toBe(false);
expect(isOpenAICodexBaseUrl("https://chatgpt.com/backend-api/codex")).toBe(false);
expect(isOpenAICodexBaseUrl(undefined)).toBe(false);
});
});