Files
clawgo/pkg/config/normalized_test.go
2026-04-08 15:25:28 +08:00

44 lines
1.5 KiB
Go

package config
import "testing"
func TestNormalizedViewProjectsCoreAndRuntime(t *testing.T) {
cfg := DefaultConfig()
cfg.Agents.Router.Enabled = true
cfg.Models.Providers["openai"] = ProviderConfig{
APIBase: "https://api.openai.com/v1",
Models: []string{"gpt-5.4"},
MaxTokens: 12288,
Temperature: 0.35,
TimeoutSec: 90,
}
cfg.Agents.Subagents["coder"] = SubagentConfig{
Enabled: true,
Role: "coding",
SystemPromptFile: "agents/coder/AGENT.md",
Tools: SubagentToolsConfig{Allowlist: []string{"shell"}},
Runtime: SubagentRuntimeConfig{Provider: "openai"},
}
view := cfg.NormalizedView()
if view.Core.DefaultProvider != "openai" || view.Core.DefaultModel != "gpt-5.4" {
t.Fatalf("unexpected default model projection: %+v", view.Core)
}
subcfg, ok := view.Core.Subagents["coder"]
if !ok {
t.Fatalf("expected normalized subagent")
}
if subcfg.Prompt != "agents/coder/AGENT.md" || subcfg.Provider != "openai" {
t.Fatalf("unexpected normalized subagent: %+v", subcfg)
}
if !view.Runtime.Router.Enabled || view.Runtime.Router.Strategy != "rules_first" {
t.Fatalf("unexpected runtime router: %+v", view.Runtime.Router)
}
if got := view.Runtime.Providers["openai"].MaxTokens; got != 12288 {
t.Fatalf("expected provider max_tokens in normalized runtime view, got %d", got)
}
if got := view.Runtime.Providers["openai"].Temperature; got != 0.35 {
t.Fatalf("expected provider temperature in normalized runtime view, got %v", got)
}
}