package config import ( "path/filepath" "testing" ) func TestStructuralFocusDefaultPersistenceAndApplicationOverride(t *testing.T) { settings := DefaultSettings() if settings.StructuralNavigationTriggersFocusMode { t.Fatal("automatic structural focus must default off") } omitted, err := Load(writeConfig(t, "schema-version = 2\nactive-profile = 'default'\n[profiles.default]\n")) if err != nil || omitted.StructuralNavigationTriggersFocusMode { t.Fatalf("omitted setting = %t, %v", omitted.StructuralNavigationTriggersFocusMode, err) } store, err := NewStore(filepath.Join(t.TempDir(), "settings.toml")) if err != nil { t.Fatal(err) } settings.StructuralNavigationTriggersFocusMode = true if err := store.Save(settings); err != nil { t.Fatal(err) } loaded, err := store.Load() if err != nil || !loaded.StructuralNavigationTriggersFocusMode { t.Fatalf("saved setting = %t, %v", loaded.StructuralNavigationTriggersFocusMode, err) } inherited, _, err := store.LoadForApplication("Editor") if err != nil || !inherited.StructuralNavigationTriggersFocusMode { t.Fatalf("inherited setting = %t, %v", inherited.StructuralNavigationTriggersFocusMode, err) } loaded.StructuralNavigationTriggersFocusMode = false if err := store.SaveForApplication("Editor", loaded); err != nil { t.Fatal(err) } overridden, found, err := store.LoadForApplication("Editor") if err != nil || !found || overridden.StructuralNavigationTriggersFocusMode { t.Fatalf("application override = %t, %t, %v", overridden.StructuralNavigationTriggersFocusMode, found, err) } global, err := store.Load() if err != nil || !global.StructuralNavigationTriggersFocusMode { t.Fatalf("application override changed global = %t, %v", global.StructuralNavigationTriggersFocusMode, err) } }