diff options
author | 2023-08-31 11:31:01 -0400 | |
---|---|---|
committer | 2023-08-31 11:31:01 -0400 | |
commit | 0752cf3688eaac535ceda1ebcd22ccaf20b2171f (patch) | |
tree | e3c606d1f862ea6f93cd49c6fb5ac10b11efd175 /packages/integrations/mdx | |
parent | 8fff0e9aebec5ff8c2516ed6dbcccb307c20ce45 (diff) | |
download | astro-0752cf3688eaac535ceda1ebcd22ccaf20b2171f.tar.gz astro-0752cf3688eaac535ceda1ebcd22ccaf20b2171f.tar.zst astro-0752cf3688eaac535ceda1ebcd22ccaf20b2171f.zip |
Prevent React hook call warnings when used with MDX (#8324)
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Diffstat (limited to 'packages/integrations/mdx')
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); + }); }); |