35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
// Copyright (c) 2026 Storm Dragon
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestCapitalDefaultsAndExplicitChoicesSurviveSave(t *testing.T) {
|
|
for _, version := range []int{1, 2, 3} {
|
|
settings, err := Decode([]byte(fmt.Sprintf("version=%d\n", version)))
|
|
if err != nil || !settings.Reading.RaisePitchForCapitals || settings.Reading.BeepForCapitals || settings.Reading.SayCapForCapitals {
|
|
t.Fatal(version, settings.Reading, err)
|
|
}
|
|
}
|
|
for choices := range 8 {
|
|
input := fmt.Sprintf("version=3\n[reading]\nraise_pitch_for_capitals=%t\nbeep_for_capitals=%t\nsay_cap_for_capitals=%t\n", choices&1 != 0, choices&2 != 0, choices&4 != 0)
|
|
settings, err := Decode([]byte(input))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
path := filepath.Join(t.TempDir(), "settings.toml")
|
|
if err := Save(path, settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
saved, _, err := Load(path, nil)
|
|
if err != nil || saved.Reading != settings.Reading {
|
|
t.Fatal(saved.Reading, settings.Reading, err)
|
|
}
|
|
}
|
|
}
|