Skip to content

Commit 50467c1

Browse files
authored
chore: Add segment telemetry id to create atlas cluster (#304)
1 parent e82d9ab commit 50467c1

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

src/explorer/helpTree.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export class HelpLinkTreeItem extends vscode.TreeItem {
4343

4444
export default class HelpTree implements vscode.TreeDataProvider<vscode.TreeItem> {
4545
contextValue = 'helpTree';
46+
_telemetryService?: TelemetryService;
4647

4748
getTreeItem(element: vscode.TreeItem): vscode.TreeItem {
4849
return element;
@@ -52,6 +53,7 @@ export default class HelpTree implements vscode.TreeDataProvider<vscode.TreeItem
5253
treeView: vscode.TreeView<vscode.TreeItem>,
5354
telemetryService: TelemetryService
5455
): void => {
56+
this._telemetryService = telemetryService;
5557
treeView.onDidChangeSelection(async (event: any) => {
5658
if (event.selection && event.selection.length === 1) {
5759
const selectedItem = event.selection[0];
@@ -99,9 +101,11 @@ export default class HelpTree implements vscode.TreeDataProvider<vscode.TreeItem
99101
'report'
100102
);
101103

104+
const userId = this._telemetryService?.getSegmentUserId();
105+
const segmentId = userId ? `&ajs_aid=${userId}` : '';
102106
const atlas = new HelpLinkTreeItem(
103107
'Create Free Atlas Cluster',
104-
'https://mongodb.com/products/vs-code/vs-code-atlas-signup?utm_campaign=vs-code-extension&utm_source=visual-studio&utm_medium=product',
108+
`https://mongodb.com/products/vs-code/vs-code-atlas-signup?utm_campaign=vs-code-extension&utm_source=visual-studio&utm_medium=product${segmentId}`,
105109
'freeClusterCTA',
106110
'atlas',
107111
true

src/telemetry/telemetryService.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,10 @@ export default class TelemetryService {
250250
return 'other';
251251
}
252252

253+
getSegmentUserId(): string {
254+
return this._segmentUserID;
255+
}
256+
253257
trackPlaygroundCodeExecuted(
254258
result: ShellExecuteAllResult,
255259
partial: boolean,

src/test/suite/explorer/helpExplorer.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ suite('Help Explorer Test Suite', function () {
4141
const helpTreeItems = await testHelpExplorer._treeController.getChildren();
4242
const atlasHelpItem = helpTreeItems[5];
4343

44-
assert(atlasHelpItem.label === 'Create Free Atlas Cluster');
45-
assert(
46-
atlasHelpItem.url ===
47-
'https://mongodb.com/products/vs-code/vs-code-atlas-signup?utm_campaign=vs-code-extension&utm_source=visual-studio&utm_medium=product'
44+
assert.strictEqual(atlasHelpItem.label, 'Create Free Atlas Cluster');
45+
assert.strictEqual(
46+
atlasHelpItem.url,
47+
`https://mongodb.com/products/vs-code/vs-code-atlas-signup?utm_campaign=vs-code-extension&utm_source=visual-studio&utm_medium=product&ajs_aid=${mdbTestExtension.testExtensionController._telemetryService.getSegmentUserId()}`
4848
);
49-
assert(atlasHelpItem.iconName === 'atlas');
50-
assert(atlasHelpItem.linkId === 'freeClusterCTA');
49+
assert.strictEqual(atlasHelpItem.iconName, 'atlas');
50+
assert.strictEqual(atlasHelpItem.linkId, 'freeClusterCTA');
5151
assert(atlasHelpItem.useRedirect === true);
5252
// The assert below is a bit redundant but will prevent us from redirecting to a non-https URL by mistake
5353
assert(atlasHelpItem.url.startsWith('https://') === true);

src/test/suite/telemetry/telemetryService.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ suite('Telemetry Controller Test Suite', () => {
9090
expect(segmentKey).to.be.equal(process.env.SEGMENT_KEY);
9191
expect(testTelemetryService._segmentKey).to.be.a('string');
9292
expect(testTelemetryService._segmentUserID).to.be.a('string');
93+
expect(testTelemetryService.getSegmentUserId()).to.be.a('string');
94+
expect(testTelemetryService.getSegmentUserId()).to.equal(testTelemetryService._segmentUserID);
9395
});
9496

9597
test('track command run event', async () => {

0 commit comments

Comments
 (0)