From 58c190f0b1a1e92a1e66d85ac03f659b0624f392 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Sun, 16 Aug 2026 17:30:45 +0300 Subject: [PATCH] fix(web): use Vitest timers in PR status tests --- packages/web/server/lib/github/pr-status.test.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/web/server/lib/github/pr-status.test.js b/packages/web/server/lib/github/pr-status.test.js index bbde6c78..eca83611 100644 --- a/packages/web/server/lib/github/pr-status.test.js +++ b/packages/web/server/lib/github/pr-status.test.js @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, mock, setSystemTime, test } from 'bun:test'; +import { afterEach, beforeEach, describe, expect, mock, test, vi } from 'bun:test'; const listMock = mock(async () => ({ data: [] })); @@ -63,7 +63,7 @@ describe('findBranchPrCandidates', () => { }); afterEach(() => { - setSystemTime(); + vi.useRealTimers(); }); test('an open PR wins and no history lookup is spent', async () => { @@ -156,7 +156,8 @@ describe('findBranchPrCandidates', () => { // Past the "no history" expiry, but far short of the found-record one. The // shared open list is re-fetched; the history answer is not re-queried. - setSystemTime(new Date(startedAt + 30 * 60 * 1000)); + vi.useFakeTimers(); + vi.setSystemTime(new Date(startedAt + 30 * 60 * 1000)); const { historical } = await call({ force: false }); expect(historical?.number).toBe(12); @@ -171,7 +172,8 @@ describe('findBranchPrCandidates', () => { await call(); const callsAfterFirst = listMock.mock.calls.length; - setSystemTime(new Date(startedAt + 30 * 60 * 1000)); + vi.useFakeTimers(); + vi.setSystemTime(new Date(startedAt + 30 * 60 * 1000)); await call({ force: false }); expect(listMock.mock.calls.some((entry) => entry[0]?.state === 'all')).toBe(true);