test(ci): stabilize stale summary invalidation race

This commit is contained in:
777genius 2026-04-13 17:19:07 +03:00
parent dd4ce7e9b1
commit 36d499001d

View file

@ -634,11 +634,15 @@ describe('ChangeExtractorService', () => {
await writeTaskFile(tmpDir); await writeTaskFile(tmpDir);
const first = deferred<ReturnType<typeof makeTaskChangeResult>>(); const first = deferred<ReturnType<typeof makeTaskChangeResult>>();
const firstStarted = deferred<void>();
const worker = { const worker = {
isAvailable: vi.fn(() => true), isAvailable: vi.fn(() => true),
computeTaskChanges: vi computeTaskChanges: vi
.fn() .fn()
.mockImplementationOnce(() => first.promise) .mockImplementationOnce(() => {
firstStarted.resolve();
return first.promise;
})
.mockImplementationOnce(async () => .mockImplementationOnce(async () =>
makeTaskChangeResult(TASK_ID, { filePath: '/repo/src/newer.ts' }) makeTaskChangeResult(TASK_ID, { filePath: '/repo/src/newer.ts' })
), ),
@ -649,6 +653,7 @@ describe('ChangeExtractorService', () => {
}); });
const stalePromise = service.getTaskChanges(TEAM_NAME, TASK_ID, SUMMARY_OPTIONS); const stalePromise = service.getTaskChanges(TEAM_NAME, TASK_ID, SUMMARY_OPTIONS);
await firstStarted.promise;
await service.invalidateTaskChangeSummaries(TEAM_NAME, [TASK_ID], { deletePersisted: true }); await service.invalidateTaskChangeSummaries(TEAM_NAME, [TASK_ID], { deletePersisted: true });
const freshPromise = service.getTaskChanges(TEAM_NAME, TASK_ID, SUMMARY_OPTIONS); const freshPromise = service.getTaskChanges(TEAM_NAME, TASK_ID, SUMMARY_OPTIONS);
// Flush microtasks so freshPromise advances past its internal awaits // Flush microtasks so freshPromise advances past its internal awaits