mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-18 10:33:15 +00:00
33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { stream } from "./markdown-stream"
|
|
|
|
describe("markdown stream", () => {
|
|
test("heals incomplete emphasis while streaming", () => {
|
|
expect(stream("hello **world", true)).toEqual([{ raw: "hello **world", src: "hello **world**", mode: "live" }])
|
|
expect(stream("say `code", true)).toEqual([{ raw: "say `code", src: "say `code`", mode: "live" }])
|
|
})
|
|
|
|
test("keeps incomplete links non-clickable until they finish", () => {
|
|
expect(stream("see [docs](https://example.com/gu", true)).toEqual([
|
|
{ raw: "see [docs](https://example.com/gu", src: "see docs", mode: "live" },
|
|
])
|
|
})
|
|
|
|
test("splits an unfinished trailing code fence from stable content", () => {
|
|
expect(stream("before\n\n```ts\nconst x = 1", true)).toEqual([
|
|
{ raw: "before\n\n", src: "before\n\n", mode: "live" },
|
|
{ raw: "```ts\nconst x = 1", src: "```ts\nconst x = 1", mode: "live" },
|
|
])
|
|
})
|
|
|
|
test("keeps reference-style markdown as one block", () => {
|
|
expect(stream("[docs][1]\n\n[1]: https://example.com", true)).toEqual([
|
|
{
|
|
raw: "[docs][1]\n\n[1]: https://example.com",
|
|
src: "[docs][1]\n\n[1]: https://example.com",
|
|
mode: "live",
|
|
},
|
|
])
|
|
})
|
|
})
|