feat(edit): Prevent no-op edits (#3520)
This commit is contained in:
parent
1969d805f2
commit
b4d00ab4fb
|
@ -608,6 +608,19 @@ describe('EditTool', () => {
|
||||||
/User modified the `new_string` content/,
|
/User modified the `new_string` content/,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return error if old_string and new_string are identical', async () => {
|
||||||
|
const initialContent = 'This is some identical text.';
|
||||||
|
fs.writeFileSync(filePath, initialContent, 'utf8');
|
||||||
|
const params: EditToolParams = {
|
||||||
|
file_path: filePath,
|
||||||
|
old_string: 'identical',
|
||||||
|
new_string: 'identical',
|
||||||
|
};
|
||||||
|
const result = await tool.execute(params, new AbortController().signal);
|
||||||
|
expect(result.llmContent).toMatch(/No changes to apply/);
|
||||||
|
expect(result.returnDisplay).toMatch(/No changes to apply/);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getDescription', () => {
|
describe('getDescription', () => {
|
||||||
|
|
|
@ -246,6 +246,11 @@ Expectation for required parameters:
|
||||||
display: `Failed to edit, expected ${expectedReplacements} ${occurenceTerm} but found ${occurrences}.`,
|
display: `Failed to edit, expected ${expectedReplacements} ${occurenceTerm} but found ${occurrences}.`,
|
||||||
raw: `Failed to edit, Expected ${expectedReplacements} ${occurenceTerm} but found ${occurrences} for old_string in file: ${params.file_path}`,
|
raw: `Failed to edit, Expected ${expectedReplacements} ${occurenceTerm} but found ${occurrences} for old_string in file: ${params.file_path}`,
|
||||||
};
|
};
|
||||||
|
} else if (finalOldString === finalNewString) {
|
||||||
|
error = {
|
||||||
|
display: `No changes to apply. The old_string and new_string are identical.`,
|
||||||
|
raw: `No changes to apply. The old_string and new_string are identical in file: ${params.file_path}`,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Should not happen if fileExists and no exception was thrown, but defensively:
|
// Should not happen if fileExists and no exception was thrown, but defensively:
|
||||||
|
|
Loading…
Reference in New Issue