diff options
author | 2023-01-09 10:23:21 +0100 | |
---|---|---|
committer | 2023-01-09 10:23:21 +0100 | |
commit | 16107b6a10514ef1b563e585ec9add4b14f42b94 (patch) | |
tree | 7aeedf42016e63b81f58dd24050cc83eae7a3dd8 /packages/markdown/remark/test/expressions.test.js | |
parent | 54076a41ebf5da421370a130b97a6406f094042e (diff) | |
download | astro-16107b6a10514ef1b563e585ec9add4b14f42b94.tar.gz astro-16107b6a10514ef1b563e585ec9add4b14f42b94.tar.zst astro-16107b6a10514ef1b563e585ec9add4b14f42b94.zip |
Remove Astro-flavored Markdown from `@astrojs/markdown-remark` (#5785)
Diffstat (limited to 'packages/markdown/remark/test/expressions.test.js')
-rw-r--r-- | packages/markdown/remark/test/expressions.test.js | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/packages/markdown/remark/test/expressions.test.js b/packages/markdown/remark/test/expressions.test.js deleted file mode 100644 index b2cb1a73d..000000000 --- a/packages/markdown/remark/test/expressions.test.js +++ /dev/null @@ -1,125 +0,0 @@ -import { renderMarkdown } from '../dist/index.js'; -import chai from 'chai'; - -describe('expressions', () => { - const renderAstroMd = (text, opts) => renderMarkdown(text, { isAstroFlavoredMd: true, ...opts }); - - it('should be able to serialize bare expression', async () => { - const { code } = await renderAstroMd(`{a}`, {}); - - chai.expect(code).to.equal(`{a}`); - }); - - it('should be able to serialize expression inside component', async () => { - const { code } = await renderAstroMd(`<Component>{a}</Component>`, {}); - - chai.expect(code).to.equal(`<Component>{a}</Component>`); - }); - - it('should be able to serialize expression inside markdown', async () => { - const { code } = await renderAstroMd(`# {frontmatter.title}`, {}); - - chai - .expect(code) - .to.equal(`<h1 id={$$slug(\`\${frontmatter.title}\`)}>{frontmatter.title}</h1>`); - }); - - it('should be able to serialize complex expression inside markdown', async () => { - const { code } = await renderAstroMd(`# Hello {frontmatter.name}`, {}); - - chai - .expect(code) - .to.equal(`<h1 id={$$slug(\`Hello \${frontmatter.name}\`)}>Hello {frontmatter.name}</h1>`); - }); - - it('should be able to serialize complex expression with markup inside markdown', async () => { - const { code } = await renderAstroMd(`# Hello <span>{frontmatter.name}</span>`, {}); - - chai - .expect(code) - .to.equal( - `<h1 id={$$slug(\`Hello \${frontmatter.name}\`)}>Hello <span>{frontmatter.name}</span></h1>` - ); - }); - - it('should be able to avoid evaluating JSX-like expressions in an inline code & generate a slug for id', async () => { - const { code } = await renderAstroMd(`# \`{frontmatter.title}\``, {}); - - chai - .expect(code) - .to.equal('<h1 id="frontmattertitle"><code is:raw>{frontmatter.title}</code></h1>'); - }); - - it('should be able to avoid evaluating JSX-like expressions in inline codes', async () => { - const { code } = await renderAstroMd(`# \`{ foo }\` is a shorthand for \`{ foo: foo }\``, {}); - - chai - .expect(code) - .to.equal( - '<h1 id="-foo--is-a-shorthand-for--foo-foo"><code is:raw>{ foo }</code> is a shorthand for <code is:raw>{ foo: foo }</code></h1>' - ); - }); - - it('should be able to avoid evaluating JSX-like expressions & escape HTML tag characters in inline codes', async () => { - const { code } = await renderAstroMd( - `###### \`{}\` is equivalent to \`Record<never, never>\` <small>(at TypeScript v{frontmatter.version})</small>`, - {} - ); - - chai - .expect(code) - .to.equal( - `<h6 id={$$slug(\`{} is equivalent to Record<never, never> (at TypeScript v\${frontmatter.version})\`)}><code is:raw>{}</code> is equivalent to <code is:raw>Record<never, never></code> <small>(at TypeScript v{frontmatter.version})</small></h6>` - ); - }); - - it('should be able to encode ampersand characters in code blocks', async () => { - const { code } = await renderAstroMd( - 'The ampersand in ` ` must be encoded in code blocks.', - {} - ); - - chai - .expect(code) - .to.equal( - '<p>The ampersand in <code is:raw>&nbsp;</code> must be encoded in code blocks.</p>' - ); - }); - - it('should be able to encode ampersand characters in fenced code blocks', async () => { - const { code } = await renderAstroMd(` - \`\`\`md - The ampersand in \` \` must be encoded in code blocks. - \`\`\` - `); - - chai.expect(code).to.match(/^<pre is:raw.*<code>.*The ampersand in `&nbsp;`/); - }); - - it('should be able to serialize function expression', async () => { - const { code } = await renderAstroMd( - `{frontmatter.list.map(item => <p id={item}>{item}</p>)}`, - {} - ); - - chai.expect(code).to.equal(`{frontmatter.list.map(item => <p id={item}>{item}</p>)}`); - }); - - it('should unwrap HTML comments in inline code blocks', async () => { - const { code } = await renderAstroMd(`\`{/*<!-- HTML comment -->*/}\``); - - chai.expect(code).to.equal('<p><code is:raw><!-- HTML comment --></code></p>'); - }); - - it('should unwrap HTML comments in code fences', async () => { - const { code } = await renderAstroMd( - ` - \`\`\` - <!-- HTML comment --> - \`\`\` - ` - ); - - chai.expect(code).to.match(/(?<!{\/\*)<!-- HTML comment -->(?!\*\/})/); - }); -}); |