43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
// Copyright (c) 2026 Storm Dragon
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package config
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestReviewOptionsMigrationAndDocumentSave(t *testing.T) {
|
|
for _, version := range []string{"1", "2", "3"} {
|
|
base := "version=" + version + "\n"
|
|
settings, err := Decode([]byte(base))
|
|
if err != nil || settings.Review != (Review{true, true, true, true}) {
|
|
t.Fatal(version, settings.Review, err)
|
|
}
|
|
settings, err = Decode([]byte(base + "[review]\nline_break=false\nend_of_screen=false\nleave_review_on_cursor_change=false\nleave_review_on_screen_change=false\n"))
|
|
if err != nil || settings.Review != (Review{}) {
|
|
t.Fatal(version, settings.Review, err)
|
|
}
|
|
path := filepath.Join(t.TempDir(), "settings.toml")
|
|
if err := Save(path, settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
doc, err := Open_document(path, Defaults())
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
doc.Settings.Presentation.Speech.Rate = 20
|
|
if err := doc.Save(doc.Settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
loaded, _, err := Load(path, nil)
|
|
if err != nil || loaded.Review != (Review{}) {
|
|
t.Fatal(loaded.Review, err)
|
|
}
|
|
}
|
|
if _, err := Decode([]byte("version=3\n[review]\nline_break='false'")); err == nil {
|
|
t.Fatal("accepted invalid review setting")
|
|
}
|
|
}
|