Skip to content

Commit b69d072

Browse files
committed
add node integration tet
1 parent f4c60b0 commit b69d072

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import * as Sentry from '@sentry/node';
2+
import { generateText } from 'ai';
3+
import { MockLanguageModelV1 } from 'ai/test';
4+
5+
Sentry.setConversationId('conv-a');
6+
7+
async function run() {
8+
await Sentry.startSpan({ op: 'function', name: 'main' }, async () => {
9+
await generateText({
10+
experimental_telemetry: { isEnabled: true },
11+
model: new MockLanguageModelV1({
12+
doGenerate: async () => ({
13+
rawCall: { rawPrompt: null, rawSettings: {} },
14+
finishReason: 'stop',
15+
usage: { promptTokens: 10, completionTokens: 20 },
16+
text: 'Hello!',
17+
providerMetadata: {
18+
openai: { responseId: 'resp_should_not_overwrite' },
19+
},
20+
}),
21+
}),
22+
prompt: 'Say hello',
23+
});
24+
});
25+
}
26+
27+
run();

dev-packages/node-integration-tests/suites/tracing/vercelai/test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -923,4 +923,24 @@ describe('Vercel AI integration', () => {
923923
await createRunner().expect({ transaction: expectedTransaction }).start().completed();
924924
});
925925
});
926+
927+
createEsmAndCjsTests(__dirname, 'scenario-conversation-id.mjs', 'instrument.mjs', (createRunner, test) => {
928+
test('does not overwrite conversation id set via Sentry.setConversationId with responseId from provider metadata', async () => {
929+
await createRunner()
930+
.expect({
931+
transaction: {
932+
transaction: 'main',
933+
spans: expect.arrayContaining([
934+
expect.objectContaining({
935+
data: expect.objectContaining({
936+
'gen_ai.conversation.id': 'conv-a',
937+
}),
938+
}),
939+
]),
940+
},
941+
})
942+
.start()
943+
.completed();
944+
});
945+
});
926946
});

0 commit comments

Comments
 (0)