Files
openclaw/test/helpers/promise.ts
Peter Steinberger db73b59c04 refactor: burn wrapper shadowing baseline entries (#122040)
* refactor: burn wrapper shadowing entries

* chore: refresh wrapper shadowing baselines

* test: update secrets runtime state mocks

* fix(ci): absorb Control UI build identity variance
2026-08-11 08:24:03 -07:00

22 lines
571 B
TypeScript

export { createDeferredCore as createDeferred } from "../../src/shared/deferred.js";
export async function withTestTimeout<T>(
promise: PromiseLike<T>,
timeoutMs: number,
message: string,
): Promise<T> {
let timeout: ReturnType<typeof setTimeout> | undefined;
try {
return await Promise.race([
Promise.resolve(promise),
new Promise<never>((_resolve, reject) => {
timeout = setTimeout(() => reject(new Error(message)), timeoutMs);
}),
]);
} finally {
if (timeout !== undefined) {
clearTimeout(timeout);
}
}
}