package config import ( "os" "path/filepath" "testing" ) func TestLoadDefaultsAndOverrides(t *testing.T) { cfg, err := Load("") if err != nil { t.Fatalf("Load default failed: %v", err) } if cfg.Server.Port != 3000 || cfg.Landing.DefaultLang != "ru" { t.Fatalf("unexpected default config: %+v", cfg) } tmpFile := filepath.Join(t.TempDir(), "polar.toml") tomlData := ` [server] host = "127.0.0.1" port = 4000 base_url = "https://git.example.com/" [storage] data_dir = "/var/lib/polar" [auth] registration_enabled = false [landing] enabled = false default_lang = "en" ` if err := os.WriteFile(tmpFile, []byte(tomlData), 0o644); err != nil { t.Fatalf("write temp toml: %v", err) } t.Setenv("POLAR_SERVER_PORT", "8080") loaded, err := Load(tmpFile) if err != nil { t.Fatalf("Load from file failed: %v", err) } if loaded.Server.Port != 8080 { t.Fatalf("expected env POLAR_SERVER_PORT=8080 to override file port 4000, got %d", loaded.Server.Port) } if loaded.Server.BaseURL != "https://git.example.com" { t.Fatalf("expected trailing slash trimmed from base_url, got %q", loaded.Server.BaseURL) } if loaded.Auth.RegistrationEnabled { t.Fatalf("expected registration_enabled = false") } if loaded.Landing.DefaultLang != "en" { t.Fatalf("expected default_lang = en, got %q", loaded.Landing.DefaultLang) } if loaded.DBPath() != filepath.Join(loaded.Storage.DataDir, "polar.db") { t.Fatalf("expected DBPath to default to polar.db, got %q", loaded.DBPath()) } }