diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-04-16 23:49:44 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2025-04-16 23:50:17 +0000 |
| commit | d732acd469ff02373dba4093cc53198e97f51868 (patch) | |
| tree | 7c106816656d56c5fe5311168979caad854bba47 /packages/e2e_tests/utils | |
| parent | 1d780485d731c077009fc76d5fa0e283f6f78d85 (diff) | |
| download | karakeep-d732acd469ff02373dba4093cc53198e97f51868.tar.zst | |
tests: Add some simple crawler tests
Diffstat (limited to 'packages/e2e_tests/utils')
| -rw-r--r-- | packages/e2e_tests/utils/general.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/e2e_tests/utils/general.ts b/packages/e2e_tests/utils/general.ts new file mode 100644 index 00000000..417a7cd5 --- /dev/null +++ b/packages/e2e_tests/utils/general.ts @@ -0,0 +1,24 @@ +export async function waitUntil( + f: () => Promise<boolean>, + description: string, + timeoutMs = 60000, +): Promise<void> { + const startTime = Date.now(); + + while (Date.now() - startTime < timeoutMs) { + console.log(`Waiting for ${description}...`); + try { + const res = await f(); + if (res) { + console.log(`${description}: success`); + return; + } + } catch (error) { + // Ignore errors and retry + console.log(`${description}: error, retrying...: ${error}`); + } + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + + throw new Error(`${description}: timeout after ${timeoutMs}ms`); +} |
