Skip to content

Commit 69b7e04

Browse files
Put error logging behind new secret flag
1 parent 9184bde commit 69b7e04

2 files changed

Lines changed: 32 additions & 2 deletions

File tree

extensions/ql-vscode/src/telemetry.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,12 @@ export class TelemetryListener extends ConfigListener {
196196
return;
197197
}
198198

199+
if (!newTelemetryEnabled()) {
200+
return;
201+
}
202+
199203
const properties: { [key: string]: string } = {
204+
isCanary: isCanary().toString(),
200205
message: error.redactedMessage,
201206
...extraProperties,
202207
};

extensions/ql-vscode/test/vscode-tests/no-workspace/telemetry.test.ts

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { UserCancellationException } from "../../../src/commandRunner";
1313
import { ENABLE_TELEMETRY } from "../../../src/config";
1414
import * as Config from "../../../src/config";
1515
import { createMockExtensionContext } from "./index";
16+
import { redactableError } from "../../../src/pure/errors";
1617

1718
// setting preferences can trigger lots of background activity
1819
// so need to bump up the timeout of this test.
@@ -390,21 +391,29 @@ describe("telemetry reporting", () => {
390391
});
391392

392393
describe("when new telementry is not enabled", () => {
393-
it("should not send a telementry event", async () => {
394+
it("should not send a ui-interaction telementry event", async () => {
394395
await telemetryListener.initialize();
395396

396397
telemetryListener.sendUIInteraction("test");
397398

398399
expect(sendTelemetryEventSpy).not.toBeCalled();
399400
});
401+
402+
it("should not send an error telementry event", async () => {
403+
await telemetryListener.initialize();
404+
405+
telemetryListener.sendError(redactableError`test`);
406+
407+
expect(sendTelemetryEventSpy).not.toBeCalled();
408+
});
400409
});
401410

402411
describe("when new telementry is enabled", () => {
403412
beforeEach(async () => {
404413
jest.spyOn(Config, "newTelemetryEnabled").mockReturnValue(true);
405414
});
406415

407-
it("should not send a telementry event", async () => {
416+
it("should send a ui-interaction telementry event", async () => {
408417
await telemetryListener.initialize();
409418

410419
telemetryListener.sendUIInteraction("test");
@@ -418,6 +427,22 @@ describe("telemetry reporting", () => {
418427
{},
419428
);
420429
});
430+
431+
it("should send an error telementry event", async () => {
432+
await telemetryListener.initialize();
433+
434+
telemetryListener.sendError(redactableError`test`);
435+
436+
expect(sendTelemetryEventSpy).toHaveBeenCalledWith(
437+
"error",
438+
{
439+
message: "test",
440+
isCanary,
441+
stack: expect.any(String),
442+
},
443+
{},
444+
);
445+
});
421446
});
422447

423448
async function enableTelemetry(section: string, value: boolean | undefined) {

0 commit comments

Comments
 (0)