sync: 同步 v1.0.4 并脱敏配置与镜像
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
package warningnotify
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSmallAndLargePlatformSummary(t *testing.T) {
|
||||
b := Batch{Method: MethodPlatform, WarnStage: 2}
|
||||
for i := 0; i < 2; i++ {
|
||||
b.Items = append(b.Items, Event{ItemType: 1, ItemCode: fmt.Sprintf("898600000000000000%02d", i), WarnLevel: 3})
|
||||
}
|
||||
applyContent(&b)
|
||||
for _, item := range b.Items {
|
||||
if !strings.Contains(b.PlatformContent, item.ItemCode) {
|
||||
t.Fatal("missing card")
|
||||
}
|
||||
}
|
||||
if b.EmailBody != "" || b.SMSContent != "" {
|
||||
t.Fatal("unrelated content generated")
|
||||
}
|
||||
for i := 2; i < 10000; i++ {
|
||||
b.Items = append(b.Items, Event{ItemType: 1, ItemCode: "89860000000000000000", WarnLevel: 3})
|
||||
}
|
||||
applyContent(&b)
|
||||
if !strings.Contains(b.PlatformContent, "10000") || len([]rune(b.PlatformContent)) > 150 {
|
||||
t.Fatal("unbounded summary")
|
||||
}
|
||||
b.Method = MethodWechat
|
||||
b.EmailBody = ""
|
||||
applyContent(&b)
|
||||
if b.EmailBody != "" {
|
||||
t.Fatal("wechat generated email")
|
||||
}
|
||||
payload := buildWechatPayload(b, "openid", "template", "pages/message/index")
|
||||
if payload.Data["character_string6"].Value != "TOTAL-10000" {
|
||||
t.Fatal("missing total")
|
||||
}
|
||||
if !strings.Contains(payload.Data["thing9"].Value, "10000") || !strings.Contains(payload.Data["thing9"].Value, levelText(3)) {
|
||||
t.Fatal("missing count or severity")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCollectorKeepsFullCountWithBoundedRecipientPreview(t *testing.T) {
|
||||
collector := NewCollector()
|
||||
recipient := &platformRecipientGroup{SendUserType: 2, UserIDs: []int64{11}}
|
||||
other := &platformRecipientGroup{SendUserType: 2, UserIDs: []int64{12}}
|
||||
for page := 0; page < 50; page++ {
|
||||
batch := Batch{Method: MethodPlatform, Business: BusinessSimWarning, TenantID: "tenant-a", Category: "traffic", WarnStage: 2}
|
||||
for index := 0; index < 200; index++ {
|
||||
batch.Items = append(batch.Items, Event{ItemCode: fmt.Sprintf("8986%016d", page*200+index), WarnLevel: 3, ItemType: 1})
|
||||
}
|
||||
collector.merge(batch, recipient)
|
||||
batch.Method = MethodWechat
|
||||
collector.merge(batch, recipient)
|
||||
}
|
||||
collector.merge(Batch{Method: MethodPlatform, TenantID: "tenant-a", Business: BusinessSimWarning, Category: "traffic", Items: []Event{{ItemCode: "private", ItemType: 1}}}, other)
|
||||
if len(collector.batches) != 3 {
|
||||
t.Fatalf("channels or recipients merged: %d", len(collector.batches))
|
||||
}
|
||||
for _, batch := range collector.batches {
|
||||
if len(batch.Items) > 5 {
|
||||
t.Fatal("preview grows with cards")
|
||||
}
|
||||
if batch.prepared.UserIDs[0] == 11 {
|
||||
if batchItemCount(*batch) != 10000 {
|
||||
t.Fatal("count lost across pages")
|
||||
}
|
||||
for _, item := range batch.Items {
|
||||
if item.ItemCode == "private" {
|
||||
t.Fatal("recipient data leak")
|
||||
}
|
||||
}
|
||||
if batch.Method == MethodWechat {
|
||||
payload := buildWechatPayload(*batch, "openid", "template", "pages/message/index")
|
||||
if payload.Data["character_string6"].Value != "TOTAL-10000" {
|
||||
t.Fatal("preview count used as total")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user