gostations/internal/config/config_test.go

56 lines
1.0 KiB
Go
Raw Normal View History

package config
import (
"os"
"path/filepath"
"testing"
)
func TestInitAndGet_Defaults(t *testing.T) {
// Use temp XDG to force a fresh config
dir := t.TempDir()
os.Setenv("XDG_CONFIG_HOME", dir)
defer os.Unsetenv("XDG_CONFIG_HOME")
if err := Init(); err != nil {
t.Fatalf("init: %v", err)
}
if p := MustGet("player.command"); p != "mpv" {
t.Errorf("expected mpv default, got %s", p)
}
if api := API(); api == "" {
t.Error("API should have default")
}
if max := MaxItems(); max != 9999 {
t.Errorf("expected 9999 default, got %d", max)
}
}
func TestGet_Missing(t *testing.T) {
dir := t.TempDir()
os.Setenv("XDG_CONFIG_HOME", dir)
defer os.Unsetenv("XDG_CONFIG_HOME")
_ = Init()
_, err := Get("nonexistent_key_xyz")
if err == nil {
t.Error("expected error for missing key")
}
}
func TestPath(t *testing.T) {
dir := t.TempDir()
os.Setenv("XDG_CONFIG_HOME", dir)
defer os.Unsetenv("XDG_CONFIG_HOME")
_ = Init()
p := Path()
if p == "" || !filepath.IsAbs(p) {
t.Errorf("expected absolute config path, got %q", p)
}
}