Skip to content

Commit

Permalink
rewrite test, add new test
Browse files Browse the repository at this point in the history
  • Loading branch information
Lms24 committed Sep 18, 2024
1 parent 2192d6f commit ef9aa48
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 70 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
release: '1.0',
transport: loggingTransport,
beforeSend(event) {
event.contexts = {
...event.contexts,
traceData: {
...Sentry.getTraceData(),
metaTags: Sentry.getTraceMetaTags(),
},
};
return event;
},
});

Sentry.captureException(new Error('test error'));
Original file line number Diff line number Diff line change
@@ -1,44 +1,30 @@
const { loggingTransport, startExpressServerAndSendPortToRunner } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node');
console.log('X-4');

Sentry.init({
dsn: 'https://[email protected]/1337',
transport: loggingTransport,
beforeSend(event) {
event.contexts = {
...event.contexts,
traceData: {
...Sentry.getTraceData(),
metaTags: Sentry.getTraceMetaTags(),
},
};
return event;
},
});
console.log('X-3');

// express must be required after Sentry is initialized
const express = require('express');
console.log('X-2');

const app = express();
console.log('X0');

app.get('/test', (_req, res) => {
console.log('X1');
Sentry.captureException('This is a test error');
console.log('X2');
// Sentry.getClient().on('beforeEnvelope', envelope => {
// console.log('X3');
// const event = envelope[1][0][1];
// if (event.exception.values[0].value === 'This is a test error') {
// console.log('X4');
// const { trace_id, span_id } = event.contexts.trace;
// res.send({
// traceData: Sentry.getTraceData(),
// traceMetaTags: Sentry.getTraceMetaTags(),
// errorTraceContext: {
// trace_id,
// span_id,
// },
// });
// }
// });
throw new Error('test error');
});

Sentry.setupExpressErrorHandler(app);
console.log('X5');

startExpressServerAndSendPortToRunner(app);
console.log('X6');
Original file line number Diff line number Diff line change
@@ -1,54 +1,52 @@
import { cleanupChildProcesses, createRunner } from '../../../utils/runner';

describe('errors in Tracing without Performance mode', () => {
console.log('-1');

describe('errors in TwP mode have same trace in trace context and getTraceData()', () => {
afterAll(() => {
cleanupChildProcesses();
});

test('error has the same traceId as obtained via getTraceData()/getTraceMetaTags()', async () => {
console.log('0');
const runner = createRunner(__dirname, 'server.js').start();

console.log('1', runner.getLogs());

const response = await runner.makeRequest('get', '/test');

console.log('2', runner.getLogs());

console.log('yy res', response);

const { traceData, traceMetaTags, errorTraceContext } = response as {
traceData: Record<string, string>;
traceMetaTags: string;
errorTraceContext: {
trace_id: string;
span_id: string;
};
};

console.log('3', runner.getLogs());

const traceId = errorTraceContext?.trace_id;
const spanId = errorTraceContext?.span_id;

expect(traceId).toMatch(/^[a-f0-9]{32}$/);
expect(spanId).toMatch(/^[a-f0-9]{16}$/);

expect(errorTraceContext).toEqual({
trace_id: traceId,
span_id: spanId,
});

expect(traceData).toEqual({
'sentry-trace': `${traceId}-${spanId}`,
baggage: expect.stringContaining(`sentry-trace_id=${traceId}`),
});

expect(traceMetaTags).toContain(`content="${traceId}-${spanId}"/>\n`);
expect(traceMetaTags).toContain(`sentry-trace_id=${traceId}`);
test('in incoming request', async () => {
const runner = createRunner(__dirname, 'server.js')
.expect({
event: event => {
const { contexts } = event;
const { trace_id, span_id } = contexts?.trace || {};
expect(trace_id).toMatch(/^[a-f0-9]{32}$/);
expect(span_id).toMatch(/^[a-f0-9]{16}$/);

const traceData = contexts?.traceData || {};

expect(traceData['sentry-trace']).toEqual(`${trace_id}-${span_id}`);
expect(traceData.baggage).toContain(`sentry-trace_id=${trace_id}`);

expect(traceData.metaTags).toContain(`<meta name="sentry-trace" content="${trace_id}-${span_id}"/>`);
expect(traceData.metaTags).toContain(`sentr y-trace_id=${trace_id}`);
expect(traceData.metaTags).not.toContain('sentry-sampled=');
},
})
.start()
.makeRequest('get', '/test');
});

console.log(runner.getLogs());
test('outside of a request handler', done => {
createRunner(__dirname, 'no-server.js')
.expect({
event: event => {
const { contexts } = event;
const { trace_id, span_id } = contexts?.trace || {};
expect(trace_id).toMatch(/^[a-f0-9]{32}$/);
expect(span_id).toMatch(/^[a-f0-9]{16}$/);

const traceData = contexts?.traceData || {};

expect(traceData['sentry-trace']).toEqual(`${trace_id}-${span_id}`);
expect(traceData.baggage).toContain(`sentry-trace_id=${trace_id}`);

expect(traceData.metaTags).toContain(`<meta name="sentry-trace" content="${trace_id}-${span_id}"/>`);
expect(traceData.metaTags).toContain(`sentry-trace_id=${trace_id}`);
expect(traceData.metaTags).not.toContain('sentry-sampled=');
},
})
.start(done);
});
});

0 comments on commit ef9aa48

Please sign in to comment.