ChatGPT-Next-Web/test/model-provider.test.ts

44 lines
1.4 KiB
TypeScript

import { getModelProvider, isModelAvailableInServer } from "../app/utils/model";
describe("getModelProvider", () => {
test("should return model and provider when input contains '@'", () => {
const input = "model@provider";
const [model, provider] = getModelProvider(input);
expect(model).toBe("model");
expect(provider).toBe("provider");
});
test("should return model and undefined provider when input does not contain '@'", () => {
const input = "model";
const [model, provider] = getModelProvider(input);
expect(model).toBe("model");
expect(provider).toBeUndefined();
});
test("should handle multiple '@' characters correctly", () => {
const input = "model@provider@extra";
const [model, provider] = getModelProvider(input);
expect(model).toBe("model@provider");
expect(provider).toBe("extra");
});
test("should return empty strings when input is empty", () => {
const input = "";
const [model, provider] = getModelProvider(input);
expect(model).toBe("");
expect(provider).toBeUndefined();
});
});
describe("isModelAvailableInServer", () => {
test("works when model null", () => {
const jsonBody = JSON.parse("{}") as { model?: string };
const result = isModelAvailableInServer(
"gpt-3.5-turbo@OpenAI",
jsonBody.model as string,
"OpenAI",
);
expect(result).toBe(false);
});
});