gostations/internal/config/config_test.go
Greg Gauthier ec5db53b8e
Some checks failed
gobuild / build (push) Failing after 4s
feat(cli): default to bubbles TUI, add find/play subcmds + JSON favorites
- implement internal/ui with bubbles list + ★ fav markers, filter, enter stub
- add data/favorites (JSON roundtrip, Add/Remove, XDG), config tests
- wire subcommands: `find -j`, `play [url|search]`
- gate legacy wmenu behind --legacy; keep old flags for seeding
- fix inverted -short guards, format string, go.mod deps
- add unit tests for radio prune, player IsInstalled, ui keys, etc.
2026-06-05 21:23:11 +01:00

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)
}
}