From 4e0ff33d813ba5ace266aa8a62f0b5992951a3df Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Tue, 5 Aug 2025 13:23:21 +0100 Subject: [PATCH 1/5] feat(angular): Set `sendDefaultPii: true` by default --- CHANGELOG.md | 1 + e2e-tests/tests/angular-17.test.ts | 1 + e2e-tests/tests/angular-19.test.ts | 1 + src/angular/codemods/main.ts | 2 ++ 4 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3631305c..07baafe31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased - feat(nextjs): Set `sendDefaultPii: true` by default ([#1052](https://github.com/getsentry/sentry-wizard/pull/1052)) +- feat(angular): Set `sendDefaultPii: true` by default ([#1056](https://github.com/getsentry/sentry-wizard/pull/1056)) ## 6.5.0 diff --git a/e2e-tests/tests/angular-17.test.ts b/e2e-tests/tests/angular-17.test.ts index ad64a2b17..fef7b145f 100644 --- a/e2e-tests/tests/angular-17.test.ts +++ b/e2e-tests/tests/angular-17.test.ts @@ -233,6 +233,7 @@ function checkAngularProject( 'replaysSessionSampleRate: 0.1', 'replaysOnErrorSampleRate: 1', 'enableLogs: true', + 'sendDefaultPii: true', ]); }); diff --git a/e2e-tests/tests/angular-19.test.ts b/e2e-tests/tests/angular-19.test.ts index ed7037fdc..0894c3f61 100644 --- a/e2e-tests/tests/angular-19.test.ts +++ b/e2e-tests/tests/angular-19.test.ts @@ -231,6 +231,7 @@ function checkAngularProject( 'replaysSessionSampleRate: 0.1', 'replaysOnErrorSampleRate: 1', 'enableLogs: true', + 'sendDefaultPii: true', ]); }); diff --git a/src/angular/codemods/main.ts b/src/angular/codemods/main.ts index 787088d0d..a8fa0790b 100644 --- a/src/angular/codemods/main.ts +++ b/src/angular/codemods/main.ts @@ -99,6 +99,8 @@ export function getInitCallArgs( initCallArgs.enableLogs = true; } + initCallArgs.sendDefaultPii = true; + return initCallArgs; } From 3d2c6d284c6632ba79f01c0c28ced5f0ada1cafe Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Tue, 5 Aug 2025 13:25:20 +0100 Subject: [PATCH 2/5] Update PR number --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07baafe31..f7e0b279a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ## Unreleased - feat(nextjs): Set `sendDefaultPii: true` by default ([#1052](https://github.com/getsentry/sentry-wizard/pull/1052)) -- feat(angular): Set `sendDefaultPii: true` by default ([#1056](https://github.com/getsentry/sentry-wizard/pull/1056)) +- feat(angular): Set `sendDefaultPii: true` by default ([#1057](https://github.com/getsentry/sentry-wizard/pull/1057)) ## 6.5.0 From 5559f7d20036fce975ccf6eaeb5a87cb37bb6fa0 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Thu, 7 Aug 2025 07:53:37 +0100 Subject: [PATCH 3/5] Add a unit test --- test/angular/angular-wizard.test.ts | 64 +++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/test/angular/angular-wizard.test.ts b/test/angular/angular-wizard.test.ts index 64c240946..64eff6f6e 100644 --- a/test/angular/angular-wizard.test.ts +++ b/test/angular/angular-wizard.test.ts @@ -1,30 +1,58 @@ import { describe, expect, it, vi } from 'vitest'; import { buildOutroMessage } from '../../src/angular/angular-wizard'; +import { getInitCallArgs } from '../../src/angular/codemods/main'; vi.mock('../../src/utils/clack/mcp-config', () => ({ offerProjectScopedMcpConfig: vi.fn().mockResolvedValue(undefined), })); -describe('buildOutroMessage', () => { - it('returns the correct outro message if example component was created', () => { - expect(buildOutroMessage(true)).toMatchInlineSnapshot(` - " - Successfully installed the Sentry Angular SDK! +describe('angular-wizard', () => { + describe('buildOutroMessage', () => { + it('returns the correct outro message if example component was created', () => { + expect(buildOutroMessage(true)).toMatchInlineSnapshot(` + " + Successfully installed the Sentry Angular SDK! - You can validate your setup by starting your dev environment (ng serve) and throwing an error in the example component. + You can validate your setup by starting your dev environment (ng serve) and throwing an error in the example component. - Check out the SDK documentation for further configuration: - https://docs.sentry.io/platforms/javascript/guides/angular/" - `); + Check out the SDK documentation for further configuration: + https://docs.sentry.io/platforms/javascript/guides/angular/" + `); + }); + it('returns the correct outro message if example component creation was skipped', () => { + expect(buildOutroMessage(false)).toMatchInlineSnapshot(` + " + Successfully installed the Sentry Angular SDK! + + Check out the SDK documentation for further configuration: + https://docs.sentry.io/platforms/javascript/guides/angular/" + `); + }); }); - it('returns the correct outro message if example component creation was skipped', () => { - expect(buildOutroMessage(false)).toMatchInlineSnapshot(` - " - Successfully installed the Sentry Angular SDK! - - Check out the SDK documentation for further configuration: - https://docs.sentry.io/platforms/javascript/guides/angular/" - `); + + describe('getInitCallArgs', () => { + it('returns the correct init call arguments when features are enabled', () => { + const args = getInitCallArgs('https://example.com', { + performance: true, + replay: true, + logs: true, + }); + expect(args).toEqual(expect.objectContaining({ + sendDefaultPii: true, + })); + }); + + it('returns the correct init call arguments when features are disabled', () => { + const args = getInitCallArgs('https://example.com', { + performance: false, + replay: false, + logs: false, + }); + + expect(args).toEqual(expect.objectContaining({ + sendDefaultPii: true, + })); + }); }); -}); +}); \ No newline at end of file From 1d235828a7e4f4d008de962a7ba265277209d9a4 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Thu, 7 Aug 2025 12:04:30 +0100 Subject: [PATCH 4/5] Lint --- test/angular/angular-wizard.test.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/test/angular/angular-wizard.test.ts b/test/angular/angular-wizard.test.ts index 64eff6f6e..a889d6bfe 100644 --- a/test/angular/angular-wizard.test.ts +++ b/test/angular/angular-wizard.test.ts @@ -38,9 +38,11 @@ describe('angular-wizard', () => { replay: true, logs: true, }); - expect(args).toEqual(expect.objectContaining({ - sendDefaultPii: true, - })); + expect(args).toEqual( + expect.objectContaining({ + sendDefaultPii: true, + }), + ); }); it('returns the correct init call arguments when features are disabled', () => { @@ -50,9 +52,11 @@ describe('angular-wizard', () => { logs: false, }); - expect(args).toEqual(expect.objectContaining({ - sendDefaultPii: true, - })); + expect(args).toEqual( + expect.objectContaining({ + sendDefaultPii: true, + }), + ); }); }); -}); \ No newline at end of file +}); From cf783989a575a28d4c0edaaedc104b3abba18387 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Mon, 6 Oct 2025 14:23:45 +0100 Subject: [PATCH 5/5] Use `toMatchInlineSnapshot` --- test/angular/angular-wizard.test.ts | 97 +++++++++++++++++++++++++---- 1 file changed, 85 insertions(+), 12 deletions(-) diff --git a/test/angular/angular-wizard.test.ts b/test/angular/angular-wizard.test.ts index a889d6bfe..e58071a94 100644 --- a/test/angular/angular-wizard.test.ts +++ b/test/angular/angular-wizard.test.ts @@ -32,31 +32,104 @@ describe('angular-wizard', () => { }); describe('getInitCallArgs', () => { - it('returns the correct init call arguments when features are enabled', () => { + it('returns the correct init call arguments when all features are enabled', () => { const args = getInitCallArgs('https://example.com', { performance: true, replay: true, logs: true, }); - expect(args).toEqual( - expect.objectContaining({ - sendDefaultPii: true, - }), - ); + expect(args).toMatchInlineSnapshot(` + { + "dsn": "https://example.com", + "enableLogs": true, + "integrations": [ + {}, + {}, + ], + "replaysOnErrorSampleRate": 1, + "replaysSessionSampleRate": 0.1, + "sendDefaultPii": true, + "tracesSampleRate": 1, + } + `); }); - it('returns the correct init call arguments when features are disabled', () => { + it('returns the correct init call arguments when performance is disabled', () => { + const args = getInitCallArgs('https://example.com', { + performance: false, + replay: true, + logs: true, + }); + + expect(args).toMatchInlineSnapshot(` + { + "dsn": "https://example.com", + "enableLogs": true, + "integrations": [ + {}, + ], + "replaysOnErrorSampleRate": 1, + "replaysSessionSampleRate": 0.1, + "sendDefaultPii": true, + } + `); + }); + + it('returns the correct init call arguments when replay is disabled', () => { + const args = getInitCallArgs('https://example.com', { + performance: true, + replay: false, + logs: true, + }); + + expect(args).toMatchInlineSnapshot(` + { + "dsn": "https://example.com", + "enableLogs": true, + "integrations": [ + {}, + ], + "sendDefaultPii": true, + "tracesSampleRate": 1, + } + `); + }); + + it('returns the correct init call arguments when logs are disabled', () => { + const args = getInitCallArgs('https://example.com', { + performance: true, + replay: true, + logs: false, + }); + + expect(args).toMatchInlineSnapshot(` + { + "dsn": "https://example.com", + "integrations": [ + {}, + {}, + ], + "replaysOnErrorSampleRate": 1, + "replaysSessionSampleRate": 0.1, + "sendDefaultPii": true, + "tracesSampleRate": 1, + } + `); + }); + + it('returns the correct init call arguments when all features are disabled', () => { const args = getInitCallArgs('https://example.com', { performance: false, replay: false, logs: false, }); - expect(args).toEqual( - expect.objectContaining({ - sendDefaultPii: true, - }), - ); + expect(args).toMatchInlineSnapshot(` + { + "dsn": "https://example.com", + "sendDefaultPii": true, + } + `); }); }); });