From bd7fe563308a7b605c91523dc527355e8a7eaedd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoni=20Nu=C3=B1ez=20Romeu?= Date: Tue, 14 Jul 2026 13:03:46 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20skip=20Redis=20connection=20in=20test=20?= =?UTF-8?q?mode=20=E2=80=94=20prevents=20CI=20hang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The top-level await redisClient.connect() in redis-client.js was blocking module import when no Redis server is available (CI env). Add NODE_ENV guard + reconnect strategy with max retries. --- apps/backend/redis-client.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/backend/redis-client.js b/apps/backend/redis-client.js index 7e82d52..ac604fd 100644 --- a/apps/backend/redis-client.js +++ b/apps/backend/redis-client.js @@ -4,7 +4,11 @@ import { createClient } from 'redis'; const redisClient = createClient({ socket: { host: process.env.REDIS_HOST || 'localhost', - port: process.env.REDIS_PORT || 6379 + port: process.env.REDIS_PORT || 6379, + reconnectStrategy: (retries) => { + if (retries > 10) return new Error('Redis max retries reached'); + return Math.min(retries * 100, 3000); + } }, password: process.env.REDIS_PASSWORD || undefined }); @@ -19,7 +23,9 @@ redisClient.on('connect', () => { console.log('✅ Connected to Redis'); }); -// Connect to Redis -await redisClient.connect(); +// Connect to Redis — skip in test (services are mocked) or when REDIS_URL is unset +if (process.env.NODE_ENV !== 'test') { + await redisClient.connect(); +} export default redisClient;