Files
fenrir/internal/config/attributes_test.go

38 lines
1.1 KiB
Go

// Copyright (c) 2026 Storm Dragon
// SPDX-License-Identifier: GPL-3.0-or-later
package config
import (
"fmt"
"path/filepath"
"testing"
)
func TestAttributesDefaultsValidationAndPersistence(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.Attributes != "none" {
t.Fatal(version, settings.Reading, err)
}
}
for _, mode := range []string{"none", "speech", "beeps", "both"} {
settings, err := Decode([]byte("version=3\n[reading]\nattributes='" + mode + "'\n"))
if err != nil {
t.Fatal(err)
}
settings.Reading.AttributeFormat = "fenrirBold|fenrirUnderline|fenrirFGColor"
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, err)
}
}
if _, err := Decode([]byte("version=3\n[reading]\nattributes='invalid'\n")); err == nil {
t.Fatal("invalid attributes mode accepted")
}
}