package config import ( "os" "path/filepath" "testing" ) func TestResolvedHomeDir_Default(t *testing.T) { cfg := &Config{} home, err := os.UserHomeDir() if err != nil { t.Skip("cannot determine home directory") } want := filepath.Join(home, ".kandev") if got := cfg.ResolvedHomeDir(); got != want { t.Errorf("ResolvedHomeDir() = %q, want %q", got, want) } } func TestResolvedHomeDir_WithHomeDir(t *testing.T) { cfg := &Config{HomeDir: "/custom/kandev"} if got := cfg.ResolvedHomeDir(); got != "/custom/kandev" { t.Errorf("ResolvedHomeDir() = %q, want %q", got, "/custom/kandev") } } func TestResolvedHomeDir_TildeExpansion(t *testing.T) { home, err := os.UserHomeDir() if err != nil { t.Skip("cannot determine home directory") } cfg := &Config{HomeDir: "~/.kandev-dev"} want := filepath.Join(home, ".kandev-dev") if got := cfg.ResolvedHomeDir(); got != want { t.Errorf("ResolvedHomeDir() = %q, want %q", got, want) } } func TestResolvedDataDir_Default(t *testing.T) { cfg := &Config{} home, err := os.UserHomeDir() if err != nil { t.Skip("cannot determine home directory") } want := filepath.Join(home, ".kandev", "data") if got := cfg.ResolvedDataDir(); got != want { t.Errorf("ResolvedDataDir() = %q, want %q", got, want) } } func TestResolvedDataDir_DerivedFromHomeDir(t *testing.T) { // Data always lives under /data. No independent override. cfg := &Config{HomeDir: "/custom/kandev"} want := filepath.Join("/custom/kandev", "data") if got := cfg.ResolvedDataDir(); got != want { t.Errorf("ResolvedDataDir() = %q, want %q", got, want) } }