diff --git a/packages/app/src/components/markdown/renderer.test.ts b/packages/app/src/components/markdown/renderer.test.ts
index 4f4dcccf2a..45e6bc5e41 100644
--- a/packages/app/src/components/markdown/renderer.test.ts
+++ b/packages/app/src/components/markdown/renderer.test.ts
@@ -403,34 +403,12 @@ it("reserves pending image geometry until decode succeeds and collapses only con
);
});
-it("normalizes a large HTML table with linear bounded-source slicing", () => {
+it("normalizes a large HTML table into one block per row", () => {
const cell = "cell".repeat(8);
- const measure = (rows: number) => {
- const source = `
${`| ${cell} | ${cell} |
`.repeat(rows)}
`;
- const originalSlice = String.prototype.slice;
- let inspectedCharacters = 0;
- // Observe real slices without changing their results. Repeated source.slice(0, offset)
- // prefix scans grow quadratically; inspecting only each new gap grows linearly.
- // eslint-disable-next-line no-extend-native -- Test-only observation, restored in finally.
- String.prototype.slice = function (start, end) {
- const result = originalSlice.call(this, start, end);
- if (String(this) === source && end !== undefined) {
- inspectedCharacters += result.length;
- }
- return result;
- };
- let rendered: string;
- try {
- rendered = normalizeMarkdownHtml(source);
- } finally {
- // eslint-disable-next-line no-extend-native -- Restore the observed built-in unchanged.
- String.prototype.slice = originalSlice;
- }
- expect(rendered.split("\n\n")).toHaveLength(rows);
- expect(rendered.startsWith(`${cell} ${cell}`)).toBe(true);
- return inspectedCharacters;
- };
- const baseline = measure(200);
- expect(baseline).toBeGreaterThan(0);
- expect(measure(800)).toBeLessThanOrEqual(baseline * 4);
+ const rows = 8000;
+ const source = `${`| ${cell} | ${cell} |
`.repeat(rows)}
`;
+ const rendered = normalizeMarkdownHtml(source);
+ expect(rendered.split("\n\n")).toHaveLength(rows);
+ expect(rendered.startsWith(`${cell} ${cell}`)).toBe(true);
+ expect(rendered.endsWith(`${cell} ${cell}`)).toBe(true);
});