package agent import ( "context" "testing" llm "github.com/VictorVargas/rony-llm-agent/pkg/llm" "github.com/VictorVargas/rony-llm-agent/pkg/persona" "github.com/VictorVargas/rony-llm-agent/pkg/tools" ) func TestSubAgent_Run(t *testing.T) { mockClient := &mockLLM{ generateFunc: func(ctx context.Context, req llm.CompletionRequest) (llm.CompletionResponse, error) { return llm.CompletionResponse{Content: "sub-agent done"}, nil }, } sa := SubAgent{ Name: "planner", Persona: persona.DefaultPersona(), Tools: tools.NewRegistry(), } resp, err := sa.Run(context.Background(), mockClient, "", "plan the task") if err != nil { t.Fatalf("unexpected error: %v", err) } if resp.Content != "sub-agent done" { t.Errorf("expected 'sub-agent done', got %q", resp.Content) } } func TestSubAgent_Run_DefaultsMaxIterations(t *testing.T) { mockClient := &mockLLM{ generateFunc: func(ctx context.Context, req llm.CompletionRequest) (llm.CompletionResponse, error) { return llm.CompletionResponse{Content: "done"}, nil }, } sa := SubAgent{Persona: persona.DefaultPersona(), Tools: tools.NewRegistry()} if sa.MaxIterations != 0 { t.Fatalf("expected zero-value MaxIterations for this test, got %d", sa.MaxIterations) } if _, err := sa.Run(context.Background(), mockClient, "", "hi"); err != nil { t.Fatalf("unexpected error: %v", err) } } func TestSubAgentRegistry_Get(t *testing.T) { reg := SubAgentRegistry{ "builder": SubAgent{Name: "builder"}, } got, ok := reg.Get("builder") if !ok || got.Name != "builder" { t.Fatalf("expected to find 'builder', got %+v, ok=%v", got, ok) } if _, ok := reg.Get("missing"); ok { t.Error("expected 'missing' to not be found") } }