diff options
Diffstat (limited to 'packages/markdown/remark/test/autolinking.test.js')
-rw-r--r-- | packages/markdown/remark/test/autolinking.test.js | 176 |
1 files changed, 96 insertions, 80 deletions
diff --git a/packages/markdown/remark/test/autolinking.test.js b/packages/markdown/remark/test/autolinking.test.js index 513d12ac6..61117bddc 100644 --- a/packages/markdown/remark/test/autolinking.test.js +++ b/packages/markdown/remark/test/autolinking.test.js @@ -2,91 +2,107 @@ import { renderMarkdown } from '../dist/index.js'; import chai from 'chai'; describe('autolinking', () => { - it('autolinks URLs starting with a protocol in plain text', async () => { - const { code } = await renderMarkdown(`See https://example.com for more.`, {}); - - chai - .expect(code.replace(/\n/g, '')) - .to.equal(`<p>See <a href="https://example.com">https://example.com</a> for more.</p>`); - }); - - it('autolinks URLs starting with "www." in plain text', async () => { - const { code } = await renderMarkdown(`See www.example.com for more.`, {}); - - chai - .expect(code.trim()) - .to.equal(`<p>See <a href="http://www.example.com">www.example.com</a> for more.</p>`); - }); - - it('does not autolink URLs in code blocks', async () => { - const { code } = await renderMarkdown( - 'See `https://example.com` or `www.example.com` for more.', - {} - ); - - chai - .expect(code.trim()) - .to.equal( - `<p>See <code is:raw>https://example.com</code> or ` + - `<code is:raw>www.example.com</code> for more.</p>` + describe('plain md', () => { + it('autolinks URLs starting with a protocol in plain text', async () => { + const { code } = await renderMarkdown(`See https://example.com for more.`, {}); + + chai + .expect(code.replace(/\n/g, '')) + .to.equal(`<p>See <a href="https://example.com">https://example.com</a> for more.</p>`); + }); + + it('autolinks URLs starting with "www." in plain text', async () => { + const { code } = await renderMarkdown(`See www.example.com for more.`, {}); + + chai + .expect(code.trim()) + .to.equal(`<p>See <a href="http://www.example.com">www.example.com</a> for more.</p>`); + }); + + it('does not autolink URLs in code blocks', async () => { + const { code } = await renderMarkdown( + 'See `https://example.com` or `www.example.com` for more.', + {} ); + + chai + .expect(code.trim()) + .to.equal( + `<p>See <code>https://example.com</code> or ` + + `<code>www.example.com</code> for more.</p>` + ); + }); }); - it('does not autolink URLs in fenced code blocks', async () => { - const { code } = await renderMarkdown( - 'Example:\n```\nGo to https://example.com or www.example.com now.\n```', - {} - ); - - chai - .expect(code) - .to.contain(`<pre is:raw`) - .to.contain(`Go to https://example.com or www.example.com now.`); - }); - - it('does not autolink URLs starting with a protocol when nested inside links', async () => { - const { code } = await renderMarkdown( - `See [http://example.com](http://example.com) or ` + - `<a test href="https://example.com">https://example.com</a>`, - {} - ); + describe('astro-flavored md', () => { + const renderAstroMd = text => renderMarkdown(text, { isAstroFlavoredMd: true }); - chai - .expect(code.replace(/\n/g, '')) - .to.equal( - `<p>See <a href="http://example.com">http://example.com</a> or ` + - `<a test href="https://example.com">https://example.com</a></p>` + it('does not autolink URLs in code blocks', async () => { + const { code } = await renderAstroMd( + 'See `https://example.com` or `www.example.com` for more.', + {} ); - }); - - it('does not autolink URLs starting with "www." when nested inside links', async () => { - const { code } = await renderMarkdown( - `See [www.example.com](https://www.example.com) or ` + - `<a test href="https://www.example.com">www.example.com</a>`, - {} - ); - - chai - .expect(code.replace(/\n/g, '')) - .to.equal( - `<p>See <a href="https://www.example.com">www.example.com</a> or ` + - `<a test href="https://www.example.com">www.example.com</a></p>` + + chai + .expect(code.trim()) + .to.equal( + `<p>See <code is:raw>https://example.com</code> or ` + + `<code is:raw>www.example.com</code> for more.</p>` + ); + }); + + it('does not autolink URLs in fenced code blocks', async () => { + const { code } = await renderAstroMd( + 'Example:\n```\nGo to https://example.com or www.example.com now.\n```' ); - }); - - it('does not autolink URLs when nested several layers deep inside links', async () => { - const { code } = await renderMarkdown( - `<a href="https://www.example.com">**Visit _our www.example.com or ` + - `http://localhost pages_ for more!**</a>`, - {} - ); - - chai - .expect(code.replace(/\n/g, '')) - .to.equal( - `<a href="https://www.example.com"><strong>` + - `Visit <em>our www.example.com or http://localhost pages</em> for more!` + - `</strong></a>` + + chai + .expect(code) + .to.contain(`<pre is:raw`) + .to.contain(`Go to https://example.com or www.example.com now.`); + }); + + it('does not autolink URLs starting with a protocol when nested inside links', async () => { + const { code } = await renderAstroMd( + `See [http://example.com](http://example.com) or ` + + `<a test href="https://example.com">https://example.com</a>` ); - }); + + chai + .expect(code.replace(/\n/g, '')) + .to.equal( + `<p>See <a href="http://example.com">http://example.com</a> or ` + + `<a test href="https://example.com">https://example.com</a></p>` + ); + }); + + it('does not autolink URLs starting with "www." when nested inside links', async () => { + const { code } = await renderAstroMd( + `See [www.example.com](https://www.example.com) or ` + + `<a test href="https://www.example.com">www.example.com</a>` + ); + + chai + .expect(code.replace(/\n/g, '')) + .to.equal( + `<p>See <a href="https://www.example.com">www.example.com</a> or ` + + `<a test href="https://www.example.com">www.example.com</a></p>` + ); + }); + + it('does not autolink URLs when nested several layers deep inside links', async () => { + const { code } = await renderAstroMd( + `<a href="https://www.example.com">**Visit _our www.example.com or ` + + `http://localhost pages_ for more!**</a>` + ); + + chai + .expect(code.replace(/\n/g, '')) + .to.equal( + `<a href="https://www.example.com"><strong>` + + `Visit <em>our www.example.com or http://localhost pages</em> for more!` + + `</strong></a>` + ); + }); + }) }); |