Eliminate createServerConfig() (#821)
This commit is contained in:
parent
10b52ac4e8
commit
d6cf4d5b0b
|
@ -34,7 +34,7 @@ vi.mock('@gemini-code/core', async () => {
|
|||
return {
|
||||
...actualServer,
|
||||
loadEnvironment: vi.fn(),
|
||||
createServerConfig: vi.fn((params) => ({
|
||||
Config: vi.fn((params) => ({
|
||||
// Mock the config object and its methods
|
||||
getApiKey: () => params.apiKey,
|
||||
getModel: () => params.model,
|
||||
|
|
|
@ -10,9 +10,7 @@ import process from 'node:process';
|
|||
import {
|
||||
Config,
|
||||
loadEnvironment,
|
||||
createServerConfig,
|
||||
loadServerHierarchicalMemory,
|
||||
ConfigParameters,
|
||||
setGeminiMdFilename as setServerGeminiMdFilename,
|
||||
getCurrentGeminiMdFilename,
|
||||
ApprovalMode,
|
||||
|
@ -175,7 +173,7 @@ export async function loadCliConfig(
|
|||
modelToUse = await getEffectiveModel(apiKeyForServer, modelToUse);
|
||||
}
|
||||
|
||||
const configParams: ConfigParameters = {
|
||||
return new Config({
|
||||
apiKey: apiKeyForServer,
|
||||
model: modelToUse,
|
||||
embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
|
||||
|
@ -206,7 +204,5 @@ export async function loadCliConfig(
|
|||
fileFilteringRespectGitIgnore: settings.fileFiltering?.respectGitIgnore,
|
||||
fileFilteringAllowBuildArtifacts:
|
||||
settings.fileFiltering?.allowBuildArtifacts,
|
||||
};
|
||||
|
||||
return createServerConfig(configParams);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
||||
import { Config, createServerConfig, ConfigParameters } from './config.js';
|
||||
import { Config, ConfigParameters } from './config.js';
|
||||
import * as path from 'path';
|
||||
import { setGeminiMdFilename as mockSetGeminiMdFilename } from '../tools/memoryTool.js';
|
||||
|
||||
|
@ -87,51 +87,6 @@ describe('Server Config (config.ts)', () => {
|
|||
expect(config.getUserMemory()).toBe('');
|
||||
});
|
||||
|
||||
it('createServerConfig should pass userMemory to Config constructor', () => {
|
||||
const config = createServerConfig(baseParams);
|
||||
|
||||
// Check the result of the factory function
|
||||
expect(config).toBeInstanceOf(Config);
|
||||
expect(config.getUserMemory()).toBe(USER_MEMORY);
|
||||
expect(config.getApiKey()).toBe(API_KEY);
|
||||
expect(config.getUserAgent()).toBe(USER_AGENT);
|
||||
});
|
||||
|
||||
it('createServerConfig should default userMemory if omitted', () => {
|
||||
const paramsWithoutMemory: ConfigParameters = { ...baseParams };
|
||||
delete paramsWithoutMemory.userMemory;
|
||||
const config = createServerConfig(paramsWithoutMemory);
|
||||
|
||||
expect(config).toBeInstanceOf(Config);
|
||||
expect(config.getUserMemory()).toBe(''); // Should default to empty string
|
||||
});
|
||||
|
||||
it('createServerConfig should resolve targetDir', () => {
|
||||
const relativeDir = './relative/path';
|
||||
const expectedResolvedDir = path.resolve(relativeDir);
|
||||
const paramsWithRelativeDir: ConfigParameters = {
|
||||
...baseParams,
|
||||
targetDir: relativeDir,
|
||||
};
|
||||
const config = createServerConfig(paramsWithRelativeDir);
|
||||
expect(config.getTargetDir()).toBe(expectedResolvedDir);
|
||||
});
|
||||
|
||||
it('createServerConfig should call setGeminiMdFilename with contextFileName if provided', () => {
|
||||
const contextFileName = 'CUSTOM_AGENTS.md';
|
||||
const paramsWithContextFile: ConfigParameters = {
|
||||
...baseParams,
|
||||
contextFileName,
|
||||
};
|
||||
createServerConfig(paramsWithContextFile);
|
||||
expect(mockSetGeminiMdFilename).toHaveBeenCalledWith(contextFileName);
|
||||
});
|
||||
|
||||
it('createServerConfig should not call setGeminiMdFilename if contextFileName is not provided', () => {
|
||||
createServerConfig(baseParams); // baseParams does not have contextFileName
|
||||
expect(mockSetGeminiMdFilename).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('Config constructor should call setGeminiMdFilename with contextFileName if provided', () => {
|
||||
const contextFileName = 'CUSTOM_AGENTS.md';
|
||||
const paramsWithContextFile: ConfigParameters = {
|
||||
|
@ -189,31 +144,6 @@ describe('Server Config (config.ts)', () => {
|
|||
expect(config.getTelemetryEnabled()).toBe(TELEMETRY);
|
||||
});
|
||||
|
||||
it('createServerConfig should pass telemetry to Config constructor when true', () => {
|
||||
const paramsWithTelemetry: ConfigParameters = {
|
||||
...baseParams,
|
||||
telemetry: true,
|
||||
};
|
||||
const config = createServerConfig(paramsWithTelemetry);
|
||||
expect(config.getTelemetryEnabled()).toBe(true);
|
||||
});
|
||||
|
||||
it('createServerConfig should pass telemetry to Config constructor when false', () => {
|
||||
const paramsWithTelemetry: ConfigParameters = {
|
||||
...baseParams,
|
||||
telemetry: false,
|
||||
};
|
||||
const config = createServerConfig(paramsWithTelemetry);
|
||||
expect(config.getTelemetryEnabled()).toBe(false);
|
||||
});
|
||||
|
||||
it('createServerConfig should default telemetry (to false via Config constructor) if omitted', () => {
|
||||
const paramsWithoutTelemetry: ConfigParameters = { ...baseParams };
|
||||
delete paramsWithoutTelemetry.telemetry;
|
||||
const config = createServerConfig(paramsWithoutTelemetry);
|
||||
expect(config.getTelemetryEnabled()).toBe(TELEMETRY);
|
||||
});
|
||||
|
||||
it('should have a getFileService method that returns FileDiscoveryService', async () => {
|
||||
const config = new Config(baseParams);
|
||||
const fileService = await config.getFileService();
|
||||
|
|
|
@ -126,7 +126,7 @@ export class Config {
|
|||
this.toolCallCommand = params.toolCallCommand;
|
||||
this.mcpServerCommand = params.mcpServerCommand;
|
||||
this.mcpServers = params.mcpServers;
|
||||
this.userAgent = params.userAgent;
|
||||
this.userAgent = params.userAgent ?? 'GeminiCLI/unknown';
|
||||
this.userMemory = params.userMemory ?? '';
|
||||
this.geminiMdFileCount = params.geminiMdFileCount ?? 0;
|
||||
this.approvalMode = params.approvalMode ?? ApprovalMode.DEFAULT;
|
||||
|
@ -329,14 +329,6 @@ export function loadEnvironment(): void {
|
|||
}
|
||||
}
|
||||
|
||||
export function createServerConfig(params: ConfigParameters): Config {
|
||||
return new Config({
|
||||
...params,
|
||||
targetDir: path.resolve(params.targetDir), // Ensure targetDir is resolved
|
||||
userAgent: params.userAgent ?? 'GeminiCLI/unknown', // Default user agent
|
||||
});
|
||||
}
|
||||
|
||||
export function createToolRegistry(config: Config): Promise<ToolRegistry> {
|
||||
const registry = new ToolRegistry(config);
|
||||
const targetDir = config.getTargetDir();
|
||||
|
|
Loading…
Reference in New Issue