From d732acd469ff02373dba4093cc53198e97f51868 Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Wed, 16 Apr 2025 23:49:44 +0000 Subject: tests: Add some simple crawler tests --- packages/e2e_tests/setup/startContainers.ts | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'packages/e2e_tests/setup/startContainers.ts') 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 { const server = net.createServer(); return new Promise((resolve, reject) => { @@ -17,21 +19,14 @@ async function getRandomPort(): Promise { } async function waitForHealthy(port: number, timeout = 60000): Promise { - 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) { -- cgit v1.2.3-70-g09d2