Files

53 lines
2.0 KiB
Go
Raw Permalink Normal View History

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")
}
}
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")
}
}