mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
test: Cover math block table-cell serialization
Add a test mirroring the code fence case to guard the MathBlock half of the table-cell <br> encoding and pipe/backslash escaping. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -694,6 +694,62 @@ This is a [test paragraph](https://example.net)`,
|
|||||||
expect(result).not.toMatch(/```abap\n/);
|
expect(result).not.toMatch(/```abap\n/);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should export math blocks inside table cells on a single line", async () => {
|
||||||
|
const document = await buildDocument({
|
||||||
|
content: {
|
||||||
|
type: "doc",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "table",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "tr",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "th",
|
||||||
|
attrs: { colspan: 1, rowspan: 1 },
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "paragraph",
|
||||||
|
content: [{ type: "text", text: "Header" }],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "tr",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "td",
|
||||||
|
attrs: { colspan: 1, rowspan: 1 },
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "math_block",
|
||||||
|
content: [
|
||||||
|
{ type: "text", text: "a | b\n\\frac{1}{2}" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const result = await DocumentHelper.toMarkdown(document, {
|
||||||
|
includeTitle: false,
|
||||||
|
});
|
||||||
|
// Math blocks inside tables should use <br> tags rather than literal
|
||||||
|
// newlines that would break the table row structure, with pipes and
|
||||||
|
// backslashes escaped so the content cannot break out of the column.
|
||||||
|
expect(result).toContain("$$<br>a \\| b<br>\\\\frac{1}{2}<br>$$");
|
||||||
|
// The block content must not introduce raw newlines inside the table.
|
||||||
|
expect(result).not.toMatch(/\$\$\n/);
|
||||||
|
});
|
||||||
|
|
||||||
it("should include collection title by default", async () => {
|
it("should include collection title by default", async () => {
|
||||||
const collection = await buildCollection({
|
const collection = await buildCollection({
|
||||||
name: "Test Collection",
|
name: "Test Collection",
|
||||||
|
|||||||
Reference in New Issue
Block a user