thread-master/internal/model/job/cron/next_run_test.go

28 lines
614 B
Go

package cron
import (
"testing"
"time"
"haixun-backend/internal/library/clock"
)
func TestNextRunAt_HourlyCron(t *testing.T) {
from := time.Date(2026, 6, 23, 10, 30, 0, 0, time.UTC)
next, err := NextRunAt("0 * * * *", "UTC", from)
if err != nil {
t.Fatalf("NextRunAt() error = %v", err)
}
nextTime := clock.FromUnixNano(next)
if nextTime.Hour() != 11 || nextTime.Minute() != 0 {
t.Fatalf("next = %v, want 11:00 UTC", nextTime)
}
}
func TestNextRunAt_InvalidCron(t *testing.T) {
_, err := NextRunAt("not-a-cron", "UTC", clock.Now())
if err == nil {
t.Fatal("expected invalid cron error")
}
}