39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package store
|
|
|
|
import "testing"
|
|
|
|
func TestUpsertRuleDefaults(t *testing.T) {
|
|
s := NewFileStore(t.TempDir() + "/config.json")
|
|
if err := s.UpsertRule(Rule{Name: "API Errors", LogQL: `{service="api"} |= "error"`}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
data, err := s.Load()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(data.Rules) != 1 {
|
|
t.Fatalf("expected one rule, got %d", len(data.Rules))
|
|
}
|
|
rule := data.Rules[0]
|
|
if rule.ID != "api-errors" || rule.Threshold != 1 || rule.Window != "5m" || rule.Cooldown != "1h" {
|
|
t.Fatalf("unexpected defaults: %#v", rule)
|
|
}
|
|
}
|
|
|
|
func TestUpsertAlertChannelPreservesSecret(t *testing.T) {
|
|
s := NewFileStore(t.TempDir() + "/config.json")
|
|
if err := s.UpsertAlertChannel(AlertChannel{ID: "ntfy", Name: "ntfy", Type: "ntfy", Enabled: true, Params: map[string]string{"token": "secret", "topic": "alerts"}}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := s.UpsertAlertChannel(AlertChannel{ID: "ntfy", Name: "ntfy", Type: "ntfy", Enabled: true, Params: map[string]string{"topic": "alerts2"}}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
data, err := s.Load()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got := data.AlertChannels[0].Params["token"]; got != "secret" {
|
|
t.Fatalf("secret was not preserved: %q", got)
|
|
}
|
|
}
|