Skip to content

Commit 598230a

Browse files
authored
Merge branch 'microsoft:main' into main
2 parents 47aaaac + 6873816 commit 598230a

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/vs/workbench/api/test/browser/extHostTelemetry.test.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,4 +142,48 @@ suite('ExtHostTelemetry', function () {
142142
assert.strictEqual(flushCalled, true);
143143

144144
});
145+
146+
test('Ensure logger properly cleans PII', function () {
147+
const sentData: any[] = [];
148+
149+
// This is the appender which the extension would contribute
150+
const appender: TelemetryAppender = {
151+
logEvent: (eventName: string, data) => {
152+
sentData.push({ eventName, data });
153+
},
154+
logException: (exception, data) => {
155+
// no-op
156+
},
157+
ignoreBuiltInCommonProperties: false,
158+
};
159+
160+
const extensionTelemetry = new ExtHostTelemetry(new class extends mock<IExtHostInitDataService>() {
161+
override environment: IEnvironment = mockEnvironment;
162+
override telemetryInfo: ITelemetryInfo = mockTelemetryInfo;
163+
override remote = mockRemote;
164+
}, new TestTelemetryLoggerService(DEFAULT_LOG_LEVEL));
165+
166+
extensionTelemetry.$initializeTelemetryLevel(TelemetryLevel.USAGE, { usage: true, error: true });
167+
168+
// Create the logger usting the appender
169+
const logger = extensionTelemetry.instantiateLogger(mockExtensionIdentifier, appender);
170+
171+
// Log an event with a bunch of PII, this should all get cleaned out
172+
logger.logUsage('test-event', {
173+
'fake-password': 'pwd=123',
174+
'fake-email': '[email protected]',
175+
'fake-token': 'token=123',
176+
'fake-slack-token': 'xoxp-123',
177+
'fake-path': '/Users/username/.vscode/extensions',
178+
});
179+
180+
assert.strictEqual(sentData.length, 1);
181+
assert.strictEqual(sentData[0].eventName, `${mockExtensionIdentifier.name}/test-event`);
182+
assert.strictEqual(sentData[0].data['fake-password'], '<REDACTED: Generic Secret>');
183+
assert.strictEqual(sentData[0].data['fake-email'], '<REDACTED: Email>');
184+
assert.strictEqual(sentData[0].data['fake-token'], '<REDACTED: Generic Secret>');
185+
assert.strictEqual(sentData[0].data['fake-slack-token'], '<REDACTED: Slack Token>');
186+
assert.strictEqual(sentData[0].data['fake-path'], '<REDACTED: user-file-path>');
187+
188+
});
145189
});

0 commit comments

Comments
 (0)