diff --git a/src/handlers/ResourceHandler.ts b/src/handlers/ResourceHandler.ts index 509c6c37..a881d789 100644 --- a/src/handlers/ResourceHandler.ts +++ b/src/handlers/ResourceHandler.ts @@ -32,6 +32,7 @@ export function getResourceTypesHandler( components: ServerComponents, ): ServerRequestHandler { return (): ResourceTypesResult => { + components.usageTracker.track(EventType.DidGetResourceTypes); try { const resourceTypes = components.resourceStateManager.getResourceTypes(); return { resourceTypes }; diff --git a/src/usageTracker/UsageTracker.ts b/src/usageTracker/UsageTracker.ts index a1cfdd74..f49d3bde 100644 --- a/src/usageTracker/UsageTracker.ts +++ b/src/usageTracker/UsageTracker.ts @@ -4,6 +4,7 @@ export enum EventType { DidImportResources = 'DidImportResources', MeaningfulHover = 'MeaningfulHover', MeaningfulCompletion = 'MeaningfulCompletion', + DidGetResourceTypes = 'DidGetResourceTypes', } export class UsageTracker { diff --git a/src/usageTracker/UsageTrackerMetrics.ts b/src/usageTracker/UsageTrackerMetrics.ts index e12dd651..8a16c5cd 100644 --- a/src/usageTracker/UsageTrackerMetrics.ts +++ b/src/usageTracker/UsageTrackerMetrics.ts @@ -17,6 +17,7 @@ export class UsageTrackerMetrics { EventType.DidImportResources, EventType.MeaningfulHover, EventType.MeaningfulCompletion, + EventType.DidGetResourceTypes, ) ? 1 : 0, diff --git a/tst/unit/server/UsageTracker.test.ts b/tst/unit/server/UsageTracker.test.ts index 6ffec372..d89d52a2 100644 --- a/tst/unit/server/UsageTracker.test.ts +++ b/tst/unit/server/UsageTracker.test.ts @@ -17,7 +17,10 @@ describe('UsageTracker', () => { test('tracks multiple events', () => { tracker.track(EventType.DidDeployment); tracker.track(EventType.DidValidation); - expect(tracker.allUsed(EventType.DidDeployment, EventType.DidValidation)).toBe(true); + tracker.track(EventType.DidGetResourceTypes); + expect( + tracker.allUsed(EventType.DidDeployment, EventType.DidValidation, EventType.DidGetResourceTypes), + ).toBe(true); }); test('does not duplicate events', () => { @@ -51,7 +54,9 @@ describe('UsageTracker', () => { describe('someUsed', () => { test('returns true when at least one event tracked', () => { tracker.track(EventType.DidDeployment); - expect(tracker.someUsed(EventType.DidDeployment, EventType.DidValidation)).toBe(true); + expect( + tracker.someUsed(EventType.DidDeployment, EventType.DidValidation, EventType.DidGetResourceTypes), + ).toBe(true); }); test('returns false when no events tracked', () => { @@ -61,7 +66,10 @@ describe('UsageTracker', () => { test('returns true when all events tracked', () => { tracker.track(EventType.DidDeployment); tracker.track(EventType.DidValidation); - expect(tracker.someUsed(EventType.DidDeployment, EventType.DidValidation)).toBe(true); + tracker.track(EventType.DidGetResourceTypes); + expect( + tracker.someUsed(EventType.DidDeployment, EventType.DidValidation, EventType.DidGetResourceTypes), + ).toBe(true); }); test('returns false for empty list', () => {