// Copyright (c) 2026 Storm Dragon // SPDX-License-Identifier: GPL-3.0-or-later package config import ( "path/filepath" "reflect" "testing" ) func TestIgnoredVTValidationAndPersistence(t *testing.T) { for _, value := range []string{"[0]", "[-1]", "[64]", "[7,7]", "['7']", "'7,8'"} { if _, err := Decode([]byte("version=3\n[screen]\nignored_vts=" + value)); err == nil { t.Fatal("accepted invalid ignored VTs", value) } } for _, value := range []string{"[]", "[1,7,8,10,63]"} { settings, err := Decode([]byte("version=3\n[screen]\nignored_vts=" + value)) 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.Screen, settings.Screen) { t.Fatal("document lost console policy", loaded.Screen, settings.Screen, err) } if err := Save(path, settings); err != nil { t.Fatal(err) } loaded, _, err = Load(path, nil) if err != nil || !reflect.DeepEqual(loaded.Screen, settings.Screen) { t.Fatal("quick save lost console policy", loaded.Screen, settings.Screen, err) } } }