30 lines
664 B
TypeScript
30 lines
664 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { PromiseTimedOutError, promiseTimeout } from "./promiseTimeout";
|
|
|
|
describe("promiseTimeout", () => {
|
|
it("promise resolves within timeout, returns value", () => {
|
|
expect(
|
|
promiseTimeout(
|
|
wait(1).then(() => 2),
|
|
10,
|
|
),
|
|
).resolves.toBe(2);
|
|
});
|
|
|
|
it("promise does not resolve within timeout, throws PromiseTimedOutError", () => {
|
|
expect(
|
|
promiseTimeout(
|
|
wait(2).then(() => 2),
|
|
1,
|
|
),
|
|
).rejects.toThrow(PromiseTimedOutError);
|
|
});
|
|
});
|
|
|
|
function wait(ms: number) {
|
|
return new Promise((resolve) => {
|
|
setTimeout(resolve, ms);
|
|
});
|
|
}
|