|
@@ -39,6 +39,26 @@ describe("getApiProtocol", () => {
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
+ describe("Vercel AI Gateway provider", () => {
|
|
|
|
|
+ it("should return 'anthropic' for vercel-ai-gateway provider with anthropic models", () => {
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "anthropic/claude-3-opus")).toBe("anthropic")
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "anthropic/claude-3.5-sonnet")).toBe("anthropic")
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "ANTHROPIC/claude-sonnet-4")).toBe("anthropic")
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "anthropic/claude-opus-4.1")).toBe("anthropic")
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ it("should return 'openai' for vercel-ai-gateway provider with non-anthropic models", () => {
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "openai/gpt-4")).toBe("openai")
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "google/gemini-pro")).toBe("openai")
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "meta/llama-3")).toBe("openai")
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway", "mistral/mixtral")).toBe("openai")
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ it("should return 'openai' for vercel-ai-gateway provider without model", () => {
|
|
|
|
|
+ expect(getApiProtocol("vercel-ai-gateway")).toBe("openai")
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
describe("Other providers", () => {
|
|
describe("Other providers", () => {
|
|
|
it("should return 'openai' for non-anthropic providers regardless of model", () => {
|
|
it("should return 'openai' for non-anthropic providers regardless of model", () => {
|
|
|
expect(getApiProtocol("openrouter", "claude-3-opus")).toBe("openai")
|
|
expect(getApiProtocol("openrouter", "claude-3-opus")).toBe("openai")
|