fix(hashline): restore v3.11.2 legacy hash computation for backward compatibility
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-openagent)
This commit is contained in:
@@ -72,6 +72,19 @@ describe("computeLineHash", () => {
|
||||
expect(hash1).toBe(hash2)
|
||||
})
|
||||
|
||||
it("preserves legacy hashes for internal whitespace variants", () => {
|
||||
//#given
|
||||
const content1 = "if (a && b) {"
|
||||
const content2 = "if(a&&b){"
|
||||
|
||||
//#when
|
||||
const hash1 = computeLegacyLineHash(1, content1)
|
||||
const hash2 = computeLegacyLineHash(1, content2)
|
||||
|
||||
//#then
|
||||
expect(hash1).toBe(hash2)
|
||||
})
|
||||
|
||||
it("ignores trailing whitespace differences", () => {
|
||||
//#given
|
||||
const content1 = "function hello() {"
|
||||
|
||||
@@ -16,7 +16,7 @@ export function computeLineHash(lineNumber: number, content: string): string {
|
||||
}
|
||||
|
||||
export function computeLegacyLineHash(lineNumber: number, content: string): string {
|
||||
return computeNormalizedLineHash(lineNumber, content.replace(/\r/g, "").trim())
|
||||
return computeNormalizedLineHash(lineNumber, content.replace(/\r/g, "").replace(/\s+/g, ""))
|
||||
}
|
||||
|
||||
export function formatHashLine(lineNumber: number, content: string): string {
|
||||
|
||||
@@ -125,6 +125,15 @@ describe("validateLineRef", () => {
|
||||
expect(() => validateLineRef(lines, `1#${legacyHash}`)).not.toThrow()
|
||||
})
|
||||
|
||||
it("accepts legacy hashes for internal whitespace variants", () => {
|
||||
//#given
|
||||
const lines = ["if (a && b) {"]
|
||||
const legacyHash = computeLegacyLineHash(1, "if(a&&b){")
|
||||
|
||||
//#when / #then
|
||||
expect(() => validateLineRef(lines, `1#${legacyHash}`)).not.toThrow()
|
||||
})
|
||||
|
||||
it("shows >>> mismatch context in batched validation", () => {
|
||||
//#given
|
||||
const lines = ["one", "two", "three", "four"]
|
||||
|
||||
Reference in New Issue
Block a user