From b2ef44fd0ab200d899d9cec27e3405ed1605d995 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Mon, 22 Sep 2025 14:04:35 +0200 Subject: [PATCH 1/4] test(node): Avoid using specific port for node-integration-tests --- .../suites/tracing/anthropic/scenario.mjs | 6 ++---- .../suites/tracing/google-genai/scenario.mjs | 6 ++---- .../suites/tracing/openai/scenario-root-span.mjs | 6 ++---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs index d0acf5c42b79..383650c92e2a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs @@ -2,8 +2,6 @@ import Anthropic from '@anthropic-ai/sdk'; import * as Sentry from '@sentry/node'; import express from 'express'; -const PORT = 3333; - function startMockAnthropicServer() { const app = express(); app.use(express.json()); @@ -50,7 +48,7 @@ function startMockAnthropicServer() { }, }); }); - return app.listen(PORT); + return app.listen(); } async function run() { @@ -59,7 +57,7 @@ async function run() { await Sentry.startSpan({ op: 'function', name: 'main' }, async () => { const client = new Anthropic({ apiKey: 'mock-api-key', - baseURL: `http://localhost:${PORT}/anthropic`, + baseURL: `http://localhost:${server.address().port}/anthropic`, }); // First test: basic message completion diff --git a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs index cfae135b6878..9728998a0c5b 100644 --- a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs @@ -2,8 +2,6 @@ import { GoogleGenAI } from '@google/genai'; import * as Sentry from '@sentry/node'; import express from 'express'; -const PORT = 3333; - function startMockGoogleGenAIServer() { const app = express(); app.use(express.json()); @@ -39,7 +37,7 @@ function startMockGoogleGenAIServer() { }); }); - return app.listen(PORT); + return app.listen(); } async function run() { @@ -48,7 +46,7 @@ async function run() { await Sentry.startSpan({ op: 'function', name: 'main' }, async () => { const client = new GoogleGenAI({ apiKey: 'mock-api-key', - httpOptions: { baseUrl: `http://localhost:${PORT}` }, + httpOptions: { baseUrl: `http://localhost:${server.address().port}` }, }); // Test 1: chats.create and sendMessage flow diff --git a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs index d1a06e5ccbb2..6423b1b29d7a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs @@ -1,8 +1,6 @@ import express from 'express'; import OpenAI from 'openai'; -const PORT = 3333; - function startMockOpenAiServer() { const app = express(); app.use(express.json()); @@ -31,14 +29,14 @@ function startMockOpenAiServer() { }, }); }); - return app.listen(PORT); + return app.listen(); } async function run() { const server = startMockOpenAiServer(); const client = new OpenAI({ - baseURL: `http://localhost:${PORT}/openai`, + baseURL: `http://localhost:${server.address().port}/openai`, apiKey: 'mock-api-key', }); From 20505a1bd9ee04d7832b9e031081e829aca90d51 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Mon, 22 Sep 2025 14:09:39 +0200 Subject: [PATCH 2/4] properly await server setup --- .../suites/tracing/anthropic/scenario.mjs | 9 +++++++-- .../suites/tracing/google-genai/scenario.mjs | 8 ++++++-- .../suites/tracing/openai/scenario-root-span.mjs | 8 ++++++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs index 383650c92e2a..7cad0edf505e 100644 --- a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs @@ -48,11 +48,16 @@ function startMockAnthropicServer() { }, }); }); - return app.listen(); + + return new Promise(resolve => { + app.listen(server => { + resolve(server); + }); + }); } async function run() { - const server = startMockAnthropicServer(); + const server = await startMockAnthropicServer(); await Sentry.startSpan({ op: 'function', name: 'main' }, async () => { const client = new Anthropic({ diff --git a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs index 9728998a0c5b..445ebae88b87 100644 --- a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs @@ -37,11 +37,15 @@ function startMockGoogleGenAIServer() { }); }); - return app.listen(); + return new Promise(resolve => { + app.listen(server => { + resolve(server); + }); + }); } async function run() { - const server = startMockGoogleGenAIServer(); + const server = await startMockGoogleGenAIServer(); await Sentry.startSpan({ op: 'function', name: 'main' }, async () => { const client = new GoogleGenAI({ diff --git a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs index 6423b1b29d7a..ecaf7a860b5a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs @@ -29,11 +29,15 @@ function startMockOpenAiServer() { }, }); }); - return app.listen(); + return new Promise(resolve => { + app.listen(server => { + resolve(server); + }); + }); } async function run() { - const server = startMockOpenAiServer(); + const server = await startMockOpenAiServer(); const client = new OpenAI({ baseURL: `http://localhost:${server.address().port}/openai`, From 8998fab55c84c533858de4af1c34085a3954c666 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Mon, 22 Sep 2025 14:16:31 +0200 Subject: [PATCH 3/4] fix port, oops --- .../suites/tracing/anthropic/scenario.mjs | 2 +- .../suites/tracing/google-genai/scenario.mjs | 2 +- .../suites/tracing/openai/scenario-root-span.mjs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs index 7cad0edf505e..b48c03371970 100644 --- a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs @@ -50,7 +50,7 @@ function startMockAnthropicServer() { }); return new Promise(resolve => { - app.listen(server => { + app.listen(0, server => { resolve(server); }); }); diff --git a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs index 445ebae88b87..e4093e6a2726 100644 --- a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs @@ -38,7 +38,7 @@ function startMockGoogleGenAIServer() { }); return new Promise(resolve => { - app.listen(server => { + app.listen(0, server => { resolve(server); }); }); diff --git a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs index ecaf7a860b5a..3fdc639a609f 100644 --- a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs @@ -30,7 +30,7 @@ function startMockOpenAiServer() { }); }); return new Promise(resolve => { - app.listen(server => { + app.listen(0, server => { resolve(server); }); }); From d2b5f2df1494f81c2e125ec2d211e19657d5c89a Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Mon, 22 Sep 2025 14:25:41 +0200 Subject: [PATCH 4/4] actually fix it --- .../suites/tracing/anthropic/scenario.mjs | 2 +- .../suites/tracing/google-genai/scenario.mjs | 2 +- .../suites/tracing/openai/scenario-root-span.mjs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs index b48c03371970..577c63dc3d08 100644 --- a/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/anthropic/scenario.mjs @@ -50,7 +50,7 @@ function startMockAnthropicServer() { }); return new Promise(resolve => { - app.listen(0, server => { + const server = app.listen(0, () => { resolve(server); }); }); diff --git a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs index e4093e6a2726..ddb9e16b8254 100644 --- a/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/google-genai/scenario.mjs @@ -38,7 +38,7 @@ function startMockGoogleGenAIServer() { }); return new Promise(resolve => { - app.listen(0, server => { + const server = app.listen(0, () => { resolve(server); }); }); diff --git a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs index 3fdc639a609f..2aaca0700312 100644 --- a/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs +++ b/dev-packages/node-integration-tests/suites/tracing/openai/scenario-root-span.mjs @@ -30,7 +30,7 @@ function startMockOpenAiServer() { }); }); return new Promise(resolve => { - app.listen(0, server => { + const server = app.listen(0, () => { resolve(server); }); });