refactor(test): use matrix for testing import/export

pull/1393/head
Elian Doran 2025-03-11 21:11:23 +07:00
parent 8c71e6aa90
commit b278bc8ce4
No known key found for this signature in database
2 changed files with 33 additions and 26 deletions

@ -7,22 +7,22 @@ describe("Markdown export", () => {
it("exports correct language tag for known languages", () => { it("exports correct language tag for known languages", () => {
const conversionTable = { const conversionTable = {
"language-text-x-nginx-conf": "nginx", "language-text-x-nginx-conf": "nginx",
"language-x-diff": "diff", "language-text-x-diff": "diff",
"language-application-javascript-env-frontend": "javascript", "language-application-javascript-env-frontend": "javascript",
"language-application-javascript-env-backend": "javascript" "language-application-javascript-env-backend": "javascript"
}; };
for (const [ a, b ] of Object.entries(conversionTable)) { for (const [ input, output ] of Object.entries(conversionTable)) {
const html = trimIndentation`\ const html = trimIndentation`\
<p>A diff:</p> <p>A diff:</p>
<pre><code class="${a}">Hello <pre><code class="${input}">Hello
-world -world
+worldy +worldy
</code></pre>`; </code></pre>`;
const expected = trimIndentation`\ const expected = trimIndentation`\
A diff: A diff:
\`\`\`${b} \`\`\`${output}
Hello Hello
-world -world
+worldy +worldy

@ -3,32 +3,23 @@ import { trimIndentation } from "../../../spec/support/utils.js";
import markdownService from "./markdown.js"; import markdownService from "./markdown.js";
describe("markdown", () => { describe("markdown", () => {
it("converts h1 heading", () => {
const result = markdownService.renderToHtml(trimIndentation`\
# Hello
## world
# another one
Hello, world
`, "title");
expect(result).toBe(trimIndentation`\
<h2>Hello</h2>
<h2>world</h2>
<h2>another one</h2>
<p>Hello, world</p>
`);
});
it("rewrites language of known language tags", () => { it("rewrites language of known language tags", () => {
const conversionTable = {
"nginx": "language-text-x-nginx-conf",
"diff": "language-text-x-diff",
"javascript": "language-application-javascript-env-backend",
"css": "language-text-css"
};
for (const [ input, output ] of Object.entries(conversionTable)) {
const result = markdownService.renderToHtml(trimIndentation`\ const result = markdownService.renderToHtml(trimIndentation`\
\`\`\`javascript \`\`\`${input}
Hi Hi
\`\`\` \`\`\`
\`\`\`css
there
\`\`\`
`, "title"); `, "title");
expect(result).toBe(trimIndentation`\ expect(result).toBe(trimIndentation`\
<pre><code class="language-application-javascript-env-backend">Hi</code></pre><pre><code class="language-text-css">there</code></pre>`); <pre><code class="${output}">Hi</code></pre>`);
}
}); });
it("rewrites language of unknown language tags", () => { it("rewrites language of unknown language tags", () => {
@ -41,6 +32,22 @@ describe("markdown", () => {
<pre><code class="language-text-x-trilium-auto">Hi</code></pre>`); <pre><code class="language-text-x-trilium-auto">Hi</code></pre>`);
}); });
it("converts h1 heading", () => {
const result = markdownService.renderToHtml(trimIndentation`\
# Hello
## world
# another one
Hello, world
`, "title");
expect(result).toBe(trimIndentation`\
<h2>Hello</h2>
<h2>world</h2>
<h2>another one</h2>
<p>Hello, world</p>
`);
});
it("parses duplicate title with escape correctly", () => { it("parses duplicate title with escape correctly", () => {
const result = markdownService.renderToHtml(trimIndentation`\ const result = markdownService.renderToHtml(trimIndentation`\
# What's new # What's new