import { describe, expect, test } from 'vitest' import { parse } from './markdown.js' describe('markdown parser', () => { test('parse converts code blocks', async () => { const markdown = ` # Hello \`\`\`javascript const x = 42 console.log(x) \`\`\` ` const result = await parse(markdown) expect(result).toContain('
')
expect(result).toContain('console')
expect(result).toContain('42')
})
test('parse supports GraphQL syntax', async () => {
const markdown = `
\`\`\`graphql
type Query {
user(id: ID!): User
}
\`\`\`
`
const result = await parse(markdown)
expect(result).toContain('')
expect(result).toContain('type Query')
expect(result).toContain('ID!')
expect(result).toContain('User')
})
test('parse handles inline code', async () => {
const markdown = 'This is `inline code` in a sentence.'
const result = await parse(markdown)
expect(result).toContain('inline code')
})
test('parse supports GitHub Flavored Markdown', async () => {
const markdown = `
| Column 1 | Column 2 |
|----------|----------|
| Cell 1 | Cell 2 |
- [x] Task 1
- [ ] Task 2
`
const result = await parse(markdown)
expect(result).toContain('')
expect(result).toContain(' {
const markdown = `
\`\`\`
plain text without language
\`\`\`
`
const result = await parse(markdown)
expect(result).toContain(' {
const markdown = `
\`\`\`javascript
const theme = "light"
\`\`\`
`
const result = await parse(markdown)
expect(result).toContain('')
expect(result).toContain('')
expect(result).toContain('const theme = "light"')
})
})