mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-10-31 14:23: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);
 | |
|   });
 | |
| });
 |