test(infra): skip real recovery pacing waits (#109338)

This commit is contained in:
Peter Steinberger
2026-07-16 14:12:07 -07:00
committed by GitHub
parent 7d71d7cf6b
commit 411c09f9be
4 changed files with 70 additions and 45 deletions
+31
View File
@@ -0,0 +1,31 @@
// Controls mocked recovery sleeps so tests prove callers stay blocked until release.
import { vi } from "vitest";
type SleepMock = {
mockImplementation(implementation: (ms: number) => Promise<void>): unknown;
};
export function controlNextRecoverySleep(sleepMock: SleepMock) {
let releaseSleep: (() => void) | undefined;
const started = new Promise<number>((resolveStarted) => {
sleepMock.mockImplementation(
(ms) =>
new Promise<void>((resolve) => {
releaseSleep = () => {
vi.setSystemTime(Date.now() + ms);
resolve();
};
resolveStarted(ms);
}),
);
});
return {
started,
release() {
if (!releaseSleep) {
throw new Error("Expected recovery sleep to start before release");
}
releaseSleep();
},
};
}