cosmjs-util/packages/utils/src/sleep.spec.ts
2020-06-09 17:40:42 +02:00

28 lines
942 B
TypeScript

import { sleep } from "./sleep";
describe("sleep", () => {
it("resolves after at least x milliseconds", async () => {
for (const x of [10, 30, 120, 280]) {
const start = Date.now();
await sleep(x);
const sleepingTime = Date.now() - start;
// Add 1 ms safety margin due to rounding issues. The elapsed time between
// timestamps 1000 and 1010 can be somethting between 10 and 11 ms.
expect(sleepingTime + 1).toBeGreaterThanOrEqual(x);
}
});
it("resolves within a reasonable amount of time >= x milliseconds", async () => {
// Don't be too strict as jest will run many tests at the same time and test systems can be slow sometimes.
const tolerance = 30; // ms
for (const x of [10, 30, 120, 280]) {
const start = Date.now();
await sleep(x);
const sleepingTime = Date.now() - start;
expect(sleepingTime).toBeLessThanOrEqual(x + tolerance);
}
});
});