From 8553013ee814817a62fb70001d3bdd6a25587606 Mon Sep 17 00:00:00 2001 From: tt-a1i <53142663+tt-a1i@users.noreply.github.com> Date: Sun, 21 Jun 2026 06:40:42 +0800 Subject: [PATCH] test(core): wait for cron lock probe takeover (#5535) --- packages/core/src/services/cronScheduler.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/core/src/services/cronScheduler.test.ts b/packages/core/src/services/cronScheduler.test.ts index 6755e7eacf..ca7a0b4493 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(); }