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)
|
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", () => {
|
it("ignores trailing whitespace differences", () => {
|
||||||
//#given
|
//#given
|
||||||
const content1 = "function hello() {"
|
const content1 = "function hello() {"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export function computeLineHash(lineNumber: number, content: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function computeLegacyLineHash(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 {
|
export function formatHashLine(lineNumber: number, content: string): string {
|
||||||
|
|||||||
@@ -125,6 +125,15 @@ describe("validateLineRef", () => {
|
|||||||
expect(() => validateLineRef(lines, `1#${legacyHash}`)).not.toThrow()
|
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", () => {
|
it("shows >>> mismatch context in batched validation", () => {
|
||||||
//#given
|
//#given
|
||||||
const lines = ["one", "two", "three", "four"]
|
const lines = ["one", "two", "three", "four"]
|
||||||
|
|||||||
Reference in New Issue
Block a user