summaryrefslogtreecommitdiff
path: root/packages/core/src/tools
diff options
context:
space:
mode:
authorN. Taylor Mullen <[email protected]>2025-06-02 22:30:52 -0700
committerGitHub <[email protected]>2025-06-03 05:30:52 +0000
commit8ab74ef1bb4bd1c475596088d9d3b52e0a9c5ca7 (patch)
treeb5847fc0cf03d491a3bb0bb18f8cbbf002d096ea /packages/core/src/tools
parentcf84f1af6854a99975903192b5770c790521be55 (diff)
Refactor: Use config.getGeminiClient() for GeminiClient instantiation (#715)
Diffstat (limited to 'packages/core/src/tools')
-rw-r--r--packages/core/src/tools/edit.test.ts8
-rw-r--r--packages/core/src/tools/edit.ts2
-rw-r--r--packages/core/src/tools/write-file.test.ts6
-rw-r--r--packages/core/src/tools/write-file.ts2
4 files changed, 16 insertions, 2 deletions
diff --git a/packages/core/src/tools/edit.test.ts b/packages/core/src/tools/edit.test.ts
index 3b93708a..87ae3b6f 100644
--- a/packages/core/src/tools/edit.test.ts
+++ b/packages/core/src/tools/edit.test.ts
@@ -39,7 +39,15 @@ describe('EditTool', () => {
rootDir = path.join(tempDir, 'root');
fs.mkdirSync(rootDir);
+ // The client instance that EditTool will use
+ const mockClientInstanceWithGenerateJson = {
+ generateJson: mockGenerateJson, // mockGenerateJson is already defined and hoisted
+ };
+
mockConfig = {
+ getGeminiClient: vi
+ .fn()
+ .mockReturnValue(mockClientInstanceWithGenerateJson),
getTargetDir: () => rootDir,
getApprovalMode: vi.fn(() => false),
setApprovalMode: vi.fn(),
diff --git a/packages/core/src/tools/edit.ts b/packages/core/src/tools/edit.ts
index b2f648f8..4a337faa 100644
--- a/packages/core/src/tools/edit.ts
+++ b/packages/core/src/tools/edit.ts
@@ -114,7 +114,7 @@ Expectation for required parameters:
);
this.config = config;
this.rootDirectory = path.resolve(this.config.getTargetDir());
- this.client = new GeminiClient(this.config);
+ this.client = config.getGeminiClient();
}
/**
diff --git a/packages/core/src/tools/write-file.test.ts b/packages/core/src/tools/write-file.test.ts
index c94edfd1..4646f30a 100644
--- a/packages/core/src/tools/write-file.test.ts
+++ b/packages/core/src/tools/write-file.test.ts
@@ -53,6 +53,7 @@ const mockConfigInternal = {
getTargetDir: () => rootDir,
getApprovalMode: vi.fn(() => ApprovalMode.DEFAULT),
setApprovalMode: vi.fn(),
+ getGeminiClient: vi.fn(), // Initialize as a plain mock function
getApiKey: () => 'test-key',
getModel: () => 'test-model',
getSandbox: () => false,
@@ -97,6 +98,11 @@ describe('WriteFileTool', () => {
) as Mocked<GeminiClient>;
vi.mocked(GeminiClient).mockImplementation(() => mockGeminiClientInstance);
+ // Now that mockGeminiClientInstance is initialized, set the mock implementation for getGeminiClient
+ mockConfigInternal.getGeminiClient.mockReturnValue(
+ mockGeminiClientInstance,
+ );
+
tool = new WriteFileTool(mockConfig);
// Reset mocks before each test
diff --git a/packages/core/src/tools/write-file.ts b/packages/core/src/tools/write-file.ts
index 2e04a10a..57bfe8ed 100644
--- a/packages/core/src/tools/write-file.ts
+++ b/packages/core/src/tools/write-file.ts
@@ -77,7 +77,7 @@ export class WriteFileTool extends BaseTool<WriteFileToolParams, ToolResult> {
},
);
- this.client = new GeminiClient(this.config);
+ this.client = this.config.getGeminiClient();
}
private isWithinRoot(pathToCheck: string): boolean {