Files
wehub-resource-sync 70bf21e064
Deploy (to testing) and Test Playground Preview Worker / Deploy Playground Preview Worker (testing) (push) Has been skipped
Deploy Workers Shared Staging / Deploy Workers Shared Staging (push) Failing after 0s
Prerelease / build (push) Has been skipped
Handle Changesets / Handle Changesets (push) Has been cancelled
Semgrep OSS scan / semgrep-oss (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:30:11 +08:00

35 lines
849 B
TypeScript

import { vi } from "vitest";
type WaitForOptions = { interval?: number; timeout?: number };
/**
* Wrapper around `vi.waitFor()` for polling synchronous state (e.g. `currentOutput`).
* Defaults to `{ interval: 100, timeout: 5_000 }`.
*/
export function waitFor<T>(
callback: () => T | Promise<T>,
options?: WaitForOptions
): Promise<T> {
return vi.waitFor(callback, {
interval: 100,
timeout: 5_000,
...options,
});
}
/**
* Wrapper around `vi.waitFor()` with a slower poll interval and longer timeout than `waitFor`.
* Useful for polling HTTP endpoints (e.g. `fetch`/`fetchText`).
* Defaults to `{ interval: 500, timeout: 10_000 }`.
*/
export function waitForLong<T>(
callback: () => T | Promise<T>,
options?: WaitForOptions
): Promise<T> {
return vi.waitFor(callback, {
interval: 500,
timeout: 10_000,
...options,
});
}