package config import ( "os" "testing" ) func TestNewDefaults(t *testing.T) { cfg := New() if cfg.Port != 8080 { t.Errorf("expected default port 8080, got %d", cfg.Port) } if cfg.DataDir != "./data" { t.Errorf("expected default data dir ./data, got %s", cfg.DataDir) } if cfg.Workers != 2 { t.Errorf("expected default workers 2, got %d", cfg.Workers) } if cfg.RefreshInterval != 5 { t.Errorf("expected default refresh interval 5, got %d", cfg.RefreshInterval) } } func TestEnvOverrides(t *testing.T) { os.Setenv("VIDARCHIVE_PORT", "9090") os.Setenv("VIDARCHIVE_WORKERS", "4") os.Setenv("VIDARCHIVE_BASE_URL", "https://vidarchive.example.com") defer func() { os.Unsetenv("VIDARCHIVE_PORT") os.Unsetenv("VIDARCHIVE_WORKERS") os.Unsetenv("VIDARCHIVE_BASE_URL") }() cfg := New() if cfg.Port != 9090 { t.Errorf("expected port 9090, got %d", cfg.Port) } if cfg.Workers != 4 { t.Errorf("expected workers 4, got %d", cfg.Workers) } if cfg.BaseURL != "https://vidarchive.example.com" { t.Errorf("expected base URL https://vidarchive.example.com, got %s", cfg.BaseURL) } if !cfg.IsHTTPS() { t.Error("expected IsHTTPS() to be true") } } func TestIsHTTPS(t *testing.T) { tests := []struct { url string expected bool }{ {"", false}, {"http://localhost:8080", false}, {"https://example.com", true}, {"https://vidarchive.example.com/path", true}, } for _, test := range tests { cfg := &Config{BaseURL: test.url} if cfg.IsHTTPS() != test.expected { t.Errorf("IsHTTPS() for %q = %v, expected %v", test.url, cfg.IsHTTPS(), test.expected) } } }