fix: harden cron persistence error visibility and timing testability

This commit is contained in:
野生派Coder~
2026-02-15 23:27:13 +08:00
parent 05821ff2fd
commit 7d89ee51be
2 changed files with 50 additions and 11 deletions

View File

@@ -72,6 +72,31 @@ func TestNextSleepDuration(t *testing.T) {
}
}
func TestNextSleepDuration_UsesProvidedNow(t *testing.T) {
cs := &CronService{
opts: RuntimeOptions{
RunLoopMinSleep: 1 * time.Second,
RunLoopMaxSleep: 30 * time.Second,
},
running: map[string]struct{}{},
store: &CronStore{Jobs: []CronJob{}},
}
now := time.UnixMilli(10_000)
next := int64(15_000)
cs.store.Jobs = []CronJob{{
ID: "1",
Enabled: true,
State: CronJobState{
NextRunAtMS: &next,
},
}}
if got := cs.nextSleepDuration(now); got != 5*time.Second {
t.Fatalf("expected 5s sleep from provided now, got %s", got)
}
}
func TestCheckJobs_NoConcurrentRunForSameJob(t *testing.T) {
var running int32
var maxRunning int32