From 7e5a9ef272c711400245c41c90b830ead8c3acf9 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Sat, 31 Oct 2026 06:08:54 -0700 Subject: [PATCH] test(staging-seed): run the real lease sweep after seeding (TASK-697) Co-Authored-By: Claude Opus 5.5 Co-authored-by: Ember Agent-Model: claude/claude-opus-5-5/medium --- backend/__tests__/unit/scripts/stagingSeed.test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/__tests__/unit/scripts/stagingSeed.test.js b/backend/__tests__/unit/scripts/stagingSeed.test.js index 6e8d3c726c..48f5618c20 100644 --- a/backend/__tests__/unit/scripts/stagingSeed.test.js +++ b/backend/__tests__/unit/scripts/stagingSeed.test.js @@ -123,6 +123,12 @@ describe('staging seed', () => { // eslint-disable-next-line no-await-in-loop expect(await Task.countDocuments({ podId, $or: KernelWorkSweepService.lapsedConditions(at) })).toBe(0); } + // The real sweep, run a day later, leaves every seeded claimed row claimed. + const claimedBefore = await Task.find({ podId, status: 'claimed' }).select('_id').lean(); + const { rescued, deferred } = await KernelWorkSweepService.rescueLapsed(new Date(Date.now() + 24 * 3600 * 1000)); + const seededIds = new Set(claimedBefore.map((row) => String(row._id))); + expect([...rescued, ...deferred].filter((row) => seededIds.has(String(row._id)))).toHaveLength(0); + expect(await Task.countDocuments({ podId, status: 'claimed' })).toBe(claimedBefore.length); }); it('keeps members who joined through the UI across a re-run, and stays idempotent', async () => {