mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-11-04 08:13:43 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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);
 | 
						|
  });
 | 
						|
});
 |