Files
go-worm/lib/config/settings_test.go
T
kato ac31e52a8c feat(agent): add persistent klogging settings
- Add settings API and UI to toggle keylog
- Persist preference in settings.json
- Expose klogging state in status endpoint
- Inject build version into web console
- Bump version automatically on build
2026-09-01 23:36:39 +03:00

46 lines
951 B
Go

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)
}
}