Skip to content

feat(node): Populate event.contexts for Node.js #5512

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Aug 29, 2022
Merged
3 changes: 3 additions & 0 deletions packages/node-integration-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
"lint": "run-s lint:prettier lint:eslint",
"lint:eslint": "eslint . --cache --cache-location '../../eslintcache/' --format stylish",
"lint:prettier": "prettier --check \"{suites,utils}/**/*.ts\"",
"fix": "run-s fix:eslint fix:prettier",
"fix:eslint": "eslint . --format stylish --fix",
"fix:prettier": "prettier --write \"{suites,utils}/**/*.ts\"",
"type-check": "tsc",
"pretest": "run-s --silent prisma:init",
"test": "jest --runInBand --forceExit",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';

test('should add multiple breadcrumbs', async () => {
const config = await runServer(__dirname);
const events = await getMultipleEnvelopeRequest(config, { count: 1 });
const events = await getEnvelopeRequest(config);

assertSentryEvent(events[0][2], {
assertSentryEvent(events[2], {
message: 'test_multi_breadcrumbs',
breadcrumbs: [
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';

test('should work inside catch block', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getMultipleEnvelopeRequest(config, { count: 1 });

assertSentryEvent(event[2], {
assertSentryEvent(events[0][2], {
exception: {
values: [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should capture an empty object', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
exception: {
values: [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should capture a simple error with message', async () => {
const config = await runServer(__dirname);
const envelope = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(envelope[2], {
assertSentryEvent(events[2], {
exception: {
values: [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should capture a simple message string', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
message: 'Message',
level: 'info',
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should record multiple contexts', async () => {
const config = await runServer(__dirname);
const envelope = await getEnvelopeRequest(config, { count: 1 });
const events = await getEnvelopeRequest(config);

assertSentryEvent(envelope[2], {
assertSentryEvent(events[2], {
message: 'multiple_contexts',
contexts: {
context_1: {
Expand All @@ -17,5 +17,5 @@ test('should record multiple contexts', async () => {
},
});

expect((envelope[2] as Event).contexts?.context_3).not.toBeDefined();
expect((events[0] as Event).contexts?.context_3).not.toBeDefined();
});
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should normalize non-serializable context', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
message: 'non_serializable',
contexts: {},
});

expect((event as Event).contexts?.context_3).not.toBeDefined();
expect((events[0] as Event).contexts?.context_3).not.toBeDefined();
});
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { Event } from '@sentry/node';

import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';

test('should set a simple context', async () => {
const config = await runServer(__dirname);
const envelopes = await getMultipleEnvelopeRequest(config, { count: 1 });
const envelopes = await getEnvelopeRequest(config);

assertSentryEvent(envelopes[0][2], {
assertSentryEvent(envelopes[2], {
message: 'simple_context_object',
contexts: {
foo: {
Expand All @@ -15,5 +15,5 @@ test('should set a simple context', async () => {
},
});

expect((envelopes[0][2] as Event).contexts?.context_3).not.toBeDefined();
expect((envelopes[2] as Event).contexts?.context_3).not.toBeDefined();
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should record multiple extras of different types', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
message: 'multiple_extras',
extra: {
extra_1: { foo: 'bar', baz: { qux: 'quux' } },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should normalize non-serializable extra', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
message: 'non_serializable',
extra: {},
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should set a simple extra', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
message: 'simple_extra',
extra: {
foo: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';

test('should set extras from multiple consecutive calls', async () => {
const config = await runServer(__dirname);
const envelopes = await getMultipleEnvelopeRequest(config, { count: 1 });
const envelopes = await getEnvelopeRequest(config);

assertSentryEvent(envelopes[0][2], {
assertSentryEvent(envelopes[2], {
message: 'consecutive_calls',
extra: { extra: [], Infinity: 2, null: 0, obj: { foo: ['bar', 'baz', 1] } },
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';

test('should record an extras object', async () => {
const config = await runServer(__dirname);
const events = await getMultipleEnvelopeRequest(config, { count: 1 });
const events = await getEnvelopeRequest(config);

assertSentryEvent(events[0][2], {
assertSentryEvent(events[2], {
message: 'multiple_extras',
extra: {
extra_1: [1, ['foo'], 'bar'],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should set primitive tags', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
message: 'primitive_tags',
tags: {
tag_1: 'foo',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut

test('should set primitive tags', async () => {
const config = await runServer(__dirname);
const event = await getEnvelopeRequest(config);
const events = await getEnvelopeRequest(config);

assertSentryEvent(event[2], {
assertSentryEvent(events[2], {
message: 'primitive_tags',
tags: {
tag_1: 'foo',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ test('should unset user', async () => {
message: 'no_user',
});

expect((events[0][2] as Event).user).not.toBeDefined();
expect((events[0] as Event).user).not.toBeDefined();

assertSentryEvent(events[1][2], {
message: 'user',
Expand All @@ -25,5 +25,5 @@ test('should unset user', async () => {
message: 'unset_user',
});

expect((events[2][2] as Event).user).not.toBeDefined();
expect((events[2] as Event).user).not.toBeDefined();
});
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ test('should allow nested scoping', async () => {
},
});

expect((events[2][2] as Event).user).toBeUndefined();
expect((events[2] as Event).user).toBeUndefined();

assertSentryEvent(events[3][2], {
message: 'outer_after',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ conditionalTest({ min: 12 })('MongoDB Test', () => {
}, 10000);

afterAll(async () => {
await mongoServer.stop();
if (mongoServer) {
await mongoServer.stop();
}
});

test('should auto-instrument `mongodb` package.', async () => {
Expand Down
Loading