33 lines
841 B
Go
33 lines
841 B
Go
// Copyright (c) 2026 Storm Dragon
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package config
|
|
|
|
import (
|
|
"path/filepath"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestPromptSettingsValidationAndSave(t *testing.T) {
|
|
settings, err := Decode([]byte("version = 3\n[prompt]\nexact_matches = ['READY']\ncustom_patterns = ['^Device [0-9]+ ready:$']\n"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
path := filepath.Join(t.TempDir(), "settings.toml")
|
|
doc, err := Open_document(path, settings)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := doc.Save(settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
loaded, _, err := Load(path, nil)
|
|
if err != nil || !reflect.DeepEqual(loaded.Prompt, settings.Prompt) {
|
|
t.Fatal(loaded.Prompt, err)
|
|
}
|
|
if _, err := Decode([]byte("version = 3\n[prompt]\ncustom_patterns = ['[']\n")); err == nil {
|
|
t.Fatal("invalid regex accepted")
|
|
}
|
|
}
|