chore: 并入 iotlcm-bot 历史到 bot/(原提交 31dbc1d)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package render
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-bot/internal/archive"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSupplyBlockCoversEveryTrafficOperation(t *testing.T) {
|
||||
observation := json.RawMessage(`{"schemaVersion":1,"resolutionMs":1000,"summary":{"targetChannels":1,"validChannels":1,"confirmedChannels":1,"confirmedChannelMs":6000,"longestMs":6000}}`)
|
||||
for _, operation := range []string{"previous_day_usage_full_sync", "previous_month_usage_full_sync", "current_month_usage_full_sync", "traffic_usage_full_sync"} {
|
||||
a := archive.RunArchive{Run: archive.RunSummary{Operation: operation, SupplyObservation: observation}}
|
||||
if supplyBlock(a) == "" {
|
||||
t.Fatalf("traffic operation %q must show supply block", operation)
|
||||
}
|
||||
}
|
||||
for _, operation := range []string{"sim_status_queue_full_sync", "imei_full_sync"} {
|
||||
a := archive.RunArchive{Run: archive.RunSummary{Operation: operation, SupplyObservation: observation}}
|
||||
if supplyBlock(a) != "" {
|
||||
t.Fatalf("non-traffic operation %q must omit supply block", operation)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSupplyCompatibilityAndPartial(t *testing.T) {
|
||||
a := archive.RunArchive{Run: archive.RunSummary{Operation: "current_month_usage_full_sync"}}
|
||||
if supplyBlock(a) != "" {
|
||||
t.Fatal("legacy archive must omit telemetry")
|
||||
}
|
||||
a.Run.SupplyObservation = json.RawMessage(`{"schemaVersion":1,"resolutionMs":1000,"partial":true,"summary":{"targetChannels":2,"validChannels":2,"confirmedChannels":1,"confirmedChannelMs":6000,"longestMs":6000},"channels":[{"chanKey":"a","confirmedWait":{"totalMs":6000,"longestMs":6000},"producerStageMs":{"global_capacity":6000}}]}`)
|
||||
text := supplyBlock(a)
|
||||
for _, want := range []string{"partial", "6.0通道秒", "global_capacity", "约1秒分辨率", "≥5秒"} {
|
||||
if !strings.Contains(text, want) {
|
||||
t.Fatalf("missing %s in %s", want, text)
|
||||
}
|
||||
}
|
||||
if strings.Contains(text, "全程供料充足") {
|
||||
t.Fatal("unsupported conclusion")
|
||||
}
|
||||
a.Run.SupplyObservation = json.RawMessage(`"bad"`)
|
||||
if !strings.Contains(supplyBlock(a), "不可用") {
|
||||
t.Fatal("bad optional telemetry must degrade")
|
||||
}
|
||||
a.Run.SyncType = "replay"
|
||||
if supplyBlock(a) != "" {
|
||||
t.Fatal("replay changed")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user