53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestLoadJellyfinSection(t *testing.T) {
|
|
t.Setenv("HOME", t.TempDir())
|
|
|
|
path := filepath.Join(os.Getenv("HOME"), ".config", "cliamp", "config.toml")
|
|
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
|
|
t.Fatalf("MkdirAll: %v", err)
|
|
}
|
|
|
|
data := []byte(`
|
|
[jellyfin]
|
|
url = "https://jellyfin.example.com"
|
|
token = "abc123"
|
|
user = "finamp"
|
|
password = "1qazxsw2"
|
|
user_id = "user-42"
|
|
`)
|
|
if err := os.WriteFile(path, data, 0o644); err != nil {
|
|
t.Fatalf("WriteFile: %v", err)
|
|
}
|
|
|
|
cfg, err := Load()
|
|
if err != nil {
|
|
t.Fatalf("Load: %v", err)
|
|
}
|
|
|
|
if cfg.Jellyfin.URL != "https://jellyfin.example.com" {
|
|
t.Fatalf("Jellyfin.URL = %q, want https://jellyfin.example.com", cfg.Jellyfin.URL)
|
|
}
|
|
if cfg.Jellyfin.Token != "abc123" {
|
|
t.Fatalf("Jellyfin.Token = %q, want abc123", cfg.Jellyfin.Token)
|
|
}
|
|
if cfg.Jellyfin.User != "finamp" {
|
|
t.Fatalf("Jellyfin.User = %q, want finamp", cfg.Jellyfin.User)
|
|
}
|
|
if cfg.Jellyfin.Password != "1qazxsw2" {
|
|
t.Fatalf("Jellyfin.Password = %q, want 1qazxsw2", cfg.Jellyfin.Password)
|
|
}
|
|
if cfg.Jellyfin.UserID != "user-42" {
|
|
t.Fatalf("Jellyfin.UserID = %q, want user-42", cfg.Jellyfin.UserID)
|
|
}
|
|
if !cfg.Jellyfin.IsSet() {
|
|
t.Fatal("Jellyfin.IsSet() = false, want true")
|
|
}
|
|
}
|