41 lines
1.3 KiB
Go
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)
|
|
}
|
|
}
|