Files
ProxmoxDash/email_test.go
2026-07-31 23:01:46 +03:00

41 lines
1.3 KiB
Go

package main
import "testing"
func TestFilterEmailAlerts(t *testing.T) {
alerts := []Alert{
{ID: "cpu", Severity: "critical", Source: "CPU"},
{ID: "backup", Severity: "critical", Source: "Backups"},
{ID: "info", Severity: "info", Source: "CPU"},
}
settings := EmailSettings{Severities: []string{"critical"}, Sources: []string{"CPU"}}
filtered := filterEmailAlerts(alerts, settings)
if len(filtered) != 1 || filtered[0].ID != "cpu" {
t.Fatalf("unexpected filtered alerts: %+v", filtered)
}
}
func TestEmailPasswordIsPreserved(t *testing.T) {
store, err := openStore(":memory:")
if err != nil {
t.Fatal(err)
}
defer store.Close()
settings := defaultEmailSettings()
settings.Host, settings.From, settings.To, settings.Password = "smtp.example.com", "dash@example.com", "admin@example.com", "secret"
if err := store.SaveEmailSettings(settings); err != nil {
t.Fatal(err)
}
settings.Password = ""
settings.IntervalMinutes = 120
if err := store.SaveEmailSettings(settings); err != nil {
t.Fatal(err)
}
if got := store.EmailSettings(true); got.Password != "secret" || got.IntervalMinutes != 120 {
t.Fatalf("unexpected settings: %+v", got)
}
if got := store.EmailSettings(false); got.Password != "" || !got.HasPassword {
t.Fatalf("password leaked or marker lost: %+v", got)
}
}