kuamail/node_modules/dexie-react-hooks/test/utils/waitTilEqual.ts

27 lines
628 B
TypeScript

import { assert } from 'qunit';
export function waitTilEqual(
getActual: () => any,
expected: any,
description: string,
timeout = 2000
) {
return new Promise((resolve, reject) => {
const start = Date.now();
const interval = setInterval(() => {
const actual = getActual();
if (actual === expected) {
clearInterval(interval);
assert.equal(actual, expected, description);
resolve(true);
} else if (Date.now() - start > timeout) {
clearInterval(interval);
assert.equal(actual, expected, description);
resolve(false);
}
}, 10);
});
}