package config import ( "encoding/json" "os" "path/filepath" "testing" ) func TestKeylogPrefOverridesEnv(t *testing.T) { base := t.TempDir() t.Setenv("XDG_CONFIG_HOME", base) t.Setenv("APPDATA", base) t.Setenv("KEYLOG_ENABLED", "1") if !KeylogEnabled() { t.Fatal("expected env default on") } if err := SetKeylogEnabled(false); err != nil { t.Fatal(err) } if KeylogEnabled() { t.Fatal("pref should disable keylog") } if err := SetKeylogEnabled(true); err != nil { t.Fatal(err) } if !KeylogEnabled() { t.Fatal("pref should enable keylog") } raw, err := os.ReadFile(filepath.Join(base, AppDataDir, SettingsFileName)) if err != nil { t.Fatal(err) } var s fileSettings if err := json.Unmarshal(raw, &s); err != nil { t.Fatal(err) } if s.Klogging == nil || !*s.Klogging { t.Fatalf("saved settings = %s", raw) } if s.KeylogEnabled != nil { t.Fatalf("legacy keylog_enabled should be dropped, got %s", raw) } }