package paths
import (
"path/filepath"
"runtime"
"testing"
)
func TestDataDir(t *testing.T) {
tmpDir := t.TempDir()
// 1. $CHIRAMI_DATA override
customData := filepath.Join(tmpDir, "custom-data")
t.Setenv("CHIRAMI_DATA", customData)
if got := DataDir(); got != customData {
t.Errorf("DataDir with CHIRAMI_DATA = %q, want %q", got, customData)
}
t.Setenv("CHIRAMI_DATA", "")
fakeHome := filepath.Join(tmpDir, "fakehome")
t.Setenv("HOME", fakeHome)
if runtime.GOOS == "darwin" {
want := filepath.Join(fakeHome, "Library", "Application Support", "chirami")
if got := DataDir(); got != want {
t.Errorf("DataDir on darwin = %q, want %q", got, want)
}
} else {
// Linux with XDG_DATA_HOME
xdgData := filepath.Join(tmpDir, "xdg-data")
t.Setenv("XDG_DATA_HOME", xdgData)
wantXDG := filepath.Join(xdgData, "chirami")
if got := DataDir(); got != wantXDG {
t.Errorf("DataDir with XDG_DATA_HOME = %q, want %q", got, wantXDG)
}
// Linux without XDG_DATA_HOME
t.Setenv("XDG_DATA_HOME", "")
wantDefault := filepath.Join(fakeHome, ".local", "share", "chirami")
if got := DataDir(); got != wantDefault {
t.Errorf("DataDir default linux = %q, want %q", got, wantDefault)
}
}
}