import { renderMarkdown } from '../dist/index.js'; import chai from 'chai'; describe('expressions', () => { it('should be able to serialize bare expression', async () => { const { code } = await renderMarkdown(`{a}`, {}); chai.expect(code).to.equal(`{a}`); }); it('should be able to serialize expression inside component', async () => { const { code } = await renderMarkdown(`{a}`, {}); chai.expect(code).to.equal(`\n{a}\n`); }); it('should be able to serialize expression inside markdown', async () => { const { code } = await renderMarkdown(`# {frontmatter.title}`, {}); chai .expect(code) .to.equal(`

{frontmatter.title}

`); }); it('should be able to serialize complex expression inside markdown', async () => { const { code } = await renderMarkdown(`# Hello {frontmatter.name}`, {}); chai .expect(code) .to.equal(`

Hello {frontmatter.name}

`); }); it('should be able to serialize complex expression with markup inside markdown', async () => { const { code } = await renderMarkdown(`# Hello {frontmatter.name}`, {}); chai .expect(code) .to.equal( `

Hello {frontmatter.name}

` ); }); it('should be able to avoid evaluating JSX-like expressions in an inline code & generate a slug for id', async () => { const { code } = await renderMarkdown(`# \`{frontmatter.title}\``, {}); chai .expect(code) .to.equal('

{frontmatter.title}

'); }); it('should be able to avoid evaluating JSX-like expressions in inline codes', async () => { const { code } = await renderMarkdown(`# \`{ foo }\` is a shorthand for \`{ foo: foo }\``, {}); chai .expect(code) .to.equal( '

{ foo } is a shorthand for { foo: foo }

' ); }); it('should be able to avoid evaluating JSX-like expressions & escape HTML tag characters in inline codes', async () => { const { code } = await renderMarkdown( `###### \`{}\` is equivalent to \`Record\` (at TypeScript v{frontmatter.version})`, {} ); chai .expect(code) .to.equal( `
{} is equivalent to Record<never, never> (at TypeScript v{frontmatter.version})
` ); }); it('should be able to serialize function expression', async () => { const { code } = await renderMarkdown( `{frontmatter.list.map(item =>

{item}

)}`, {} ); chai.expect(code).to.equal(`{frontmatter.list.map(item =>

{item}

)}`); }); });