fix: ensure truncated result stays within maxLength limit
This commit is contained in:
parent
a0201e17b9
commit
f94ae2032c
@ -21,9 +21,9 @@ describe("truncateDescription", () => {
|
|||||||
const result = truncateDescription(description)
|
const result = truncateDescription(description)
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(result.length).toBe(123) // 120 + "..."
|
expect(result.length).toBe(120) // 117 chars + "..."
|
||||||
expect(result).toEndWith("...")
|
expect(result).toEndWith("...")
|
||||||
expect(result).toBe(description.slice(0, 120) + "...")
|
expect(result).toBe(description.slice(0, 117) + "...")
|
||||||
})
|
})
|
||||||
|
|
||||||
it("respects custom max length parameter", () => {
|
it("respects custom max length parameter", () => {
|
||||||
@ -35,9 +35,9 @@ describe("truncateDescription", () => {
|
|||||||
const result = truncateDescription(description, maxLength)
|
const result = truncateDescription(description, maxLength)
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(result.length).toBe(53) // 50 + "..."
|
expect(result.length).toBe(50) // 47 chars + "..."
|
||||||
expect(result).toEndWith("...")
|
expect(result).toEndWith("...")
|
||||||
expect(result).toBe(description.slice(0, 50) + "...")
|
expect(result).toBe(description.slice(0, 47) + "...")
|
||||||
})
|
})
|
||||||
|
|
||||||
it("handles empty string", () => {
|
it("handles empty string", () => {
|
||||||
@ -71,7 +71,7 @@ describe("truncateDescription", () => {
|
|||||||
const result = truncateDescription(description)
|
const result = truncateDescription(description)
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(result.length).toBe(123) // 120 + "..."
|
expect(result.length).toBe(120)
|
||||||
expect(result).toContain("First sentence. Second sentence.")
|
expect(result).toContain("First sentence. Second sentence.")
|
||||||
expect(result).toEndWith("...")
|
expect(result).toEndWith("...")
|
||||||
})
|
})
|
||||||
@ -84,7 +84,7 @@ describe("truncateDescription", () => {
|
|||||||
const result = truncateDescription(description)
|
const result = truncateDescription(description)
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(result.length).toBe(123) // 120 + "..."
|
expect(result.length).toBe(120)
|
||||||
expect(result).toStartWith("Check out https://example.com")
|
expect(result).toStartWith("Check out https://example.com")
|
||||||
expect(result).toEndWith("...")
|
expect(result).toEndWith("...")
|
||||||
})
|
})
|
||||||
@ -97,7 +97,7 @@ describe("truncateDescription", () => {
|
|||||||
const result = truncateDescription(description)
|
const result = truncateDescription(description)
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(result.length).toBe(123) // 120 + "..."
|
expect(result.length).toBe(120)
|
||||||
expect(result).toStartWith("Version 1.2.3")
|
expect(result).toStartWith("Version 1.2.3")
|
||||||
expect(result).toEndWith("...")
|
expect(result).toEndWith("...")
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,11 +1,3 @@
|
|||||||
/**
|
|
||||||
* Truncates a description string to a maximum character length.
|
|
||||||
* If truncated, appends "..." to indicate continuation.
|
|
||||||
*
|
|
||||||
* @param description - The description string to truncate
|
|
||||||
* @param maxLength - Maximum character length (default: 120)
|
|
||||||
* @returns Truncated description with "..." appended if it was truncated
|
|
||||||
*/
|
|
||||||
export function truncateDescription(description: string, maxLength: number = 120): string {
|
export function truncateDescription(description: string, maxLength: number = 120): string {
|
||||||
if (!description) {
|
if (!description) {
|
||||||
return description
|
return description
|
||||||
@ -15,5 +7,5 @@ export function truncateDescription(description: string, maxLength: number = 120
|
|||||||
return description
|
return description
|
||||||
}
|
}
|
||||||
|
|
||||||
return description.slice(0, maxLength) + "..."
|
return description.slice(0, maxLength - 3) + "..."
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user