56 lines
1.0 KiB
Go
56 lines
1.0 KiB
Go
|
|
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)
|
||
|
|
}
|
||
|
|
}
|