2026-08-30 15:20:08 +08:00
|
|
|
package contentmodel
|
|
|
|
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
2026-08-30 19:55:17 +08:00
|
|
|
func TestValidateInputAcceptsSupportedDomesticProviders(t *testing.T) {
|
|
|
|
|
providers := []string{"ark", "dashscope", "deepseek", "moonshot", "zhipu", "qianfan", "hunyuan", "minimax", "baichuan", "siliconflow"}
|
|
|
|
|
for _, provider := range providers {
|
|
|
|
|
t.Run(provider, func(t *testing.T) {
|
|
|
|
|
input := CreateInput{
|
|
|
|
|
TenantID: "10000000-0000-0000-0000-000000000001", DisplayName: provider,
|
|
|
|
|
Provider: provider, BaseURL: "https://model.example.com/v1", ModelID: "summary-model",
|
|
|
|
|
APIKey: "test-api-key", Temperature: 0.2, MaxTokens: 1200,
|
|
|
|
|
}
|
|
|
|
|
if err := validateInput(input); err != nil {
|
|
|
|
|
t.Fatalf("supported provider was rejected: %v", err)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestValidateInputRejectsUnknownProvider(t *testing.T) {
|
|
|
|
|
input := CreateInput{
|
|
|
|
|
TenantID: "10000000-0000-0000-0000-000000000001", DisplayName: "unknown",
|
|
|
|
|
Provider: "unknown", BaseURL: "https://model.example.com/v1", ModelID: "summary-model",
|
|
|
|
|
APIKey: "test-api-key", Temperature: 0.2, MaxTokens: 1200,
|
|
|
|
|
}
|
|
|
|
|
if err := validateInput(input); err == nil {
|
|
|
|
|
t.Fatal("unknown provider was accepted")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-30 15:20:08 +08:00
|
|
|
func TestValidateInputAllowsComposeOllamaEndpoint(t *testing.T) {
|
|
|
|
|
input := CreateInput{
|
|
|
|
|
TenantID: "10000000-0000-0000-0000-000000000001", DisplayName: "本地 Qwen",
|
|
|
|
|
Provider: "openai_compatible", BaseURL: "http://ollama:11434/v1", ModelID: "qwen2.5:7b",
|
|
|
|
|
APIKey: "ollama-local-key", Temperature: 0.1, MaxTokens: 1200,
|
|
|
|
|
}
|
|
|
|
|
if err := validateInput(input); err != nil {
|
|
|
|
|
t.Fatalf("compose Ollama endpoint was rejected: %v", err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestValidateInputRejectsUnapprovedPlainHTTPEndpoint(t *testing.T) {
|
|
|
|
|
input := CreateInput{
|
|
|
|
|
TenantID: "10000000-0000-0000-0000-000000000001", DisplayName: "不安全端点",
|
|
|
|
|
Provider: "openai_compatible", BaseURL: "http://metadata.internal/v1", ModelID: "model",
|
|
|
|
|
APIKey: "test-api-key", Temperature: 0.1, MaxTokens: 1200,
|
|
|
|
|
}
|
|
|
|
|
if err := validateInput(input); err == nil {
|
|
|
|
|
t.Fatal("unapproved plaintext endpoint was accepted")
|
|
|
|
|
}
|
|
|
|
|
}
|