46 lines
1.7 KiB
Go
46 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|