feat: add unit tests for AgentHandlerService and buildInstructionTraceSummary
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
package factory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
einocallbacks "cs-agent/internal/ai/runtime/internal/impl/callbacks"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAgentHandlerServiceBuildWithCollectorOnly(t *testing.T) {
|
||||||
|
collector := einocallbacks.NewRuntimeTraceCollector()
|
||||||
|
service := NewAgentHandlerService(nil)
|
||||||
|
|
||||||
|
handlers, err := service.Build(context.Background(), BuildAgentHandlersInput{
|
||||||
|
Collector: collector,
|
||||||
|
InstructionSummary: einocallbacks.InstructionTraceSummary{
|
||||||
|
SectionTitles: []string{"项目级规则", "系统治理规则"},
|
||||||
|
HasProjectRule: true,
|
||||||
|
HasGovernanceRule: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Build returned error: %v", err)
|
||||||
|
}
|
||||||
|
if len(handlers) != 1 {
|
||||||
|
t.Fatalf("expected 1 handler, got %d", len(handlers))
|
||||||
|
}
|
||||||
|
if !collector.Data.Instruction.HasProjectRule || !collector.Data.Instruction.HasGovernanceRule {
|
||||||
|
t.Fatalf("instruction summary was not written to collector: %#v", collector.Data.Instruction)
|
||||||
|
}
|
||||||
|
if len(collector.Data.Instruction.SectionTitles) != 2 {
|
||||||
|
t.Fatalf("unexpected section titles: %#v", collector.Data.Instruction.SectionTitles)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAgentHandlerServiceBuildWithEmptyInput(t *testing.T) {
|
||||||
|
service := NewAgentHandlerService(nil)
|
||||||
|
|
||||||
|
handlers, err := service.Build(context.Background(), BuildAgentHandlersInput{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Build returned error: %v", err)
|
||||||
|
}
|
||||||
|
if len(handlers) != 0 {
|
||||||
|
t.Fatalf("expected no handlers, got %d", len(handlers))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package factory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestBuildInstructionTraceSummary(t *testing.T) {
|
||||||
|
got := buildInstructionTraceSummary(InstructionAssemblySummary{
|
||||||
|
SectionTitles: []string{"项目级规则", "当前技能上下文"},
|
||||||
|
HasProjectRule: true,
|
||||||
|
HasGovernanceRule: true,
|
||||||
|
HasAgentRule: true,
|
||||||
|
HasSkillRule: true,
|
||||||
|
HasToolRule: false,
|
||||||
|
})
|
||||||
|
|
||||||
|
if len(got.SectionTitles) != 2 {
|
||||||
|
t.Fatalf("unexpected section titles: %#v", got.SectionTitles)
|
||||||
|
}
|
||||||
|
if !got.HasProjectRule || !got.HasGovernanceRule || !got.HasAgentRule || !got.HasSkillRule {
|
||||||
|
t.Fatalf("unexpected summary flags: %#v", got)
|
||||||
|
}
|
||||||
|
if got.HasToolRule {
|
||||||
|
t.Fatalf("expected HasToolRule false, got %#v", got)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user