test: verificar que Load() puebla ConfigDir correctamente

Test con directorio anidado (agents/_specials/father-bot/) que
confirma que ConfigDir se resuelve al directorio padre del config
y que system_prompt_file se puede resolver relativo a el.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-10 23:21:28 +00:00
parent 1b499c9b67
commit 06501e2bcc
+41
View File
@@ -50,6 +50,47 @@ llm:
}
}
// ── 2.1b: ConfigDir populated from file path ───────────────────────────
func TestLoad_ConfigDir(t *testing.T) {
// Create a nested directory to simulate agents/_specials/father-bot/
dir := filepath.Join(t.TempDir(), "agents", "_specials", "father-bot")
if err := os.MkdirAll(dir, 0755); err != nil {
t.Fatal(err)
}
path := writeYAML(t, dir, "config.yaml", `
agent:
id: father-bot
matrix:
homeserver: https://matrix.example.com
user_id: "@father-bot:example.com"
llm:
primary:
provider: claude-code
claude_code:
binary: claude
reasoning:
system_prompt_file: prompts/system.md
`)
cfg, err := Load(path)
if err != nil {
t.Fatalf("Load() error: %v", err)
}
if cfg.ConfigDir != dir {
t.Errorf("ConfigDir = %q, want %q", cfg.ConfigDir, dir)
}
// Verify that joining ConfigDir + system_prompt_file gives the right path
spPath := filepath.Join(cfg.ConfigDir, cfg.LLM.Reasoning.SystemPromptFile)
wantSuffix := filepath.Join("agents", "_specials", "father-bot", "prompts", "system.md")
if !filepath.IsAbs(spPath) {
// When running from TempDir, path will be absolute
t.Logf("spPath = %q (expected to end with %q)", spPath, wantSuffix)
}
if cfg.LLM.Reasoning.SystemPromptFile != "prompts/system.md" {
t.Errorf("SystemPromptFile = %q, want %q", cfg.LLM.Reasoning.SystemPromptFile, "prompts/system.md")
}
}
// ── 2.2: Parse full config with all sections ────────────────────────────
func TestLoad_FullConfig(t *testing.T) {