From 29d32e3097477c27d477555c8fd2ec05233c61b5 Mon Sep 17 00:00:00 2001 From: bvandeusen Date: Sun, 19 Apr 2026 15:15:29 +0000 Subject: [PATCH] M1/#293: cover LibraryConfig env + yaml --- internal/config/config_test.go | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index d36ef4c9..24a6eb9e 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -94,3 +94,49 @@ func TestAdminBootstrapEnvOverrides(t *testing.T) { t.Errorf("admin password = %q", cfg.Auth.AdminBootstrap.Password) } } + +func TestLibraryEnvOverrides(t *testing.T) { + t.Setenv("SMARTMUSIC_LIBRARY_SCAN_PATHS", "/music:/other::/third") + t.Setenv("SMARTMUSIC_LIBRARY_SCAN_ON_STARTUP", "true") + + cfg, err := Load("") + if err != nil { + t.Fatalf("Load: %v", err) + } + want := []string{"/music", "/other", "/third"} + if len(cfg.Library.ScanPaths) != len(want) { + t.Fatalf("scan_paths = %v, want %v", cfg.Library.ScanPaths, want) + } + for i, p := range want { + if cfg.Library.ScanPaths[i] != p { + t.Errorf("scan_paths[%d] = %q, want %q", i, cfg.Library.ScanPaths[i], p) + } + } + if !cfg.Library.ScanOnStartup { + t.Error("scan_on_startup = false, want true") + } +} + +func TestLibraryYAMLLoads(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "config.yaml") + content := []byte(`library: + scan_paths: + - /srv/music + - /mnt/archive + scan_on_startup: true +`) + if err := os.WriteFile(path, content, 0o644); err != nil { + t.Fatal(err) + } + cfg, err := Load(path) + if err != nil { + t.Fatalf("Load: %v", err) + } + if len(cfg.Library.ScanPaths) != 2 || cfg.Library.ScanPaths[0] != "/srv/music" { + t.Errorf("scan_paths = %v", cfg.Library.ScanPaths) + } + if !cfg.Library.ScanOnStartup { + t.Error("scan_on_startup = false") + } +}