Skip to content

Commit 5496cf9

Browse files
authored
fix: Correctly attach installed integrations to sdkinfo (#3447)
* fix: Correctly attach installed integrations to sdkinfo * Add test
1 parent 2ee9412 commit 5496cf9

File tree

5 files changed

+25
-23
lines changed

5 files changed

+25
-23
lines changed

packages/core/src/baseclient.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -434,10 +434,10 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
434434
* @param event The event that will be filled with all integrations.
435435
*/
436436
protected _applyIntegrationsMetadata(event: Event): void {
437-
const sdkInfo = event.sdk;
438437
const integrationsArray = Object.keys(this._integrations);
439-
if (sdkInfo && integrationsArray.length > 0) {
440-
sdkInfo.integrations = integrationsArray;
438+
if (integrationsArray.length > 0) {
439+
event.sdk = event.sdk || {};
440+
event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];
441441
}
442442
}
443443

packages/core/src/request.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@ function enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {
1919
if (!sdkInfo) {
2020
return event;
2121
}
22-
23-
event.sdk = event.sdk || {
24-
name: sdkInfo.name,
25-
version: sdkInfo.version,
26-
};
22+
event.sdk = event.sdk || {};
2723
event.sdk.name = event.sdk.name || sdkInfo.name;
2824
event.sdk.version = event.sdk.version || sdkInfo.version;
2925
event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];

packages/core/test/lib/base.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,15 @@ describe('BaseClient', () => {
477477
});
478478
});
479479

480+
test('adds installed integrations to sdk info', () => {
481+
const client = new TestClient({ dsn: PUBLIC_DSN, integrations: [new TestIntegration()] });
482+
client.setupIntegrations();
483+
client.captureEvent({ message: 'message' });
484+
expect(TestBackend.instance!.event!.sdk).toEqual({
485+
integrations: ['TestIntegration'],
486+
});
487+
});
488+
480489
test('normalizes event with default depth of 3', () => {
481490
expect.assertions(1);
482491
const client = new TestClient({ dsn: PUBLIC_DSN });

packages/react/src/sdk.ts

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,15 @@ import { BrowserOptions, init as browserInit, SDK_VERSION } from '@sentry/browse
55
*/
66
export function init(options: BrowserOptions): void {
77
options._metadata = options._metadata || {};
8-
if (options._metadata.sdk === undefined) {
9-
options._metadata.sdk = {
10-
name: 'sentry.javascript.react',
11-
packages: [
12-
{
13-
name: 'npm:@sentry/react',
14-
version: SDK_VERSION,
15-
},
16-
],
17-
version: SDK_VERSION,
18-
};
19-
}
20-
8+
options._metadata.sdk = options._metadata.sdk || {
9+
name: 'sentry.javascript.react',
10+
packages: [
11+
{
12+
name: 'npm:@sentry/react',
13+
version: SDK_VERSION,
14+
},
15+
],
16+
version: SDK_VERSION,
17+
};
2118
browserInit(options);
2219
}

packages/types/src/sdkinfo.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Package } from './package';
22

33
export interface SdkInfo {
4-
name: string;
5-
version: string;
4+
name?: string;
5+
version?: string;
66
integrations?: string[];
77
packages?: Package[];
88
}

0 commit comments

Comments
 (0)