Files
LaodingBot/internal/agent/router_parser_test.go

35 lines
1.1 KiB
Go
Raw Permalink Normal View History

package agent
import "testing"
func TestParseCapabilityRoute(t *testing.T) {
raw := `{"need_skills":true,"selected_tools":["shell"],"selected_skills":["文件系统查询专家"],"reason":"需要技能约束"}`
out, err := parseCapabilityRoute(raw)
if err != nil {
t.Fatalf("parseCapabilityRoute error: %v", err)
}
if !out.NeedSkills {
t.Fatal("expected need_skills=true")
}
if len(out.SelectedTools) != 1 || out.SelectedTools[0] != "shell" {
t.Fatalf("unexpected selected_tools: %#v", out.SelectedTools)
}
if len(out.SelectedSkills) != 1 || out.SelectedSkills[0] != "文件系统查询专家" {
t.Fatalf("unexpected selected_skills: %#v", out.SelectedSkills)
}
}
func TestParseCapabilityRouteCodeFence(t *testing.T) {
raw := "```json\n{\"need_skills\":false,\"selected_tools\":[\"file\",\"shell\"],\"selected_skills\":[],\"reason\":\"工具足够\"}\n```"
out, err := parseCapabilityRoute(raw)
if err != nil {
t.Fatalf("parseCapabilityRoute error: %v", err)
}
if out.NeedSkills {
t.Fatal("expected need_skills=false")
}
if len(out.SelectedTools) != 2 {
t.Fatalf("unexpected selected_tools len: %d", len(out.SelectedTools))
}
}