43 lines
970 B
Go
43 lines
970 B
Go
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)
|
|
}
|
|
}
|