feat(bell): add alert acknowledgement vertical slice
Harness governance / validate (pull_request) Has been cancelled

This commit is contained in:
QiuSW
2026-08-11 17:01:53 +08:00
parent 477afa6ba2
commit 8208118904
29 changed files with 1820 additions and 56 deletions
+43
View File
@@ -0,0 +1,43 @@
package alert
import (
"os"
"path/filepath"
"testing"
)
func TestLoadRulesRejectsUnknownAndDuplicateValues(t *testing.T) {
path := filepath.Join(t.TempDir(), "rules.json")
valid := `{"version":1,"rules":[{"tenant_id":1,"site_id":2,"rule_key":"zone-entry","display_name":"区域闯入","event_kind":"zone_entry","minimum_severity":"medium","enabled":true,"effective_from":"2026-08-11T00:00:00Z"}]}`
if err := os.WriteFile(path, []byte(valid), 0o600); err != nil {
t.Fatal(err)
}
rules, err := LoadRules(path)
if err != nil || len(rules) != 1 {
t.Fatalf("load valid rules: %v %#v", err, rules)
}
if err := os.WriteFile(path, []byte(`{"version":1,"unknown":true,"rules":[]}`), 0o600); err != nil {
t.Fatal(err)
}
if _, err := LoadRules(path); err == nil {
t.Fatal("unknown rule document property was accepted")
}
if err := os.WriteFile(path, []byte(valid+` trailing`), 0o600); err != nil {
t.Fatal(err)
}
if _, err := LoadRules(path); err == nil {
t.Fatal("trailing rule file data was accepted")
}
}
func TestSeverityRankIsStable(t *testing.T) {
for index, value := range []string{"low", "medium", "high", "critical"} {
rank, ok := SeverityRank(value)
if !ok || rank != index {
t.Fatalf("rank %q: %d %v", value, rank, ok)
}
}
if _, ok := SeverityRank("urgent"); ok {
t.Fatal("unknown severity was accepted")
}
}