// Copyright (c) 2026 Storm Dragon // Authors: Storm Dragon, Angus Kola // SPDX-License-Identifier: GPL-3.0-or-later package config import ( "os" "path/filepath" "testing" ) func TestTitleChangePreferenceDefaultsForExistingSettings(t *testing.T) { settings, err := Load(filepath.Join("testdata", "settings-v2.toml")) if err != nil { t.Fatal(err) } if !settings.Reading.AutomaticallyReadTitleChanges { t.Fatal("omitted title preference defaults off") } } func TestTitleChangePreferenceRoundTripAndInheritance(t *testing.T) { path := filepath.Join(t.TempDir(), "settings.toml") store, err := NewStore(path) if err != nil { t.Fatal(err) } global := DefaultSettings() if err = store.Save(global); err != nil { t.Fatal(err) } application := global application.Reading.AutomaticallyReadTitleChanges = false if err = store.SaveForApplication("Noisy Application", application); err != nil { t.Fatal(err) } contents, err := os.ReadFile(path) if err != nil { t.Fatal(err) } _, loaded, err := decodeDocument(contents) if err != nil || !loaded.Reading.AutomaticallyReadTitleChanges { t.Fatalf("global = %t, %v", loaded.Reading.AutomaticallyReadTitleChanges, err) } restored, found, err := store.LoadForApplication("Noisy Application") if err != nil || !found || restored.Reading.AutomaticallyReadTitleChanges { t.Fatalf("override = %t, found %t, %v", restored.Reading.AutomaticallyReadTitleChanges, found, err) } global.Reading.AutomaticallyReadTitleChanges = false if err = store.Save(global); err != nil { t.Fatal(err) } inherited, _, err := store.LoadForApplication("Other Application") if err != nil || inherited.Reading.AutomaticallyReadTitleChanges { t.Fatalf("inheritance = %t, %v", inherited.Reading.AutomaticallyReadTitleChanges, err) } }