Skip to content

Commit edb2c18

Browse files
committed
Track CCAPI usage based on get resource types
1 parent 314ee12 commit edb2c18

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

src/handlers/ResourceHandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export function getResourceTypesHandler(
3232
components: ServerComponents,
3333
): ServerRequestHandler<void, ResourceTypesResult, never, void> {
3434
return (): ResourceTypesResult => {
35+
components.usageTracker.track(EventType.DidGetResourceTypes);
3536
try {
3637
const resourceTypes = components.resourceStateManager.getResourceTypes();
3738
return { resourceTypes };

src/usageTracker/UsageTracker.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export enum EventType {
44
DidImportResources = 'DidImportResources',
55
MeaningfulHover = 'MeaningfulHover',
66
MeaningfulCompletion = 'MeaningfulCompletion',
7+
DidGetResourceTypes = 'DidGetResourceTypes',
78
}
89

910
export class UsageTracker {

tst/unit/server/UsageTracker.test.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ describe('UsageTracker', () => {
1717
test('tracks multiple events', () => {
1818
tracker.track(EventType.DidDeployment);
1919
tracker.track(EventType.DidValidation);
20-
expect(tracker.allUsed(EventType.DidDeployment, EventType.DidValidation)).toBe(true);
20+
tracker.track(EventType.DidGetResourceTypes);
21+
expect(
22+
tracker.allUsed(EventType.DidDeployment, EventType.DidValidation, EventType.DidGetResourceTypes),
23+
).toBe(true);
2124
});
2225

2326
test('does not duplicate events', () => {
@@ -51,7 +54,9 @@ describe('UsageTracker', () => {
5154
describe('someUsed', () => {
5255
test('returns true when at least one event tracked', () => {
5356
tracker.track(EventType.DidDeployment);
54-
expect(tracker.someUsed(EventType.DidDeployment, EventType.DidValidation)).toBe(true);
57+
expect(
58+
tracker.someUsed(EventType.DidDeployment, EventType.DidValidation, EventType.DidGetResourceTypes),
59+
).toBe(true);
5560
});
5661

5762
test('returns false when no events tracked', () => {
@@ -61,7 +66,10 @@ describe('UsageTracker', () => {
6166
test('returns true when all events tracked', () => {
6267
tracker.track(EventType.DidDeployment);
6368
tracker.track(EventType.DidValidation);
64-
expect(tracker.someUsed(EventType.DidDeployment, EventType.DidValidation)).toBe(true);
69+
tracker.track(EventType.DidGetResourceTypes);
70+
expect(
71+
tracker.someUsed(EventType.DidDeployment, EventType.DidValidation, EventType.DidGetResourceTypes),
72+
).toBe(true);
6573
});
6674

6775
test('returns false for empty list', () => {

0 commit comments

Comments
 (0)