fix file extension in "modify flow" temp files (#2478)

This commit is contained in:
Leo 2025-06-28 22:51:03 +01:00 committed by GitHub
parent 601d9ba36d
commit 5d3a64d747
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 6 deletions

View File

@ -326,7 +326,7 @@ describe('modifyWithEditor', () => {
consoleErrorSpy.mockRestore(); consoleErrorSpy.mockRestore();
}); });
it('should create temp files with correct naming', async () => { it('should create temp files with correct naming with extension', async () => {
const testFilePath = path.join(tempDir, 'subfolder', 'test-file.txt'); const testFilePath = path.join(tempDir, 'subfolder', 'test-file.txt');
mockModifyContext.getFilePath = vi.fn().mockReturnValue(testFilePath); mockModifyContext.getFilePath = vi.fn().mockReturnValue(testFilePath);
@ -343,8 +343,31 @@ describe('modifyWithEditor', () => {
const oldFilePath = writeFileCalls[0][0]; const oldFilePath = writeFileCalls[0][0];
const newFilePath = writeFileCalls[1][0]; const newFilePath = writeFileCalls[1][0];
expect(oldFilePath).toMatch(/gemini-cli-modify-test-file\.txt-old-\d+$/); expect(oldFilePath).toMatch(/gemini-cli-modify-test-file-old-\d+\.txt$/);
expect(newFilePath).toMatch(/gemini-cli-modify-test-file\.txt-new-\d+$/); expect(newFilePath).toMatch(/gemini-cli-modify-test-file-new-\d+\.txt$/);
expect(oldFilePath).toContain(`${tempDir}/gemini-cli-tool-modify-diffs/`);
expect(newFilePath).toContain(`${tempDir}/gemini-cli-tool-modify-diffs/`);
});
it('should create temp files with correct naming without extension', async () => {
const testFilePath = path.join(tempDir, 'subfolder', 'test-file');
mockModifyContext.getFilePath = vi.fn().mockReturnValue(testFilePath);
await modifyWithEditor(
mockParams,
mockModifyContext,
'vscode' as EditorType,
abortSignal,
);
const writeFileCalls = (fs.writeFileSync as Mock).mock.calls;
expect(writeFileCalls).toHaveLength(2);
const oldFilePath = writeFileCalls[0][0];
const newFilePath = writeFileCalls[1][0];
expect(oldFilePath).toMatch(/gemini-cli-modify-test-file-old-\d+$/);
expect(newFilePath).toMatch(/gemini-cli-modify-test-file-new-\d+$/);
expect(oldFilePath).toContain(`${tempDir}/gemini-cli-tool-modify-diffs/`); expect(oldFilePath).toContain(`${tempDir}/gemini-cli-tool-modify-diffs/`);
expect(newFilePath).toContain(`${tempDir}/gemini-cli-tool-modify-diffs/`); expect(newFilePath).toContain(`${tempDir}/gemini-cli-tool-modify-diffs/`);
}); });

View File

@ -58,15 +58,16 @@ function createTempFilesForModify(
fs.mkdirSync(diffDir, { recursive: true }); fs.mkdirSync(diffDir, { recursive: true });
} }
const fileName = path.basename(file_path); const ext = path.extname(file_path);
const fileName = path.basename(file_path, ext);
const timestamp = Date.now(); const timestamp = Date.now();
const tempOldPath = path.join( const tempOldPath = path.join(
diffDir, diffDir,
`gemini-cli-modify-${fileName}-old-${timestamp}`, `gemini-cli-modify-${fileName}-old-${timestamp}${ext}`,
); );
const tempNewPath = path.join( const tempNewPath = path.join(
diffDir, diffDir,
`gemini-cli-modify-${fileName}-new-${timestamp}`, `gemini-cli-modify-${fileName}-new-${timestamp}${ext}`,
); );
fs.writeFileSync(tempOldPath, currentContent, 'utf8'); fs.writeFileSync(tempOldPath, currentContent, 'utf8');