diff --git a/src/core/diff/strategies/__tests__/search-replace.test.ts b/src/core/diff/strategies/__tests__/search-replace.test.ts index f84f3c9..c016618 100644 --- a/src/core/diff/strategies/__tests__/search-replace.test.ts +++ b/src/core/diff/strategies/__tests__/search-replace.test.ts @@ -1054,6 +1054,23 @@ function sum(a, b) { expect(result.content).toBe('function sum(a, b) {\n return a + b + 1;\n}') } }) + + it('should not exact match empty lines', () => { + const originalContent = 'function sum(a, b) {\n\n return a + b;\n}' + const diffContent = `test.ts +<<<<<<< SEARCH +function sum(a, b) { +======= +import { a } from "a"; +function sum(a, b) { +>>>>>>> REPLACE` + + const result = strategy.applyDiff(originalContent, diffContent) + expect(result.success).toBe(true) + if (result.success) { + expect(result.content).toBe('import { a } from "a";\nfunction sum(a, b) {\n\n return a + b;\n}') + } + }) }) describe('line-constrained search', () => { diff --git a/src/core/diff/strategies/search-replace.ts b/src/core/diff/strategies/search-replace.ts index 4525ff6..4681351 100644 --- a/src/core/diff/strategies/search-replace.ts +++ b/src/core/diff/strategies/search-replace.ts @@ -33,7 +33,7 @@ function levenshteinDistance(a: string, b: string): number { } function getSimilarity(original: string, search: string): number { - if (original === '' || search === '') { + if (search === '') { return 1; }