mirror of
https://git.boos.lat/aibo/BossChat.git
synced 2026-10-30 15:16:11 +00:00
0f40930a41
- Rename Go module: cs-agent → bosschat - Rename all import paths across 200+ Go files - Rename SDK: cs-ai-agent-sdk → bosschat-sdk - Rename message protocol: cs-agent:* → bosschat:* - Rename JS globals: CSAgentConfig → BossChatConfig - Rename CSS classes: cs-agent-* → bosschat-* - Update Makefile APP_NAME and ARCHIVE_NAME - Update logo assets - Fix display name: BoosChat → BossChat
49 lines
1.5 KiB
Go
49 lines
1.5 KiB
Go
package skills
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"bosschat/internal/models"
|
|
)
|
|
|
|
func TestParseSkillExamples(t *testing.T) {
|
|
examples := parseSkillExamples(`[" 退款进度 ","","发票补开","修改收货地址","多余示例"]`)
|
|
if len(examples) != 3 {
|
|
t.Fatalf("expected 3 examples, got %d", len(examples))
|
|
}
|
|
if examples[0] != "退款进度" || examples[1] != "发票补开" || examples[2] != "修改收货地址" {
|
|
t.Fatalf("unexpected examples: %#v", examples)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeRouteDecision(t *testing.T) {
|
|
if got := normalizeRouteDecision("```refund_skill```\n补充说明"); got != "refund_skill" {
|
|
t.Fatalf("unexpected normalized decision: %q", got)
|
|
}
|
|
if got := normalizeRouteDecision(" none "); got != "NONE" {
|
|
t.Fatalf("expected NONE, got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestBuildSkillRoutePrompt(t *testing.T) {
|
|
prompt := buildSkillRoutePrompt("我要申请退款", []models.SkillDefinition{
|
|
{
|
|
Code: "refund_skill",
|
|
Name: "退款处理",
|
|
Description: "负责退款和退货相关问题",
|
|
Examples: `["退款进度","退货运费"]`,
|
|
},
|
|
})
|
|
|
|
if !strings.Contains(prompt, "skillCode=refund_skill") {
|
|
t.Fatalf("expected prompt to include skill code, got %q", prompt)
|
|
}
|
|
if !strings.Contains(prompt, "examples=退款进度 | 退货运费") {
|
|
t.Fatalf("expected prompt to include examples, got %q", prompt)
|
|
}
|
|
if !strings.Contains(prompt, "请只输出一个 skillCode 或 NONE。") {
|
|
t.Fatalf("expected prompt to include output constraint, got %q", prompt)
|
|
}
|
|
}
|