model-available.test.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { isModelNotavailableInServer } from "../app/utils/model";
  2. describe("isModelNotavailableInServer", () => {
  3. test("test model will return false, which means the model is available", () => {
  4. const customModels = "";
  5. const modelName = "gpt-4";
  6. const providerNames = "OpenAI";
  7. const result = isModelNotavailableInServer(customModels, modelName, providerNames);
  8. expect(result).toBe(false);
  9. });
  10. test("test model will return true when model is not available in custom models", () => {
  11. const customModels = "-all,gpt-4o-mini";
  12. const modelName = "gpt-4";
  13. const providerNames = "OpenAI";
  14. const result = isModelNotavailableInServer(customModels, modelName, providerNames);
  15. expect(result).toBe(true);
  16. });
  17. test("should respect DISABLE_GPT4 setting", () => {
  18. process.env.DISABLE_GPT4 = "1";
  19. const result = isModelNotavailableInServer("", "gpt-4", "OpenAI");
  20. expect(result).toBe(true);
  21. });
  22. test("should handle empty provider names", () => {
  23. const result = isModelNotavailableInServer("-all,gpt-4", "gpt-4", "");
  24. expect(result).toBe(true);
  25. });
  26. test("should be case insensitive for model names", () => {
  27. const result = isModelNotavailableInServer("-all,GPT-4", "gpt-4", "OpenAI");
  28. expect(result).toBe(true);
  29. });
  30. test("support passing multiple providers, model unavailable on one of the providers will return true", () => {
  31. const customModels = "-all,gpt-4@Google";
  32. const modelName = "gpt-4";
  33. const providerNames = ["OpenAI", "Azure"];
  34. const result = isModelNotavailableInServer(customModels, modelName, providerNames);
  35. expect(result).toBe(true);
  36. });
  37. test("support passing multiple providers, model available on one of the providers will return false", () => {
  38. const customModels = "-all,gpt-4@Google";
  39. const modelName = "gpt-4";
  40. const providerNames = ["OpenAI", "Google"];
  41. const result = isModelNotavailableInServer(customModels, modelName, providerNames);
  42. expect(result).toBe(false);
  43. });
  44. test("test custom model without setting provider", () => {
  45. const customModels = "-all,mistral-large";
  46. const modelName = "mistral-large";
  47. const providerNames = modelName;
  48. const result = isModelNotavailableInServer(customModels, modelName, providerNames);
  49. expect(result).toBe(false);
  50. });
  51. })