Put error logging behind new secret flag

This commit is contained in:
Robert
2023-02-02 10:51:36 +00:00
parent 9184bde8a6
commit 69b7e04ec0
2 changed files with 32 additions and 2 deletions

View File

@@ -196,7 +196,12 @@ export class TelemetryListener extends ConfigListener {
return; return;
} }
if (!newTelemetryEnabled()) {
return;
}
const properties: { [key: string]: string } = { const properties: { [key: string]: string } = {
isCanary: isCanary().toString(),
message: error.redactedMessage, message: error.redactedMessage,
...extraProperties, ...extraProperties,
}; };

View File

@@ -13,6 +13,7 @@ import { UserCancellationException } from "../../../src/commandRunner";
import { ENABLE_TELEMETRY } from "../../../src/config"; import { ENABLE_TELEMETRY } from "../../../src/config";
import * as Config from "../../../src/config"; import * as Config from "../../../src/config";
import { createMockExtensionContext } from "./index"; import { createMockExtensionContext } from "./index";
import { redactableError } from "../../../src/pure/errors";
// setting preferences can trigger lots of background activity // setting preferences can trigger lots of background activity
// so need to bump up the timeout of this test. // so need to bump up the timeout of this test.
@@ -390,13 +391,21 @@ describe("telemetry reporting", () => {
}); });
describe("when new telementry is not enabled", () => { describe("when new telementry is not enabled", () => {
it("should not send a telementry event", async () => { it("should not send a ui-interaction telementry event", async () => {
await telemetryListener.initialize(); await telemetryListener.initialize();
telemetryListener.sendUIInteraction("test"); telemetryListener.sendUIInteraction("test");
expect(sendTelemetryEventSpy).not.toBeCalled(); expect(sendTelemetryEventSpy).not.toBeCalled();
}); });
it("should not send an error telementry event", async () => {
await telemetryListener.initialize();
telemetryListener.sendError(redactableError`test`);
expect(sendTelemetryEventSpy).not.toBeCalled();
});
}); });
describe("when new telementry is enabled", () => { describe("when new telementry is enabled", () => {
@@ -404,7 +413,7 @@ describe("telemetry reporting", () => {
jest.spyOn(Config, "newTelemetryEnabled").mockReturnValue(true); jest.spyOn(Config, "newTelemetryEnabled").mockReturnValue(true);
}); });
it("should not send a telementry event", async () => { it("should send a ui-interaction telementry event", async () => {
await telemetryListener.initialize(); await telemetryListener.initialize();
telemetryListener.sendUIInteraction("test"); telemetryListener.sendUIInteraction("test");
@@ -418,6 +427,22 @@ describe("telemetry reporting", () => {
{}, {},
); );
}); });
it("should send an error telementry event", async () => {
await telemetryListener.initialize();
telemetryListener.sendError(redactableError`test`);
expect(sendTelemetryEventSpy).toHaveBeenCalledWith(
"error",
{
message: "test",
isCanary,
stack: expect.any(String),
},
{},
);
});
}); });
async function enableTelemetry(section: string, value: boolean | undefined) { async function enableTelemetry(section: string, value: boolean | undefined) {