diff --git a/packages/node/src/client.ts b/packages/node/src/client.ts index c222bbe08b91..0dae7cd3d5c4 100644 --- a/packages/node/src/client.ts +++ b/packages/node/src/client.ts @@ -142,7 +142,7 @@ export class NodeClient extends BaseClient { event.platform = event.platform || 'node'; event.contexts = { ...event.contexts, - runtime: { + runtime: event.contexts?.runtime || { name: 'node', version: global.process.version, }, diff --git a/packages/node/test/client.test.ts b/packages/node/test/client.test.ts index 584bf74de257..30bc4db6f97e 100644 --- a/packages/node/test/client.test.ts +++ b/packages/node/test/client.test.ts @@ -216,6 +216,24 @@ describe('NodeClient', () => { }); }); + test('does not add runtime context to event if already defined on event', () => { + const options = getDefaultNodeClientOptions({ dsn: PUBLIC_DSN }); + client = new NodeClient(options); + + const event: Event = { + contexts: { + runtime: { + name: 'Electron', + version: '19.0.0', + }, + }, + }; + const hint: EventHint = {}; + (client as any)._prepareEvent(event, hint); + + expect(event.contexts?.runtime).toEqual(event.contexts?.runtime); + }); + test('adds server name to event when value passed in options', () => { const options = getDefaultNodeClientOptions({ dsn: PUBLIC_DSN, serverName: 'foo' }); client = new NodeClient(options);