19 lines
868 B
TypeScript
19 lines
868 B
TypeScript
import { expect, test } from "bun:test"
|
|
import { createMarkdownParser } from "./marked-parser"
|
|
|
|
const parser = createMarkdownParser((code, language) => `<pre data-language="${language}">${code}</pre>`)
|
|
|
|
test("renders links with application attributes", async () => {
|
|
expect(await parser.parse("[OpenCode](https://opencode.ai)")).toBe(
|
|
'<p><a href="https://opencode.ai" class="external-link" target="_blank" rel="noopener noreferrer">OpenCode</a></p>\n',
|
|
)
|
|
})
|
|
|
|
test("renders inline and block math", async () => {
|
|
expect(await parser.parse("\\(x^2\\)")).toContain('<span class="katex">')
|
|
expect(await parser.parse("$$\nx^2\n$$\n")).toContain('<span class="katex-display">')
|
|
})
|
|
|
|
test("uses the configured code highlighter", async () => {
|
|
expect(await parser.parse("```ts\nconst value = 1\n```\n")).toBe('<pre data-language="ts">const value = 1</pre>\n')
|
|
})
|