cloudaxe-opencode/packages/ui/src/context/marked-parser.test.ts

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')
})