Skip to content

Commit b7010aa

Browse files
authored
Replace deprecated telemetry setting in the tests (github#3362)
1 parent 574ba17 commit b7010aa

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

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

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jest.setTimeout(10000);
1818

1919
describe("telemetry reporting", () => {
2020
let originalTelemetryExtension: boolean | undefined;
21-
let originalTelemetryGlobal: boolean | undefined;
21+
let originalTelemetryGlobal: string | undefined;
2222
let isCanary: string;
2323
let ctx: ExtensionContext;
2424
let telemetryListener: ExtensionTelemetryListener;
@@ -48,7 +48,7 @@ describe("telemetry reporting", () => {
4848
try {
4949
// in case a previous test has accidentally activated this extension,
5050
// need to disable it first.
51-
// Accidentaly activation may happen asynchronously due to activationEvents
51+
// Accidental activation may happen asynchronously due to activationEvents
5252
// specified in the package.json.
5353
globalTelemetryListener?.dispose();
5454

@@ -73,7 +73,7 @@ describe("telemetry reporting", () => {
7373
.get<boolean>("codeQL.telemetry.enableTelemetry");
7474
originalTelemetryGlobal = workspace
7575
.getConfiguration()
76-
.get<boolean>("telemetry.enableTelemetry");
76+
.get<string>("telemetry.telemetryLevel");
7777
isCanary = (!!workspace
7878
.getConfiguration()
7979
.get<boolean>("codeQL.canary")).toString();
@@ -82,7 +82,7 @@ describe("telemetry reporting", () => {
8282
isTelemetryEnabledSpy = jest
8383
.spyOn(env, "isTelemetryEnabled", "get")
8484
.mockReturnValue(true);
85-
await enableTelemetry("telemetry", true);
85+
await setTelemetryLevel("telemetry", "all");
8686
await enableTelemetry("codeQL.telemetry", true);
8787

8888
telemetryListener = new ExtensionTelemetryListener(
@@ -101,27 +101,26 @@ describe("telemetry reporting", () => {
101101
telemetryListener?.dispose();
102102
// await wait(100);
103103
try {
104-
await enableTelemetry("telemetry", originalTelemetryGlobal);
104+
await setTelemetryLevel("telemetry", originalTelemetryGlobal);
105105
await enableTelemetry("codeQL.telemetry", originalTelemetryExtension);
106106
} catch (e) {
107107
console.error(e);
108108
}
109109
});
110110

111-
it("should initialize telemetry when both options are enabled", async () => {
111+
it("should initialize telemetry when 'codeQL.telemetry.enableTelemetry' is enabled and global 'telemetry.telemetryLevel' is 'all'", async () => {
112112
await telemetryListener.initialize();
113113

114114
expect(telemetryListener._reporter).toBeDefined();
115-
116115
const reporter: any = telemetryListener._reporter;
117116
expect(reporter.extensionId).toBe("my-id");
118117
expect(reporter.extensionVersion).toBe("1.2.3");
119118
expect(reporter.userOptIn).toBe(true); // enabled
120119
});
121120

122-
it("should initialize telemetry when global option disabled", async () => {
121+
it("should initialize telemetry when global 'telemetry.telemetryLevel' is 'off'", async () => {
123122
isTelemetryEnabledSpy.mockReturnValue(false);
124-
await enableTelemetry("telemetry", false);
123+
await setTelemetryLevel("telemetry", "off");
125124
await telemetryListener.initialize();
126125
expect(telemetryListener._reporter).toBeDefined();
127126

@@ -139,7 +138,7 @@ describe("telemetry reporting", () => {
139138
it("should not initialize telemetry when both options disabled", async () => {
140139
await enableTelemetry("codeQL.telemetry", false);
141140
isTelemetryEnabledSpy.mockReturnValue(false);
142-
await enableTelemetry("telemetry", false);
141+
await setTelemetryLevel("telemetry", "off");
143142
await telemetryListener.initialize();
144143
expect(telemetryListener._reporter).toBeUndefined();
145144
});
@@ -179,14 +178,14 @@ describe("telemetry reporting", () => {
179178
expect(disposeSpy).toHaveBeenCalledTimes(1);
180179
});
181180

182-
it("should set userOprIn to false when global setting changes", async () => {
181+
it("should set userOptIn to false when global setting changes", async () => {
183182
await telemetryListener.initialize();
184183

185184
const reporter: any = telemetryListener._reporter;
186185
expect(reporter.userOptIn).toBe(true); // enabled
187186

188187
isTelemetryEnabledSpy.mockReturnValue(false);
189-
await enableTelemetry("telemetry", false);
188+
await setTelemetryLevel("telemetry", "off");
190189
expect(reporter.userOptIn).toBe(false); // disabled
191190
});
192191

@@ -420,7 +419,7 @@ describe("telemetry reporting", () => {
420419
// show the dialog.
421420

422421
isTelemetryEnabledSpy.mockReturnValue(false);
423-
await enableTelemetry("telemetry", false);
422+
await setTelemetryLevel("telemetry", "off");
424423
await ctx.globalState.update("telemetry-request-viewed", false);
425424

426425
await telemetryListener.initialize();
@@ -431,7 +430,7 @@ describe("telemetry reporting", () => {
431430

432431
// This test is failing because codeQL.canary is not a registered configuration.
433432
// We do not want to have it registered because we don't want this item
434-
// appearing in the settings page. It needs to olny be set by users we tell
433+
// appearing in the settings page. It needs to only be set by users we tell
435434
// about it to.
436435
// At this point, I see no other way of testing re-requesting permission.
437436
xit("should request permission again when user changes canary setting", async () => {
@@ -574,6 +573,16 @@ describe("telemetry reporting", () => {
574573
await wait(100);
575574
}
576575

576+
async function setTelemetryLevel(section: string, value: string | undefined) {
577+
await workspace
578+
.getConfiguration(section)
579+
.update("telemetryLevel", value, ConfigurationTarget.Global);
580+
581+
// Need to wait some time since the onDidChangeConfiguration listeners fire
582+
// asynchronously. Must ensure they to complete in order to have a successful test.
583+
await wait(100);
584+
}
585+
577586
async function wait(ms = 0) {
578587
return new Promise((resolve) => setTimeout(resolve, ms));
579588
}

0 commit comments

Comments
 (0)