35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
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))
|
|
}
|
|
}
|