36 lines
945 B
Go
36 lines
945 B
Go
// Copyright (c) 2026 Storm Dragon
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package config
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestDateTimePresetsValidateAndRoundTrip(t *testing.T) {
|
|
settings := Defaults()
|
|
settings.Presentation.DateTime = DateTime{TimeFormat: "12-hour-seconds", DateFormat: "full-dmy"}
|
|
path := filepath.Join(t.TempDir(), "settings.toml")
|
|
if err := Save(path, settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
loaded, _, err := Load(path, nil)
|
|
if err != nil || loaded.Presentation.DateTime != settings.Presentation.DateTime {
|
|
t.Fatal(loaded, err)
|
|
}
|
|
for _, value := range []string{"", "unknown", "%H:%M"} {
|
|
for _, date := range []bool{false, true} {
|
|
invalid := Defaults()
|
|
if date {
|
|
invalid.Presentation.DateTime.DateFormat = value
|
|
} else {
|
|
invalid.Presentation.DateTime.TimeFormat = value
|
|
}
|
|
if invalid.Validate() == nil {
|
|
t.Fatal("invalid format accepted", date, value)
|
|
}
|
|
}
|
|
}
|
|
}
|