diff options
Diffstat (limited to 'packages/cli/src/config/config.test.ts')
| -rw-r--r-- | packages/cli/src/config/config.test.ts | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index a39278bc..6356b624 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -53,6 +53,7 @@ vi.mock('@gemini-code/core', async () => { getGeminiMdFileCount: () => params.geminiMdFileCount, getVertexAI: () => params.vertexai, getShowMemoryUsage: () => params.showMemoryUsage, // Added for the test + getTelemetry: () => params.telemetry, // Add any other methods that are called on the config object setUserMemory: vi.fn(), setGeminiMdFileCount: vi.fn(), @@ -108,6 +109,72 @@ describe('loadCliConfig', () => { }); }); +describe('loadCliConfig telemetry', () => { + const originalArgv = process.argv; + const originalEnv = { ...process.env }; + + beforeEach(() => { + vi.resetAllMocks(); + vi.mocked(os.homedir).mockReturnValue(MOCK_HOME_DIR); + process.env.GEMINI_API_KEY = 'test-api-key'; + }); + + afterEach(() => { + process.argv = originalArgv; + process.env = originalEnv; + vi.restoreAllMocks(); + }); + + it('should set telemetry to false by default when no flag or setting is present', async () => { + process.argv = ['node', 'script.js']; + const settings: Settings = {}; + const result = await loadCliConfig(settings); + expect(result.config.getTelemetry()).toBe(false); + }); + + it('should set telemetry to true when --telemetry flag is present', async () => { + process.argv = ['node', 'script.js', '--telemetry']; + const settings: Settings = {}; + const result = await loadCliConfig(settings); + expect(result.config.getTelemetry()).toBe(true); + }); + + it('should set telemetry to false when --no-telemetry flag is present', async () => { + process.argv = ['node', 'script.js', '--no-telemetry']; + const settings: Settings = {}; + const result = await loadCliConfig(settings); + expect(result.config.getTelemetry()).toBe(false); + }); + + it('should use telemetry value from settings if CLI flag is not present (settings true)', async () => { + process.argv = ['node', 'script.js']; + const settings: Settings = { telemetry: true }; + const result = await loadCliConfig(settings); + expect(result.config.getTelemetry()).toBe(true); + }); + + it('should use telemetry value from settings if CLI flag is not present (settings false)', async () => { + process.argv = ['node', 'script.js']; + const settings: Settings = { telemetry: false }; + const result = await loadCliConfig(settings); + expect(result.config.getTelemetry()).toBe(false); + }); + + it('should prioritize --telemetry CLI flag (true) over settings (false)', async () => { + process.argv = ['node', 'script.js', '--telemetry']; + const settings: Settings = { telemetry: false }; + const result = await loadCliConfig(settings); + expect(result.config.getTelemetry()).toBe(true); + }); + + it('should prioritize --no-telemetry CLI flag (false) over settings (true)', async () => { + process.argv = ['node', 'script.js', '--no-telemetry']; + const settings: Settings = { telemetry: true }; + const result = await loadCliConfig(settings); + expect(result.config.getTelemetry()).toBe(false); + }); +}); + describe('Hierarchical Memory Loading (config.ts) - Placeholder Suite', () => { beforeEach(() => { vi.resetAllMocks(); |
