Skip to content

Commit 43f0990

Browse files
committed
add unit tests for serverless aws and gcp
1 parent 571b243 commit 43f0990

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

packages/serverless/test/awslambda.test.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,40 @@ describe('AWSLambda', () => {
229229
await wrappedHandler(fakeEvent, fakeContext, fakeCallback);
230230
});
231231

232+
test('incoming trace headers are correctly parsed and used', async () => {
233+
expect.assertions(1);
234+
235+
fakeEvent.headers = {
236+
'sentry-trace': '12312012123120121231201212312012-1121201211212012-0',
237+
baggage: 'sentry-release=2.12.1,maisey=silly,charlie=goofy',
238+
};
239+
240+
const handler: Handler = (_event, _context, callback) => {
241+
expect(Sentry.startTransaction).toBeCalledWith(
242+
expect.objectContaining({
243+
parentSpanId: '1121201211212012',
244+
parentSampled: false,
245+
op: 'awslambda.handler',
246+
name: 'functionName',
247+
traceId: '12312012123120121231201212312012',
248+
metadata: {
249+
baggage: [
250+
{
251+
release: '2.12.1',
252+
},
253+
'maisey=silly,charlie=goofy',
254+
],
255+
},
256+
}),
257+
);
258+
259+
callback(undefined, { its: 'fine' });
260+
};
261+
262+
const wrappedHandler = wrapHandler(handler);
263+
await wrappedHandler(fakeEvent, fakeContext, fakeCallback);
264+
});
265+
232266
test('capture error', async () => {
233267
expect.assertions(10);
234268

packages/serverless/test/gcpfunction.test.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,39 @@ describe('GCPFunction', () => {
120120
expect(Sentry.flush).toBeCalledWith(2000);
121121
});
122122

123+
test('incoming trace headers are correctly parsed and used', async () => {
124+
expect.assertions(1);
125+
126+
const handler: HttpFunction = (_req, res) => {
127+
res.statusCode = 200;
128+
res.end();
129+
};
130+
const wrappedHandler = wrapHttpFunction(handler);
131+
const traceHeaders = {
132+
'sentry-trace': '12312012123120121231201212312012-1121201211212012-0',
133+
baggage: 'sentry-release=2.12.1,maisey=silly,charlie=goofy',
134+
};
135+
await handleHttp(wrappedHandler, traceHeaders);
136+
137+
expect(Sentry.startTransaction).toBeCalledWith(
138+
expect.objectContaining({
139+
name: 'POST /path',
140+
op: 'gcp.function.http',
141+
traceId: '12312012123120121231201212312012',
142+
parentSpanId: '1121201211212012',
143+
parentSampled: false,
144+
metadata: {
145+
baggage: [
146+
{
147+
release: '2.12.1',
148+
},
149+
'maisey=silly,charlie=goofy',
150+
],
151+
},
152+
}),
153+
);
154+
});
155+
123156
test('capture error', async () => {
124157
expect.assertions(5);
125158

0 commit comments

Comments
 (0)