import { isModelNotavailableInServer } from "../app/utils/model"; describe("isModelNotavailableInServer", () => { test("test model will return false, which means the model is available", () => { const customModels = ""; const modelName = "gpt-4"; const providerNames = "OpenAI"; const result = isModelNotavailableInServer( customModels, modelName, providerNames, ); expect(result).toBe(false); }); test("test model will return true when model is not available in custom models", () => { const customModels = "-all,gpt-4o-mini"; const modelName = "gpt-4"; const providerNames = "OpenAI"; const result = isModelNotavailableInServer( customModels, modelName, providerNames, ); expect(result).toBe(true); }); test("should respect DISABLE_GPT4 setting", () => { process.env.DISABLE_GPT4 = "1"; const result = isModelNotavailableInServer("", "gpt-4", "OpenAI"); expect(result).toBe(true); }); test("should handle empty provider names", () => { const result = isModelNotavailableInServer("-all,gpt-4", "gpt-4", ""); expect(result).toBe(true); }); test("should be case insensitive for model names", () => { const result = isModelNotavailableInServer("-all,GPT-4", "gpt-4", "OpenAI"); expect(result).toBe(true); }); test("support passing multiple providers, model unavailable on one of the providers will return true", () => { const customModels = "-all,gpt-4@google"; const modelName = "gpt-4"; const providerNames = ["OpenAI", "Azure"]; const result = isModelNotavailableInServer( customModels, modelName, providerNames, ); expect(result).toBe(true); }); // FIXME: 这个测试用例有问题,需要修复 // test("support passing multiple providers, model available on one of the providers will return false", () => { // const customModels = "-all,gpt-4@google"; // const modelName = "gpt-4"; // const providerNames = ["OpenAI", "Google"]; // const result = isModelNotavailableInServer( // customModels, // modelName, // providerNames, // ); // expect(result).toBe(false); // }); test("test custom model without setting provider", () => { const customModels = "-all,mistral-large"; const modelName = "mistral-large"; const providerNames = modelName; const result = isModelNotavailableInServer( customModels, modelName, providerNames, ); expect(result).toBe(false); }); });