Files
ai-agent/cmd/testdata/aiagent/init_test.go
T

68 lines
2.1 KiB
Go
Raw Normal View History

package aiagent
import (
"code.tczkiot.com/wlw/ai-agent/cmd/testdata/seedlang"
"code.tczkiot.com/wlw/ai-agent/cmd/testdata/seeds"
"regexp"
"strings"
"testing"
)
var hanTextPattern = regexp.MustCompile(`\p{Han}`)
func TestEnglishAIAgentSeedDoesNotContainChineseText(t *testing.T) {
for _, item := range seeds.AIAgentSeeds(seedlang.English) {
values := []string{item.Name, item.Description, item.SystemPrompt, item.WelcomeMessage, item.FallbackMessage}
values = append(values, item.LegacyNames...)
for _, value := range values {
if hanTextPattern.MatchString(value) {
t.Fatalf("english AI agent seed contains Chinese text: %q", value)
}
}
}
}
func TestChineseAIAgentSeedUsesPresalesConfiguration(t *testing.T) {
items := seeds.AIAgentSeeds(seedlang.Chinese)
if len(items) != 1 {
t.Fatalf("expected one Chinese AI agent seed, got %d", len(items))
}
item := items[0]
if item.Name != "贝壳AI售前客服" {
t.Fatalf("unexpected Chinese AI agent name: %q", item.Name)
}
for _, expected := range []string{
"你是贝壳AIAgentDesk)的售前客服",
"# 售前对话策略",
"# 事实与工具边界",
"不得编造价格、折扣、合同条款、商业 SLA",
} {
if !strings.Contains(item.SystemPrompt, expected) {
t.Fatalf("Chinese AI agent system prompt missing %q", expected)
}
}
if !strings.Contains(item.WelcomeMessage, "贝壳AI售前客服") {
t.Fatalf("unexpected welcome message: %q", item.WelcomeMessage)
}
if !strings.Contains(item.FallbackMessage, "方案评估") {
t.Fatalf("unexpected fallback message: %q", item.FallbackMessage)
}
}
func TestBuildModelsUsesSupportedBindings(t *testing.T) {
items := buildModels(seedlang.Chinese, 7, []int64{11}, "13")
if len(items) != 1 {
t.Fatalf("expected one AI agent model, got %d", len(items))
}
item := items[0]
if item.AIConfigID != 7 || item.KnowledgeIDs != "11" || item.TeamIDs != "13" {
t.Fatalf("unexpected AI agent bindings: %+v", item)
}
columns := seedUpdateColumns(item)
if value, ok := columns["knowledge_ids"]; !ok || value != "11" {
t.Fatalf("seed update must keep knowledge bindings, got %#v", value)
}
}