package config import ( "os" "path/filepath" "testing" ) func TestLoadDefaultsAndCRFClamp(t *testing.T) { tmp := t.TempDir() t.Setenv("APPDATA", tmp) t.Setenv("XDG_CONFIG_HOME", tmp) cfg := Default() if cfg.DefaultCRF != 20 || cfg.DefaultPreset != "slow" || cfg.Language != "ru" { t.Fatalf("unexpected defaults: %+v", cfg) } cfg.DefaultCRF = 99 if err := Save(cfg); err != nil { t.Fatalf("save failed: %v", err) } loaded := Load() if loaded.DefaultCRF != 20 { t.Fatalf("expected invalid CRF 99 to reset to 20, got %d", loaded.DefaultCRF) } // CRF 0 (lossless) must be preserved cfg.DefaultCRF = 0 if err := Save(cfg); err != nil { t.Fatalf("save CRF 0 failed: %v", err) } loadedZero := Load() if loadedZero.DefaultCRF != 0 { t.Fatalf("expected CRF 0 to be preserved, got %d", loadedZero.DefaultCRF) } path, _ := ConfigPath() if _, err := os.Stat(filepath.Clean(path)); err != nil { t.Fatalf("config file missing: %v", err) } }