in lib/test.ts [13:23]
function pollUntil(makePromise: () => Promise<boolean>, cb: () => void, interval: number, timeout: number): void {
makePromise().then((success) => {
if (success) {
cb();
} else {
setTimeout(() => {
pollUntil(makePromise, cb, interval, timeout - interval);
}, interval);
}
});
}