summaryrefslogtreecommitdiff
path: root/packages/core/src/config/config.test.ts
diff options
context:
space:
mode:
authorRichie Foreman <[email protected]>2025-08-12 14:31:59 -0400
committerGitHub <[email protected]>2025-08-12 18:31:59 +0000
commit7cc6b8c270a67803f9387eeead0d3d7ac914303a (patch)
tree982fa440c974512961670cb4ee43a62641950ce6 /packages/core/src/config/config.test.ts
parentc5c6966d08b042b3b287c1909afa60f950bca147 (diff)
chore(usage telemetry): Freshen up Clearcut logging (#6013)
Co-authored-by: christine betts <[email protected]> Co-authored-by: Jacob Richman <[email protected]> Co-authored-by: matt korwel <[email protected]>
Diffstat (limited to 'packages/core/src/config/config.test.ts')
-rw-r--r--packages/core/src/config/config.test.ts42
1 files changed, 41 insertions, 1 deletions
diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts
index 8e6ca38f..6c57d058 100644
--- a/packages/core/src/config/config.test.ts
+++ b/packages/core/src/config/config.test.ts
@@ -4,7 +4,8 @@
* SPDX-License-Identifier: Apache-2.0
*/
-import { describe, it, expect, vi, beforeEach, Mock } from 'vitest';
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+import { Mock } from 'vitest';
import { Config, ConfigParameters, SandboxConfig } from './config.js';
import * as path from 'path';
import { setGeminiMdFilename as mockSetGeminiMdFilename } from '../tools/memoryTool.js';
@@ -18,6 +19,7 @@ import {
} from '../core/contentGenerator.js';
import { GeminiClient } from '../core/client.js';
import { GitService } from '../services/gitService.js';
+import { ClearcutLogger } from '../telemetry/clearcut-logger/clearcut-logger.js';
vi.mock('fs', async (importOriginal) => {
const actual = await importOriginal<typeof import('fs')>();
@@ -119,11 +121,16 @@ describe('Server Config (config.ts)', () => {
telemetry: TELEMETRY_SETTINGS,
sessionId: SESSION_ID,
model: MODEL,
+ usageStatisticsEnabled: false,
};
beforeEach(() => {
// Reset mocks if necessary
vi.clearAllMocks();
+ vi.spyOn(
+ ClearcutLogger.prototype,
+ 'logStartSessionEvent',
+ ).mockImplementation(() => undefined);
});
describe('initialize', () => {
@@ -372,6 +379,39 @@ describe('Server Config (config.ts)', () => {
expect(fileService).toBeDefined();
});
+ describe('Usage Statistics', () => {
+ it('defaults usage statistics to enabled if not specified', () => {
+ const config = new Config({
+ ...baseParams,
+ usageStatisticsEnabled: undefined,
+ });
+
+ expect(config.getUsageStatisticsEnabled()).toBe(true);
+ });
+
+ it.each([{ enabled: true }, { enabled: false }])(
+ 'sets usage statistics based on the provided value (enabled: $enabled)',
+ ({ enabled }) => {
+ const config = new Config({
+ ...baseParams,
+ usageStatisticsEnabled: enabled,
+ });
+ expect(config.getUsageStatisticsEnabled()).toBe(enabled);
+ },
+ );
+
+ it('logs the session start event', () => {
+ new Config({
+ ...baseParams,
+ usageStatisticsEnabled: true,
+ });
+
+ expect(
+ ClearcutLogger.prototype.logStartSessionEvent,
+ ).toHaveBeenCalledOnce();
+ });
+ });
+
describe('Telemetry Settings', () => {
it('should return default telemetry target if not provided', () => {
const params: ConfigParameters = {