summaryrefslogtreecommitdiff
path: root/packages/core/src/telemetry/metrics.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/telemetry/metrics.test.ts')
-rw-r--r--packages/core/src/telemetry/metrics.test.ts82
1 files changed, 82 insertions, 0 deletions
diff --git a/packages/core/src/telemetry/metrics.test.ts b/packages/core/src/telemetry/metrics.test.ts
index 4fcdd9e1..7b430884 100644
--- a/packages/core/src/telemetry/metrics.test.ts
+++ b/packages/core/src/telemetry/metrics.test.ts
@@ -221,5 +221,87 @@ describe('Telemetry Metrics', () => {
mimetype: 'application/javascript',
});
});
+
+ it('should include diffStat when provided', () => {
+ initializeMetricsModule(mockConfig);
+ mockCounterAddFn.mockClear();
+
+ const diffStat = {
+ ai_added_lines: 5,
+ ai_removed_lines: 2,
+ user_added_lines: 3,
+ user_removed_lines: 1,
+ };
+
+ recordFileOperationMetricModule(
+ mockConfig,
+ FileOperation.UPDATE,
+ undefined,
+ undefined,
+ undefined,
+ diffStat,
+ );
+
+ expect(mockCounterAddFn).toHaveBeenCalledWith(1, {
+ 'session.id': 'test-session-id',
+ operation: FileOperation.UPDATE,
+ ai_added_lines: 5,
+ ai_removed_lines: 2,
+ user_added_lines: 3,
+ user_removed_lines: 1,
+ });
+ });
+
+ it('should not include diffStat attributes when diffStat is not provided', () => {
+ initializeMetricsModule(mockConfig);
+ mockCounterAddFn.mockClear();
+
+ recordFileOperationMetricModule(
+ mockConfig,
+ FileOperation.UPDATE,
+ 10,
+ 'text/plain',
+ 'txt',
+ undefined,
+ );
+
+ expect(mockCounterAddFn).toHaveBeenCalledWith(1, {
+ 'session.id': 'test-session-id',
+ operation: FileOperation.UPDATE,
+ lines: 10,
+ mimetype: 'text/plain',
+ extension: 'txt',
+ });
+ });
+
+ it('should handle diffStat with all zero values', () => {
+ initializeMetricsModule(mockConfig);
+ mockCounterAddFn.mockClear();
+
+ const diffStat = {
+ ai_added_lines: 0,
+ ai_removed_lines: 0,
+ user_added_lines: 0,
+ user_removed_lines: 0,
+ };
+
+ recordFileOperationMetricModule(
+ mockConfig,
+ FileOperation.UPDATE,
+ undefined,
+ undefined,
+ undefined,
+ diffStat,
+ );
+
+ expect(mockCounterAddFn).toHaveBeenCalledWith(1, {
+ 'session.id': 'test-session-id',
+ operation: FileOperation.UPDATE,
+ ai_added_lines: 0,
+ ai_removed_lines: 0,
+ user_added_lines: 0,
+ user_removed_lines: 0,
+ });
+ });
});
});