Skip to content

Commit b484ad5

Browse files
committed
add integration test
1 parent de63613 commit b484ad5

File tree

2 files changed

+67
-0
lines changed
  • dev-packages/node-integration-tests/suites/tracing/meta-tags-twp

2 files changed

+67
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
2+
const Sentry = require('@sentry/node');
3+
4+
Sentry.init({
5+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
6+
transport: loggingTransport,
7+
debug: true,
8+
});
9+
10+
// express must be required after Sentry is initialized
11+
const express = require('express');
12+
const { startExpressServerAndSendPortToRunner } = require('@sentry-internal/node-integration-tests');
13+
14+
const app = express();
15+
16+
app.get('/test', (_req, res) => {
17+
res.send({
18+
response: `
19+
<html>
20+
<head>
21+
${Sentry.getTraceMetaTags()}
22+
</head>
23+
<body>
24+
Hi :)
25+
</body>
26+
</html>
27+
`,
28+
});
29+
});
30+
31+
Sentry.setupExpressErrorHandler(app);
32+
33+
// TODO: remove port again
34+
startExpressServerAndSendPortToRunner(app, 3000);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { cleanupChildProcesses, createRunner } from '../../../utils/runner';
2+
3+
describe('getTraceMetaTags', () => {
4+
afterAll(() => {
5+
cleanupChildProcesses();
6+
});
7+
8+
test('injects sentry tracing <meta> tags without sampled flag for Tracing Without Performance', async () => {
9+
const runner = createRunner(__dirname, 'server.js').start();
10+
11+
const response = await runner.makeRequest('get', '/test');
12+
13+
// @ts-ignore - response is defined, types just don't reflect it
14+
const html = response?.response as unknown as string;
15+
16+
console.log(html);
17+
18+
const [_, traceId, spanId] = html.match(/<meta name="sentry-trace" content="([a-f0-9]{32})-([a-f0-9]{16})"\/>/) || [
19+
undefined,
20+
undefined,
21+
undefined,
22+
];
23+
24+
expect(traceId).toBeDefined();
25+
expect(spanId).toBeDefined();
26+
27+
const sentryBaggageContent = html.match(/<meta name="baggage" content="(.*)"\/>/)?.[1];
28+
29+
expect(sentryBaggageContent).toEqual(
30+
`sentry-environment=production,sentry-public_key=public,sentry-trace_id=${traceId}`,
31+
);
32+
});
33+
});

0 commit comments

Comments
 (0)