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/setup/startContainers.ts | |
| parent | 1d780485d731c077009fc76d5fa0e283f6f78d85 (diff) | |
| download | karakeep-d732acd469ff02373dba4093cc53198e97f51868.tar.zst | |
tests: Add some simple crawler tests
Diffstat (limited to 'packages/e2e_tests/setup/startContainers.ts')
| -rw-r--r-- | packages/e2e_tests/setup/startContainers.ts | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/packages/e2e_tests/setup/startContainers.ts b/packages/e2e_tests/setup/startContainers.ts index 10b1b9d8..df07cc58 100644 --- a/packages/e2e_tests/setup/startContainers.ts +++ b/packages/e2e_tests/setup/startContainers.ts @@ -4,6 +4,8 @@ import path from "path"; import { fileURLToPath } from "url"; import type { GlobalSetupContext } from "vitest/node"; +import { waitUntil } from "../utils/general"; + async function getRandomPort(): Promise<number> { const server = net.createServer(); return new Promise<number>((resolve, reject) => { @@ -17,21 +19,14 @@ async function getRandomPort(): Promise<number> { } async function waitForHealthy(port: number, timeout = 60000): Promise<void> { - const startTime = Date.now(); - - while (Date.now() - startTime < timeout) { - try { + return waitUntil( + async () => { const response = await fetch(`http://localhost:${port}/api/health`); - if (response.status === 200) { - return; - } - } catch (error) { - // Ignore errors and retry - } - await new Promise((resolve) => setTimeout(resolve, 1000)); - } - - throw new Error(`Health check failed after ${timeout}ms`); + return response.status === 200; + }, + "Container are healthy", + timeout, + ); } export default async function ({ provide }: GlobalSetupContext) { |
