Files
cthulhu/internal/config/phonetic_hints_test.go

46 lines
1.6 KiB
Go

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