feat(bell): add alert acknowledgement vertical slice
Harness governance / validate (pull_request) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user