chore: 并入 iotlcm-bot 历史到 bot/(原提交 31dbc1d)
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package archive
|
||||
|
||||
import "testing"
|
||||
|
||||
func validArchive() RunArchive {
|
||||
return RunArchive{Version: 1, Run: RunSummary{RunID: "run-1", Operation: "sim_status_queue_full_sync", Status: "completed_with_failures", SuccessCount: 175893, FailedCount: 10504, CreatedAt: "2026-09-22T11:42:33Z", CompletedAt: "2026-09-22T12:32:01Z"}, Rounds: []RoundStats{
|
||||
{RunID: "run-1", Round: 1, EnqueuedCount: 186397, ActiveCount: 0, NextRoundCount: 9023, SuccessCount: 175870, FailedCount: 1504, UpstreamAttemptCount: 0, BatchCount: 1872, StartedAt: "2026-09-22T11:42:34Z", CompletedAt: "2026-09-22T12:21:49Z"},
|
||||
{RunID: "run-1", Round: 2, EnqueuedCount: 9023, ActiveCount: 0, NextRoundCount: 9000, SuccessCount: 23, FailedCount: 0, UpstreamAttemptCount: 0, BatchCount: 92, StartedAt: "2026-09-22T12:21:51Z", CompletedAt: "2026-09-22T12:26:55Z"},
|
||||
{RunID: "run-1", Round: 3, EnqueuedCount: 9000, ActiveCount: 0, NextRoundCount: 0, SuccessCount: 0, FailedCount: 9000, UpstreamAttemptCount: 0, BatchCount: 90, StartedAt: "2026-09-22T12:26:56Z", CompletedAt: "2026-09-22T12:32:01Z"},
|
||||
}}
|
||||
}
|
||||
|
||||
func TestValidateThreeRounds(t *testing.T) {
|
||||
a := validArchive()
|
||||
if err := a.Validate(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(a.Rounds) != 3 || a.Run.FailedCount != 10504 {
|
||||
t.Fatalf("unexpected archive: %+v", a)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateRejectsEmptyRounds(t *testing.T) {
|
||||
a := RunArchive{Version: 1, Run: RunSummary{RunID: "run-1", Operation: "sim_status_queue_full_sync", Status: "completed"}}
|
||||
if err := a.Validate(); err == nil {
|
||||
t.Fatal("expected empty rounds to be rejected")
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateRejectsUnclosedRound(t *testing.T) {
|
||||
a := validArchive()
|
||||
a.Rounds[0].NextRoundCount++
|
||||
if err := a.Validate(); err == nil {
|
||||
t.Fatal("expected count closure error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateFilenameRequiresExactRunID(t *testing.T) {
|
||||
if err := ValidateFilename(`/archive/run-full-run-id.json`, "full-run-id"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := ValidateFilename(`/archive/run-other-id.json`, "full-run-id"); err == nil {
|
||||
t.Fatal("expected mismatched filename to be rejected")
|
||||
}
|
||||
if err := ValidateFilename(`/archive/action-full-run-id.json`, "full-run-id"); err == nil {
|
||||
t.Fatal("expected non-run filename to be rejected")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user