Migrate e2e tests to TypeScript
This commit is contained in:
parent
91f8383ecc
commit
7e77e31ad6
29 changed files with 553 additions and 516 deletions
30
e2e/eventually.ts
Normal file
30
e2e/eventually.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
const defaultInterval = 100;
|
||||
const defaultTimeout = 2000;
|
||||
|
||||
type Handler = () => void
|
||||
|
||||
const sleep = (ms: number): Promise<void> => {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
const eventually = async (
|
||||
fn: Handler,
|
||||
timeout = defaultTimeout,
|
||||
interval = defaultInterval,
|
||||
): Promise<void> => {
|
||||
let start = Date.now();
|
||||
let loop = async() => {
|
||||
try {
|
||||
await fn();
|
||||
} catch (err) {
|
||||
if (Date.now() - start > timeout) {
|
||||
throw err;
|
||||
}
|
||||
await sleep(interval);
|
||||
await loop();
|
||||
}
|
||||
};
|
||||
await loop();
|
||||
};
|
||||
|
||||
export default eventually;
|
Reference in a new issue