Skip to content

Commit 8f7dae5

Browse files
committed
Bump vscode_extension schema version to 1-0-1
- This version allows fields to contain longer values. - Also changed the vscode_extension properties to be nested to avoid any issues with name collisions.
1 parent 76a08d2 commit 8f7dae5

File tree

3 files changed

+41
-19
lines changed

3 files changed

+41
-19
lines changed

src/entities/vscode_extension.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ export interface VSCodeExtensionInterface {
1212
}
1313

1414
export class VSCodeExtension implements VSCodeExtensionInterface {
15-
public id: string; // "The canonical extension identifier in the form of: `publisher.name`" - (max len: 510)
16-
public publisher: string; // (max len: 255)
17-
public name: string; // (max len: 255)
18-
public display_name: string; // (max len: 255)
19-
public author: string; // (max len: 255)
15+
public id: string; // "The canonical extension identifier in the form of: `publisher.name`" - (max len: 1024)
16+
public publisher: string; // (max len: 512)
17+
public name: string; // (max len: 512)
18+
public display_name: string; // (max len: 2048)
19+
public author: string; // (max len: 512)
2020
public version: string; // (max len: 255)
2121
public description: string; // (max len: 2048)
22-
public categories: string[]; // (max len: 510)
22+
public categories: string[]; // (max len per category string: 510)
2323
public extension_kind: string[]; // In a remote window the extension kind describes if an extension runs where the UI (window) runs or if an extension runs remotely. (max len: 255)
2424

2525
constructor(data: VSCodeExtensionInterface) {
@@ -41,7 +41,7 @@ export class VSCodeExtension implements VSCodeExtensionInterface {
4141

4242
async buildPayload() {
4343
return {
44-
schema: 'iglu:com.software/vscode_extension/jsonschema/1-0-0',
44+
schema: 'iglu:com.software/vscode_extension/jsonschema/1-0-1',
4545
data: {
4646
id: this.id,
4747
publisher: this.publisher,

src/utils/context_helper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ export async function buildContexts(params: any) {
5454
}
5555

5656
// vscode extension event
57-
if (VSCodeExtension.hasData(params)) {
58-
const _vscodeExtension = await new VSCodeExtension(params).buildPayload();
57+
if (params.vscode_extension && VSCodeExtension.hasData(params.vscode_extension)) {
58+
const _vscodeExtension = await new VSCodeExtension(params.vscode_extension).buildPayload();
5959
contexts.push(_vscodeExtension);
6060
}
6161

test/events/vscode_extension_event.test.ts

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,17 @@ describe('VSCode Extension Event', function () {
3939
action: 'installed',
4040
event_at: '2023-02-13T04:00:00Z',
4141
os: 'Darwin_22.1.0_darwin',
42-
id: 'softwaredotcom.swdc-vscode',
43-
publisher: 'softwaredotcom',
44-
name: 'swdc-vscode',
45-
display_name: 'Code Time',
46-
author: 'Software.com',
47-
version: '2.6.44',
48-
description: 'Code Time is an open source plugin that provides programming metrics right in Visual Studio Code.',
49-
categories: ["Other"],
50-
extension_kind: ["ui", "workspace"]
42+
vscode_extension: {
43+
id: 'softwaredotcom.swdc-vscode',
44+
publisher: 'softwaredotcom',
45+
name: 'swdc-vscode',
46+
display_name: 'Code Time',
47+
author: 'Software.com',
48+
version: '2.6.44',
49+
description: 'Code Time is an open source plugin that provides programming metrics right in Visual Studio Code.',
50+
categories: ["Other"],
51+
extension_kind: ["ui", "workspace"]
52+
}
5153
};
5254

5355
it('returns a 200 status', async function () {
@@ -69,7 +71,27 @@ describe('VSCode Extension Event', function () {
6971
const contexts = swdcTracker.getLastProcessedTestEvent().contexts;
7072
const vscodeExtensionContext: any = contexts.find((n: any) => n.schema.includes('vscode_extension'));
7173

72-
expect(eventData).to.include(vscodeExtensionContext.data);
74+
expect(vscodeExtensionContext.data).to.eql(
75+
{
76+
id: 'softwaredotcom.swdc-vscode',
77+
publisher: 'softwaredotcom',
78+
name: 'swdc-vscode',
79+
display_name: 'Code Time',
80+
author: 'Software.com',
81+
version: '2.6.44',
82+
description: 'Code Time is an open source plugin that provides programming metrics right in Visual Studio Code.',
83+
categories: [ 'Other' ],
84+
extension_kind: [ 'ui', 'workspace' ]
85+
}
86+
);
87+
})
88+
89+
it("has the auth context", async function() {
90+
await swdcTracker.trackVSCodeExtension(eventData);
91+
const contexts = swdcTracker.getLastProcessedTestEvent().contexts;
92+
const auth: any = contexts.find((n: any) => n.schema.includes('auth'));
93+
94+
expect(auth.data).to.eql({ "jwt": "JWT 123" });
7395
})
7496
});
7597
});

0 commit comments

Comments
 (0)