diff options
Diffstat (limited to 'packages/integrations/mdx/test')
4 files changed, 34 insertions, 2 deletions
diff --git a/packages/integrations/mdx/test/fixtures/mdx-plus-react/astro.config.mjs b/packages/integrations/mdx/test/fixtures/mdx-plus-react/astro.config.mjs index 4671227d3..fd017ed8e 100644 --- a/packages/integrations/mdx/test/fixtures/mdx-plus-react/astro.config.mjs +++ b/packages/integrations/mdx/test/fixtures/mdx-plus-react/astro.config.mjs @@ -2,5 +2,5 @@ import mdx from '@astrojs/mdx'; import react from '@astrojs/react'; export default { - integrations: [react(), mdx()] + integrations: [mdx(), react()] } diff --git a/packages/integrations/mdx/test/fixtures/mdx-plus-react/src/components/Component.jsx b/packages/integrations/mdx/test/fixtures/mdx-plus-react/src/components/Component.jsx index 53f5dad3f..70c336314 100644 --- a/packages/integrations/mdx/test/fixtures/mdx-plus-react/src/components/Component.jsx +++ b/packages/integrations/mdx/test/fixtures/mdx-plus-react/src/components/Component.jsx @@ -1,5 +1,8 @@ +import { useState } from "react"; + const Component = () => { - return <p>Hello world</p>; + const [name] = useState('world'); + return <p>Hello {name}</p>; }; export default Component; diff --git a/packages/integrations/mdx/test/fixtures/mdx-plus-react/src/pages/post.mdx b/packages/integrations/mdx/test/fixtures/mdx-plus-react/src/pages/post.mdx new file mode 100644 index 000000000..734f33e82 --- /dev/null +++ b/packages/integrations/mdx/test/fixtures/mdx-plus-react/src/pages/post.mdx @@ -0,0 +1,3 @@ +# Testing + +This works! diff --git a/packages/integrations/mdx/test/mdx-plus-react.test.js b/packages/integrations/mdx/test/mdx-plus-react.test.js index 22d7ca0e7..904c58b14 100644 --- a/packages/integrations/mdx/test/mdx-plus-react.test.js +++ b/packages/integrations/mdx/test/mdx-plus-react.test.js @@ -2,13 +2,27 @@ import { expect } from 'chai'; import { parseHTML } from 'linkedom'; import { loadFixture } from '../../../astro/test/test-utils.js'; +function hookError() { + const error = console.error; + const errors = []; + console.error = function(...args) { + errors.push(args); + }; + return () => { + console.error = error; + return errors; + }; +} + describe('MDX and React', () => { let fixture; + let unhook; before(async () => { fixture = await loadFixture({ root: new URL('./fixtures/mdx-plus-react/', import.meta.url), }); + unhook = hookError(); await fixture.build(); }); @@ -20,4 +34,16 @@ describe('MDX and React', () => { expect(p.textContent).to.equal('Hello world'); }); + + it('mdx renders fine', async () => { + const html = await fixture.readFile('/post/index.html'); + const { document } = parseHTML(html); + const h = document.querySelector('#testing'); + expect(h.textContent).to.equal('Testing'); + }); + + it('does not get a invalid hook call warning', () => { + const errors = unhook(); + expect(errors).to.have.a.lengthOf(0); + }); }); |