// 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") } }