diff --git a/packages/core/src/services/cronScheduler.test.ts b/packages/core/src/services/cronScheduler.test.ts index 6755e7eacf7..ca7a0b44937 100644 --- a/packages/core/src/services/cronScheduler.test.ts +++ b/packages/core/src/services/cronScheduler.test.ts @@ -1056,14 +1056,16 @@ describe('CronScheduler', () => { vi.useRealTimers(); usingFakeTimers = false; - // The probe acquired the lock and flipped this session to owner. + // The probe acquired the lock. await vi.waitFor(async () => { const raw = await fs.readFile(getLockFilePath(tmpDir), 'utf-8'); expect(JSON.parse(raw).sessionId).toBe('session-1'); }); - // Now an owner, the durable job fires. - scheduler.tick(new Date(2025, 0, 15, 10, 31, 59)); - expect(fired.map((j) => j.id)).toContain('probe-job'); + // The lock write can be visible before the probe's .then flips isOwner. + await vi.waitFor(() => { + scheduler.tick(new Date(2025, 0, 15, 10, 31, 59)); + expect(fired.map((j) => j.id)).toEqual(['probe-job']); + }); } finally { if (usingFakeTimers) vi.useRealTimers(); }