Skip to content

Commit e8c78c4

Browse files
authored
feat(node): Populate event.contexts for Node.js (#5512)
### Problem Statement Expand default context set by the Node SDK: https://develop.sentry.dev/sdk/event-payloads/contexts/#device-context ### `device` - `boot_time` - `arch` - `memory_size` - `free_memory` - `processor_count` - `cpu_description` - `processor_frequency` ### `os` - `version` - `build` - `kernel_version` ### `app` - `app_start_time` - `app_memory` ### `culture` - `locale` - `timezone`
1 parent f563eae commit e8c78c4

File tree

24 files changed

+487
-45
lines changed

24 files changed

+487
-45
lines changed

packages/node-integration-tests/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
"lint": "run-s lint:prettier lint:eslint",
1313
"lint:eslint": "eslint . --cache --cache-location '../../eslintcache/' --format stylish",
1414
"lint:prettier": "prettier --check \"{suites,utils}/**/*.ts\"",
15+
"fix": "run-s fix:eslint fix:prettier",
16+
"fix:eslint": "eslint . --format stylish --fix",
17+
"fix:prettier": "prettier --write \"{suites,utils}/**/*.ts\"",
1518
"type-check": "tsc",
1619
"pretest": "run-s --silent prisma:init",
1720
"test": "jest --runInBand --forceExit",

packages/node-integration-tests/suites/public-api/addBreadcrumb/multiple_breadcrumbs/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
1+
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';
22

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

7-
assertSentryEvent(events[0][2], {
7+
assertSentryEvent(events[2], {
88
message: 'test_multi_breadcrumbs',
99
breadcrumbs: [
1010
{

packages/node-integration-tests/suites/public-api/captureException/catched-error/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';
1+
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
22

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

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[0][2], {
88
exception: {
99
values: [
1010
{

packages/node-integration-tests/suites/public-api/captureException/empty-obj/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

33
test('should capture an empty object', async () => {
44
const config = await runServer(__dirname);
5-
const event = await getEnvelopeRequest(config);
5+
const events = await getEnvelopeRequest(config);
66

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[2], {
88
exception: {
99
values: [
1010
{

packages/node-integration-tests/suites/public-api/captureException/simple-error/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

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

7-
assertSentryEvent(envelope[2], {
7+
assertSentryEvent(events[2], {
88
exception: {
99
values: [
1010
{

packages/node-integration-tests/suites/public-api/captureMessage/simple_message/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

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

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[2], {
88
message: 'Message',
99
level: 'info',
1010
});

packages/node-integration-tests/suites/public-api/setContext/multiple-contexts/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
44

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

9-
assertSentryEvent(envelope[2], {
9+
assertSentryEvent(events[2], {
1010
message: 'multiple_contexts',
1111
contexts: {
1212
context_1: {
@@ -17,5 +17,5 @@ test('should record multiple contexts', async () => {
1717
},
1818
});
1919

20-
expect((envelope[2] as Event).contexts?.context_3).not.toBeDefined();
20+
expect((events[0] as Event).contexts?.context_3).not.toBeDefined();
2121
});

packages/node-integration-tests/suites/public-api/setContext/non-serializable-context/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
44

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

9-
assertSentryEvent(event[2], {
9+
assertSentryEvent(events[2], {
1010
message: 'non_serializable',
1111
contexts: {},
1212
});
1313

14-
expect((event as Event).contexts?.context_3).not.toBeDefined();
14+
expect((events[0] as Event).contexts?.context_3).not.toBeDefined();
1515
});
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Event } from '@sentry/node';
22

3-
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
3+
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';
44

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

9-
assertSentryEvent(envelopes[0][2], {
9+
assertSentryEvent(envelopes[2], {
1010
message: 'simple_context_object',
1111
contexts: {
1212
foo: {
@@ -15,5 +15,5 @@ test('should set a simple context', async () => {
1515
},
1616
});
1717

18-
expect((envelopes[0][2] as Event).contexts?.context_3).not.toBeDefined();
18+
expect((envelopes[2] as Event).contexts?.context_3).not.toBeDefined();
1919
});

packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

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

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[2], {
88
message: 'multiple_extras',
99
extra: {
1010
extra_1: { foo: 'bar', baz: { qux: 'quux' } },

packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

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

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[2], {
88
message: 'non_serializable',
99
extra: {},
1010
});

packages/node-integration-tests/suites/public-api/setExtra/simple-extra/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

33
test('should set a simple extra', async () => {
44
const config = await runServer(__dirname);
5-
const event = await getEnvelopeRequest(config);
5+
const events = await getEnvelopeRequest(config);
66

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[2], {
88
message: 'simple_extra',
99
extra: {
1010
foo: {

packages/node-integration-tests/suites/public-api/setExtras/consecutive-calls/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
1+
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';
22

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

7-
assertSentryEvent(envelopes[0][2], {
7+
assertSentryEvent(envelopes[2], {
88
message: 'consecutive_calls',
99
extra: { extra: [], Infinity: 2, null: 0, obj: { foo: ['bar', 'baz', 1] } },
1010
});

packages/node-integration-tests/suites/public-api/setExtras/multiple-extras/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { assertSentryEvent, getMultipleEnvelopeRequest, runServer } from '../../../../utils';
1+
import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../utils';
22

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

7-
assertSentryEvent(events[0][2], {
7+
assertSentryEvent(events[2], {
88
message: 'multiple_extras',
99
extra: {
1010
extra_1: [1, ['foo'], 'bar'],

packages/node-integration-tests/suites/public-api/setTag/with-primitives/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

33
test('should set primitive tags', async () => {
44
const config = await runServer(__dirname);
5-
const event = await getEnvelopeRequest(config);
5+
const events = await getEnvelopeRequest(config);
66

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[2], {
88
message: 'primitive_tags',
99
tags: {
1010
tag_1: 'foo',

packages/node-integration-tests/suites/public-api/setTags/with-primitives/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { assertSentryEvent, getEnvelopeRequest, runServer } from '../../../../ut
22

33
test('should set primitive tags', async () => {
44
const config = await runServer(__dirname);
5-
const event = await getEnvelopeRequest(config);
5+
const events = await getEnvelopeRequest(config);
66

7-
assertSentryEvent(event[2], {
7+
assertSentryEvent(events[2], {
88
message: 'primitive_tags',
99
tags: {
1010
tag_1: 'foo',

packages/node-integration-tests/suites/public-api/setUser/unset_user/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ test('should unset user', async () => {
1010
message: 'no_user',
1111
});
1212

13-
expect((events[0][2] as Event).user).not.toBeDefined();
13+
expect((events[0] as Event).user).not.toBeDefined();
1414

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

28-
expect((events[2][2] as Event).user).not.toBeDefined();
28+
expect((events[2] as Event).user).not.toBeDefined();
2929
});

packages/node-integration-tests/suites/public-api/withScope/nested-scopes/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ test('should allow nested scoping', async () => {
3131
},
3232
});
3333

34-
expect((events[2][2] as Event).user).toBeUndefined();
34+
expect((events[2] as Event).user).toBeUndefined();
3535

3636
assertSentryEvent(events[3][2], {
3737
message: 'outer_after',

packages/node-integration-tests/suites/tracing/auto-instrument/mongodb/test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ conditionalTest({ min: 12 })('MongoDB Test', () => {
1414
}, 10000);
1515

1616
afterAll(async () => {
17-
await mongoServer.stop();
17+
if (mongoServer) {
18+
await mongoServer.stop();
19+
}
1820
});
1921

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

0 commit comments

Comments
 (0)