28 lines
614 B
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")
|
|
}
|
|
}
|