Files
story/internal/diagnostics/pilot_daily_snapshot_test.go
T

37 lines
1.5 KiB
Go
Raw Normal View History

2026-08-26 06:41:07 +08:00
package diagnostics
import (
"testing"
"time"
)
func TestValidatePilotDailySnapshotInputUsesNaturalDay(t *testing.T) {
now := time.Date(2026, 3, 9, 12, 0, 0, 0, time.UTC)
_, start, end, err := validatePilotDailySnapshotInput(PilotDailySnapshotInput{
CandidateVersion: "0.55.0-rc.test",
BuildDigest: "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
LocalDate: "2026-03-08",
Timezone: "America/New_York",
Reason: "试点日报归档",
}, now)
if err != nil {
t.Fatal(err)
}
if got := end.Sub(start); got != 23*time.Hour {
t.Fatalf("DST natural day duration=%s, want 23h", got)
}
}
func TestValidatePilotDailySnapshotInputRejectsInvalidTimezoneAndFutureDate(t *testing.T) {
now := time.Date(2026, 8, 25, 12, 0, 0, 0, time.UTC)
for _, input := range []PilotDailySnapshotInput{
{LocalDate: "2026-08-25", Timezone: "Asia/Shanghai", Reason: "试点日报归档"},
{CandidateVersion: "0.55.0-rc.test", BuildDigest: "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", LocalDate: "2026-08-25", Timezone: "Mars/Base", Reason: "试点日报归档"},
{CandidateVersion: "0.55.0-rc.test", BuildDigest: "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", LocalDate: "2026-08-26", Timezone: "Asia/Shanghai", Reason: "试点日报归档"},
} {
if _, _, _, err := validatePilotDailySnapshotInput(input, now); err == nil {
t.Fatalf("expected invalid input: %+v", input)
}
}
}