summaryrefslogtreecommitdiff
path: root/packages/core/src/telemetry/loggers.test.ts
diff options
context:
space:
mode:
authorRichie Foreman <[email protected]>2025-08-18 15:59:13 -0400
committerGitHub <[email protected]>2025-08-18 19:59:13 +0000
commit71f706cf29cf70a888ee65117b21ad31042207f8 (patch)
tree3decbcebdcd7ef4db88db11d9a7a07790406ded2 /packages/core/src/telemetry/loggers.test.ts
parent1a0cc68e29672e3f9a2dce6ad267c1bcb428a434 (diff)
feat(client/compression): Log telemetry when compressing chat context. (#6195)
Diffstat (limited to 'packages/core/src/telemetry/loggers.test.ts')
-rw-r--r--packages/core/src/telemetry/loggers.test.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/core/src/telemetry/loggers.test.ts b/packages/core/src/telemetry/loggers.test.ts
index e1c4e65b..a8c5ed88 100644
--- a/packages/core/src/telemetry/loggers.test.ts
+++ b/packages/core/src/telemetry/loggers.test.ts
@@ -34,6 +34,7 @@ import {
logUserPrompt,
logToolCall,
logFlashFallback,
+ logChatCompression,
} from './loggers.js';
import { ToolCallDecision } from './tool-call-decision.js';
import {
@@ -43,12 +44,15 @@ import {
ToolCallEvent,
UserPromptEvent,
FlashFallbackEvent,
+ makeChatCompressionEvent,
} from './types.js';
import * as metrics from './metrics.js';
import * as sdk from './sdk.js';
import { vi, describe, beforeEach, it, expect } from 'vitest';
import { GenerateContentResponseUsageMetadata } from '@google/genai';
import * as uiTelemetry from './uiTelemetry.js';
+import { makeFakeConfig } from '../test-utils/config.js';
+import { ClearcutLogger } from './clearcut-logger/clearcut-logger.js';
describe('loggers', () => {
const mockLogger = {
@@ -68,6 +72,45 @@ describe('loggers', () => {
vi.setSystemTime(new Date('2025-01-01T00:00:00.000Z'));
});
+ describe('logChatCompression', () => {
+ beforeEach(() => {
+ vi.spyOn(metrics, 'recordChatCompressionMetrics');
+ vi.spyOn(ClearcutLogger.prototype, 'logChatCompressionEvent');
+ });
+
+ it('logs the chat compression event to Clearcut', () => {
+ const mockConfig = makeFakeConfig();
+
+ const event = makeChatCompressionEvent({
+ tokens_before: 9001,
+ tokens_after: 9000,
+ });
+
+ logChatCompression(mockConfig, event);
+
+ expect(
+ ClearcutLogger.prototype.logChatCompressionEvent,
+ ).toHaveBeenCalledWith(event);
+ });
+
+ it('records the chat compression event to OTEL', () => {
+ const mockConfig = makeFakeConfig();
+
+ logChatCompression(
+ mockConfig,
+ makeChatCompressionEvent({
+ tokens_before: 9001,
+ tokens_after: 9000,
+ }),
+ );
+
+ expect(metrics.recordChatCompressionMetrics).toHaveBeenCalledWith(
+ mockConfig,
+ { tokens_before: 9001, tokens_after: 9000 },
+ );
+ });
+ });
+
describe('logCliConfiguration', () => {
it('should log the cli configuration', () => {
const mockConfig = {