package prompts import ( "os" "path/filepath" "testing" ) func TestRegistry_DefaultAndOverride(t *testing.T) { r := New() r.SetDefault("k", "默认") if r.Get("k") != "默认" { t.Fatal("应返回默认") } r.SetOverride("k", "覆盖") if r.Get("k") != "覆盖" { t.Fatal("覆盖应优先") } r.SetOverride("k", "") // 空串=清覆盖 if r.Get("k") != "默认" { t.Fatal("清覆盖后应回退默认") } if r.Get("missing") != "" { t.Fatal("未登记 key 应返回空串") } } func TestLoadFile(t *testing.T) { SetDefault("eval.quality", "内置默认评审词") dir := t.TempDir() f := filepath.Join(dir, "p.json") os.WriteFile(f, []byte(`{"eval.quality":"文件覆盖的评审词"}`), 0o644) t.Setenv("PROMPTS_FILE", f) LoadFile() if Get("eval.quality") != "文件覆盖的评审词" { t.Fatalf("PROMPTS_FILE 覆盖未生效,got %q", Get("eval.quality")) } SetOverride("eval.quality", "") // 复位,避免污染其它测试 }