发布 0.3.0:恢复 Chat 接口并增强云端事件通知
This commit is contained in:
@@ -313,26 +313,36 @@ func TestRelayReady(t *testing.T) {
|
||||
|
||||
func TestCriticalEventText(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
event parsedEvent
|
||||
wantOK bool
|
||||
wantText string
|
||||
name string
|
||||
event parsedEvent
|
||||
wantOK bool
|
||||
want map[string]string
|
||||
}{
|
||||
{
|
||||
name: "实例终止命中",
|
||||
event: parsedEvent{EventType: "com.oraclecloud.ComputeApi.TerminateInstance", ResourceName: "vm-1"},
|
||||
wantOK: true,
|
||||
wantText: "☁️ 云端事件:免费01 TerminateInstance vm-1",
|
||||
name: "实例终止含操作者与成败",
|
||||
event: parsedEvent{EventType: "com.oraclecloud.ComputeApi.TerminateInstance",
|
||||
ResourceName: "vm-1", Actor: "demo@example.com", SourceIP: "203.0.113.8", Outcome: "成功"},
|
||||
wantOK: true,
|
||||
want: map[string]string{"event": "TerminateInstance", "resource": "vm-1",
|
||||
"actor": "demo@example.com", "ip": "203.0.113.8", "outcome": "成功", "detail": ""},
|
||||
},
|
||||
{
|
||||
name: "无资源名省略尾段",
|
||||
event: parsedEvent{EventType: "com.oraclecloud.IdentityControlPlane.CreateApiKey"},
|
||||
wantOK: true,
|
||||
wantText: "☁️ 云端事件:免费01 CreateApiKey",
|
||||
name: "字段缺失兜底破折号",
|
||||
event: parsedEvent{EventType: "com.oraclecloud.IdentityControlPlane.CreateApiKey"},
|
||||
wantOK: true,
|
||||
want: map[string]string{"event": "CreateApiKey", "resource": "—",
|
||||
"actor": "—", "ip": "—", "outcome": "—", "detail": ""},
|
||||
},
|
||||
{
|
||||
name: "补充说明独立成行",
|
||||
event: parsedEvent{EventType: "CreatePolicy", Detail: "允许发布到 ONS Topic"},
|
||||
wantOK: true,
|
||||
want: map[string]string{"event": "CreatePolicy", "detail": "\n允许发布到 ONS Topic"},
|
||||
},
|
||||
{name: "List 噪声不推", event: parsedEvent{EventType: "com.oraclecloud.ComputeApi.ListInstances"}, wantOK: false},
|
||||
{name: "空类型不推", event: parsedEvent{}, wantOK: false},
|
||||
{name: "短名直接命中", event: parsedEvent{EventType: "LaunchInstance"}, wantOK: true, wantText: "☁️ 云端事件:免费01 LaunchInstance"},
|
||||
{name: "短名直接命中", event: parsedEvent{EventType: "LaunchInstance"}, wantOK: true,
|
||||
want: map[string]string{"event": "LaunchInstance"}},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
@@ -340,13 +350,15 @@ func TestCriticalEventText(t *testing.T) {
|
||||
if ok != tt.wantOK {
|
||||
t.Fatalf("ok = %v, want %v", ok, tt.wantOK)
|
||||
}
|
||||
if ok {
|
||||
got := "☁️ 云端事件:" + vars["tenant"] + " " + vars["event"]
|
||||
if vars["resource"] != "" {
|
||||
got += " " + vars["resource"]
|
||||
}
|
||||
if got != tt.wantText {
|
||||
t.Errorf("vars 渲染 = %q, want %q", got, tt.wantText)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
if vars["tenant"] != "免费01" {
|
||||
t.Errorf("tenant = %q, want 免费01", vars["tenant"])
|
||||
}
|
||||
for k, want := range tt.want {
|
||||
if vars[k] != want {
|
||||
t.Errorf("%s = %q, want %q", k, vars[k], want)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user