diff options
Diffstat (limited to 'packages/integrations/mdx/test')
6 files changed, 60 insertions, 0 deletions
diff --git a/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/astro.config.ts b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/astro.config.ts new file mode 100644 index 000000000..75a2b5f3a --- /dev/null +++ b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/astro.config.ts @@ -0,0 +1,6 @@ +import mdx from '@astrojs/mdx'; +import preact from '@astrojs/preact'; + +export default { + integrations: [mdx(), preact()] +} diff --git a/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/package.json b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/package.json new file mode 100644 index 000000000..5d1ab5632 --- /dev/null +++ b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/package.json @@ -0,0 +1,10 @@ +{ + "name": "@test/mdx-infinite-loop", + "type": "module", + "dependencies": { + "@astrojs/mdx": "workspace:*", + "@astrojs/preact": "workspace:*", + "preact": "^10.7.3", + "astro": "workspace:*" + } +} diff --git a/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/components/Test.js b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/components/Test.js new file mode 100644 index 000000000..831fb327c --- /dev/null +++ b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/components/Test.js @@ -0,0 +1,3 @@ +export default function () { + return 'Hello world' +} diff --git a/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/pages/doc.mdx b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/pages/doc.mdx new file mode 100644 index 000000000..8b8dc5e07 --- /dev/null +++ b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/pages/doc.mdx @@ -0,0 +1,6 @@ +import Test, { Missing } from '../components/Test'; + +# Hello page! + +<Test /> +<Missing /> diff --git a/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/pages/index.astro b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/pages/index.astro new file mode 100644 index 000000000..11f7af385 --- /dev/null +++ b/packages/integrations/mdx/test/fixtures/mdx-infinite-loop/src/pages/index.astro @@ -0,0 +1,5 @@ +--- +const files = await Astro.glob('./**/*.mdx') +--- + +{files.map((file: any) => <file.Content />)} diff --git a/packages/integrations/mdx/test/mdx-infinite-loop.test.js b/packages/integrations/mdx/test/mdx-infinite-loop.test.js new file mode 100644 index 000000000..c76c24270 --- /dev/null +++ b/packages/integrations/mdx/test/mdx-infinite-loop.test.js @@ -0,0 +1,30 @@ +import mdx from '@astrojs/mdx'; + +import { expect } from 'chai'; +import { loadFixture } from '../../../astro/test/test-utils.js'; + +describe('MDX Infinite Loop', () => { + let fixture; + + before(async () => { + fixture = await loadFixture({ + root: new URL('./fixtures/mdx-infinite-loop/', import.meta.url), + integrations: [mdx()], + }); + }); + + describe('build', () => { + let err; + before(async () => { + try { + await fixture.build(); + } catch (e) { + err = e; + } + }); + + it('does not hang forever if an error is thrown', async () => { + expect(!!err).to.be.true; + }); + }); +}); |