Skip to content

Commit c330ff9

Browse files
author
Kartik Raj
authored
Do not use readSync everytime telemetry is sent (#23011)
For #22991 Introduced by #21377 cc/ @DonJayamanne
1 parent 50f4b7b commit c330ff9

File tree

2 files changed

+11
-31
lines changed

2 files changed

+11
-31
lines changed

src/client/telemetry/index.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@
33
// Licensed under the MIT License.
44

55
import TelemetryReporter from '@vscode/extension-telemetry';
6-
7-
import * as path from 'path';
8-
import * as fs from 'fs-extra';
6+
import type * as vscodeTypes from 'vscode';
97
import { DiagnosticCodes } from '../application/diagnostics/constants';
10-
import { AppinsightsKey, EXTENSION_ROOT_DIR, isTestExecution, isUnitTestExecution } from '../common/constants';
8+
import { AppinsightsKey, isTestExecution, isUnitTestExecution, PVSC_EXTENSION_ID } from '../common/constants';
119
import type { TerminalShellType } from '../common/terminal/types';
1210
import { StopWatch } from '../common/utils/stopWatch';
1311
import { isPromise } from '../common/utils/async';
@@ -39,14 +37,20 @@ function isTelemetrySupported(): boolean {
3937
}
4038
}
4139

40+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
41+
let packageJSON: any;
42+
4243
/**
4344
* Checks if the telemetry is disabled
4445
* @returns {boolean}
4546
*/
4647
export function isTelemetryDisabled(): boolean {
47-
const packageJsonPath = path.join(EXTENSION_ROOT_DIR, 'package.json');
48-
const packageJson = fs.readJSONSync(packageJsonPath);
49-
return !packageJson.enableTelemetry;
48+
if (!packageJSON) {
49+
const vscode = require('vscode') as typeof vscodeTypes;
50+
const pythonExtension = vscode.extensions.getExtension(PVSC_EXTENSION_ID)!;
51+
packageJSON = pythonExtension.packageJSON;
52+
}
53+
return !packageJSON.enableTelemetry;
5054
}
5155

5256
const sharedProperties: Record<string, unknown> = {};

src/test/telemetry/index.unit.test.ts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import * as fs from 'fs-extra';
1010
import {
1111
_resetSharedProperties,
1212
clearTelemetryReporter,
13-
isTelemetryDisabled,
1413
sendTelemetryEvent,
1514
setSharedProperty,
1615
} from '../../client/telemetry';
@@ -60,29 +59,6 @@ suite('Telemetry', () => {
6059
sinon.restore();
6160
});
6261

63-
const testsForisTelemetryDisabled = [
64-
{
65-
testName: 'Returns true',
66-
settings: { enableTelemetry: true },
67-
expectedResult: false,
68-
},
69-
{
70-
testName: 'Returns false ',
71-
settings: { enableTelemetry: false },
72-
expectedResult: true,
73-
},
74-
];
75-
76-
suite('Function isTelemetryDisabled()', () => {
77-
testsForisTelemetryDisabled.forEach((testParams) => {
78-
test(testParams.testName, async () => {
79-
readJSONSyncStub.returns(testParams.settings);
80-
expect(isTelemetryDisabled()).to.equal(testParams.expectedResult);
81-
sinon.assert.calledOnce(readJSONSyncStub);
82-
});
83-
});
84-
});
85-
8662
test('Send Telemetry', () => {
8763
rewiremock.enable();
8864
rewiremock('@vscode/extension-telemetry').with({ default: Reporter });

0 commit comments

Comments
 (0)