package config import ( "os" "path/filepath" "testing" ) func TestDefaultValidate(t *testing.T) { cfg := Default() if err := cfg.Validate(); err != nil { t.Fatalf("default config invalid: %v", err) } } func TestLoadAndValidate(t *testing.T) { dir := t.TempDir() path := filepath.Join(dir, "config.json") if err := os.WriteFile(path, []byte(`{"fm":{"frequencyMHz":99.9},"backend":{"kind":"file","outputPath":"out.f32"},"control":{"listenAddress":"127.0.0.1:8088"}}`), 0o644); err != nil { t.Fatalf("write config: %v", err) } cfg, err := Load(path) if err != nil { t.Fatalf("load config: %v", err) } if cfg.FM.FrequencyMHz != 99.9 { t.Fatalf("unexpected frequency: %v", cfg.FM.FrequencyMHz) } } func TestValidateRejectsBadFrequency(t *testing.T) { cfg := Default() cfg.FM.FrequencyMHz = 200 if err := cfg.Validate(); err == nil { t.Fatal("expected validation error") } }