Skip to content

Commit 3bb6554

Browse files
committed
add some more node integration tests
1 parent 81ef6c2 commit 3bb6554

File tree

1 file changed

+56
-9
lines changed
  • packages/node-integration-tests/suites/express/sentry-trace/baggage-header-assign

1 file changed

+56
-9
lines changed

packages/node-integration-tests/suites/express/sentry-trace/baggage-header-assign/test.ts

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,97 @@ import * as path from 'path';
33
import { getAPIResponse, runServer } from '../../../../utils/index';
44
import { TestAPIResponse } from '../server';
55

6-
test('Should assign `baggage` header which contains 3rd party trace baggage data to an outgoing request.', async () => {
6+
test('Should not overwrite baggage if the incoming request already has Sentry baggage data.', async () => {
77
const url = await runServer(__dirname, `${path.resolve(__dirname, '..')}/server.ts`);
88

99
const response = (await getAPIResponse(new URL(`${url}/express`), {
10-
baggage: 'foo=bar,bar=baz',
10+
baggage: 'sentry-version=2.0.0,sentry-environment=myEnv',
1111
})) as TestAPIResponse;
1212

1313
expect(response).toBeDefined();
1414
expect(response).toMatchObject({
1515
test_data: {
1616
host: 'somewhere.not.sentry',
17-
baggage: 'foo=bar,bar=baz,sentry-environment=prod,sentry-release=1.0',
17+
baggage: 'sentry-version=2.0.0,sentry-environment=myEnv',
1818
},
1919
});
2020
});
2121

22-
test('Should not overwrite baggage if the incoming request already has Sentry baggage data.', async () => {
22+
test('Should pass along sentry and 3rd party trace baggage data from an incoming to an outgoing request.', async () => {
2323
const url = await runServer(__dirname, `${path.resolve(__dirname, '..')}/server.ts`);
2424

2525
const response = (await getAPIResponse(new URL(`${url}/express`), {
26-
baggage: 'sentry-version=2.0.0,sentry-environment=myEnv',
26+
baggage: 'sentry-version=2.0.0,sentry-environment=myEnv,dogs=great',
2727
})) as TestAPIResponse;
2828

2929
expect(response).toBeDefined();
3030
expect(response).toMatchObject({
3131
test_data: {
3232
host: 'somewhere.not.sentry',
33-
baggage: 'sentry-version=2.0.0,sentry-environment=myEnv',
33+
baggage: expect.stringContaining('dogs=great,sentry-version=2.0.0,sentry-environment=myEnv'),
3434
},
3535
});
3636
});
3737

38-
test('Should pass along sentry and 3rd party trace baggage data from an incoming to an outgoing request.', async () => {
38+
test('Should propagate empty baggage if sentry-trace header is present in incoming request but no baggage header', async () => {
3939
const url = await runServer(__dirname, `${path.resolve(__dirname, '..')}/server.ts`);
4040

4141
const response = (await getAPIResponse(new URL(`${url}/express`), {
42-
baggage: 'sentry-version=2.0.0,sentry-environment=myEnv,dogs=great',
42+
'sentry-trace': '',
4343
})) as TestAPIResponse;
4444

4545
expect(response).toBeDefined();
4646
expect(response).toMatchObject({
4747
test_data: {
4848
host: 'somewhere.not.sentry',
49-
baggage: expect.stringContaining('dogs=great,sentry-version=2.0.0,sentry-environment=myEnv'),
49+
baggage: '',
50+
},
51+
});
52+
});
53+
54+
test('Should propagate empty sentry and original 3rd party baggage if sentry-trace header is present', async () => {
55+
const url = await runServer(__dirname, `${path.resolve(__dirname, '..')}/server.ts`);
56+
57+
const response = (await getAPIResponse(new URL(`${url}/express`), {
58+
'sentry-trace': '',
59+
baggage: 'foo=bar',
60+
})) as TestAPIResponse;
61+
62+
expect(response).toBeDefined();
63+
expect(response).toMatchObject({
64+
test_data: {
65+
host: 'somewhere.not.sentry',
66+
baggage: 'foo=bar',
67+
},
68+
});
69+
});
70+
71+
test('Should populate and propagate sentry baggage if sentry-trace header does not exist', async () => {
72+
const url = await runServer(__dirname, `${path.resolve(__dirname, '..')}/server.ts`);
73+
74+
const response = (await getAPIResponse(new URL(`${url}/express`), {})) as TestAPIResponse;
75+
76+
expect(response).toBeDefined();
77+
expect(response).toMatchObject({
78+
test_data: {
79+
host: 'somewhere.not.sentry',
80+
baggage: 'sentry-environment=prod,sentry-release=1.0',
81+
},
82+
});
83+
});
84+
85+
test('Should populate Sentry and propagate 3rd party content if sentry-trace header does not exist', async () => {
86+
const url = await runServer(__dirname, `${path.resolve(__dirname, '..')}/server.ts`);
87+
88+
const response = (await getAPIResponse(new URL(`${url}/express`), {
89+
baggage: 'foo=bar,bar=baz',
90+
})) as TestAPIResponse;
91+
92+
expect(response).toBeDefined();
93+
expect(response).toMatchObject({
94+
test_data: {
95+
host: 'somewhere.not.sentry',
96+
baggage: 'foo=bar,bar=baz,sentry-environment=prod,sentry-release=1.0',
5097
},
5198
});
5299
});

0 commit comments

Comments
 (0)