package preset import ( "testing" ) func TestBuiltinPresetsLoad(t *testing.T) { t.Setenv("XDG_CONFIG_HOME", t.TempDir()) presets, err := LoadAll() if err != nil { t.Fatal(err) } if len(presets) < 3 { t.Errorf("Built-in-Presets fehlen: %d geladen", len(presets)) } for _, p := range presets { if p.Source != "builtin" { t.Errorf("Preset %s: Source = %s", p.Name, p.Source) } if len(p.Scripts) == 0 { t.Errorf("Preset %s hat keine Scripte", p.Name) } } } func TestSaveAndUserOverride(t *testing.T) { t.Setenv("XDG_CONFIG_HOME", t.TempDir()) p := Preset{ Name: "minimal", Description: "eigene Variante", Scripts: []Entry{{Name: "00-header", Enabled: true}}, } if _, err := SaveUser(p); err != nil { t.Fatal(err) } presets, err := LoadAll() if err != nil { t.Fatal(err) } for _, got := range presets { if got.Name == "minimal" { if got.Source != "user" || got.Description != "eigene Variante" { t.Errorf("User-Override greift nicht: %+v", got) } return } } t.Fatal("minimal nicht gefunden") } func TestDeleteUserRejectsUnknown(t *testing.T) { t.Setenv("XDG_CONFIG_HOME", t.TempDir()) if err := DeleteUser("gibt-es-nicht"); err == nil { t.Error("Löschen eines fehlenden Presets sollte fehlschlagen") } }