aboutsummaryrefslogtreecommitdiffstats
path: root/packages/e2e_tests/utils
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-04-16 23:49:44 +0000
committerMohamed Bassem <me@mbassem.com>2025-04-16 23:50:17 +0000
commitd732acd469ff02373dba4093cc53198e97f51868 (patch)
tree7c106816656d56c5fe5311168979caad854bba47 /packages/e2e_tests/utils
parent1d780485d731c077009fc76d5fa0e283f6f78d85 (diff)
downloadkarakeep-d732acd469ff02373dba4093cc53198e97f51868.tar.zst
tests: Add some simple crawler tests
Diffstat (limited to 'packages/e2e_tests/utils')
-rw-r--r--packages/e2e_tests/utils/general.ts24
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`);
+}