59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
package pkgmgr
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
// TestHomeHonorsPIGOHOME verifies Home prefers PIGO_HOME over the default.
|
|
func TestHomeHonorsPIGOHOME(t *testing.T) {
|
|
t.Setenv("PIGO_HOME", "/custom/pigo")
|
|
if got := Home(); got != "/custom/pigo" {
|
|
t.Errorf("Home() = %q, want /custom/pigo", got)
|
|
}
|
|
}
|
|
|
|
// TestTypeDirsUnderHome verifies the plugins/commands/themes dirs nest under
|
|
// $PIGO_HOME.
|
|
func TestTypeDirsUnderHome(t *testing.T) {
|
|
t.Setenv("PIGO_HOME", "/custom/pigo")
|
|
cases := map[PackageType]string{
|
|
TypeExtension: "/custom/pigo/plugins",
|
|
TypePrompt: "/custom/pigo/commands",
|
|
TypeTheme: "/custom/pigo/themes",
|
|
}
|
|
for typ, want := range cases {
|
|
if got := DirForType(typ); got != want {
|
|
t.Errorf("DirForType(%s) = %q, want %q", typ, got, want)
|
|
}
|
|
}
|
|
}
|
|
|
|
// TestSkillsDirHonorsOverride verifies skills use PIGO_SKILLS_DIR, not $PIGO_HOME.
|
|
func TestSkillsDirHonorsOverride(t *testing.T) {
|
|
t.Setenv("PIGO_SKILLS_DIR", "/custom/skills")
|
|
if got := SkillsDir(); got != "/custom/skills" {
|
|
t.Errorf("SkillsDir() = %q, want /custom/skills", got)
|
|
}
|
|
if got := DirForType(TypeSkill); got != "/custom/skills" {
|
|
t.Errorf("DirForType(skill) = %q, want /custom/skills", got)
|
|
}
|
|
}
|
|
|
|
// TestSkillsDirDefault verifies skills default to ~/.agents/skills.
|
|
func TestSkillsDirDefault(t *testing.T) {
|
|
t.Setenv("PIGO_SKILLS_DIR", "")
|
|
t.Setenv("HOME", "/home/tester")
|
|
want := filepath.Join("/home/tester", ".agents", "skills")
|
|
if got := SkillsDir(); got != want {
|
|
t.Errorf("SkillsDir() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
// TestDirForUnknownType verifies an unknown type yields "".
|
|
func TestDirForUnknownType(t *testing.T) {
|
|
if got := DirForType(PackageType("bogus")); got != "" {
|
|
t.Errorf("DirForType(bogus) = %q, want empty", got)
|
|
}
|
|
}
|