From 5193189953386f3821aa6b6ed88906e436282f1a Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 3 Mar 2026 01:39:24 +0000 Subject: [PATCH] refactor(tests): dedupe cron store migration setup --- src/cron/service.store.migration.test.ts | 56 +++++++++++++----------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/cron/service.store.migration.test.ts b/src/cron/service.store.migration.test.ts index 99c6c65f11b..8daa0b39e9a 100644 --- a/src/cron/service.store.migration.test.ts +++ b/src/cron/service.store.migration.test.ts @@ -62,6 +62,26 @@ async function migrateLegacyJob(legacyJob: Record) { } } +async function expectDefaultCronStaggerForLegacySchedule(params: { + id: string; + name: string; + expr: string; +}) { + const createdAtMs = 1_700_000_000_000; + const migrated = await migrateLegacyJob( + makeLegacyJob({ + id: params.id, + name: params.name, + createdAtMs, + updatedAtMs: createdAtMs, + schedule: { kind: "cron", expr: params.expr, tz: "UTC" }, + }), + ); + const schedule = migrated.schedule as Record; + expect(schedule.kind).toBe("cron"); + expect(schedule.staggerMs).toBe(DEFAULT_TOP_OF_HOUR_STAGGER_MS); +} + describe("cron store migration", () => { beforeEach(() => { noopLogger.debug.mockClear(); @@ -130,35 +150,19 @@ describe("cron store migration", () => { }); it("adds default staggerMs to legacy recurring top-of-hour cron schedules", async () => { - const createdAtMs = 1_700_000_000_000; - const migrated = await migrateLegacyJob( - makeLegacyJob({ - id: "job-cron-legacy", - name: "Legacy cron", - createdAtMs, - updatedAtMs: createdAtMs, - schedule: { kind: "cron", expr: "0 */2 * * *", tz: "UTC" }, - }), - ); - const schedule = migrated.schedule as Record; - expect(schedule.kind).toBe("cron"); - expect(schedule.staggerMs).toBe(DEFAULT_TOP_OF_HOUR_STAGGER_MS); + await expectDefaultCronStaggerForLegacySchedule({ + id: "job-cron-legacy", + name: "Legacy cron", + expr: "0 */2 * * *", + }); }); it("adds default staggerMs to legacy 6-field top-of-hour cron schedules", async () => { - const createdAtMs = 1_700_000_000_000; - const migrated = await migrateLegacyJob( - makeLegacyJob({ - id: "job-cron-seconds-legacy", - name: "Legacy cron seconds", - createdAtMs, - updatedAtMs: createdAtMs, - schedule: { kind: "cron", expr: "0 0 */3 * * *", tz: "UTC" }, - }), - ); - const schedule = migrated.schedule as Record; - expect(schedule.kind).toBe("cron"); - expect(schedule.staggerMs).toBe(DEFAULT_TOP_OF_HOUR_STAGGER_MS); + await expectDefaultCronStaggerForLegacySchedule({ + id: "job-cron-seconds-legacy", + name: "Legacy cron seconds", + expr: "0 0 */3 * * *", + }); }); it("removes invalid legacy staggerMs from non top-of-hour cron schedules", async () => {