From 3586d13a3f436cae97d4060d7c8be80556363aa5 Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Wed, 29 Jun 2022 12:02:19 -0400 Subject: [PATCH] test(e2e): add mdx + framework tests --- .../preact-component/astro.config.mjs | 3 +- .../fixtures/preact-component/package.json | 1 + .../preact-component/src/pages/mdx.mdx | 29 +++++++++++++++++++ .../fixtures/react-component/astro.config.mjs | 3 +- .../e2e/fixtures/react-component/package.json | 1 + .../react-component/src/pages/mdx.mdx | 28 ++++++++++++++++++ .../fixtures/solid-component/astro.config.mjs | 3 +- .../e2e/fixtures/solid-component/package.json | 3 +- .../solid-component/src/pages/mdx.mdx | 28 ++++++++++++++++++ .../svelte-component/astro.config.mjs | 3 +- .../fixtures/svelte-component/package.json | 1 + .../svelte-component/src/pages/mdx.mdx | 28 ++++++++++++++++++ .../fixtures/vue-component/astro.config.mjs | 14 +++++---- .../e2e/fixtures/vue-component/package.json | 3 +- packages/astro/e2e/preact-component.test.js | 8 +++++ packages/astro/e2e/react-component.test.js | 8 +++++ packages/astro/e2e/solid-component.test.js | 8 +++++ packages/astro/e2e/svelte-component.test.js | 9 ++++++ packages/astro/e2e/vue-component.test.js | 9 ++++++ 19 files changed, 179 insertions(+), 11 deletions(-) create mode 100644 packages/astro/e2e/fixtures/preact-component/src/pages/mdx.mdx create mode 100644 packages/astro/e2e/fixtures/react-component/src/pages/mdx.mdx create mode 100644 packages/astro/e2e/fixtures/solid-component/src/pages/mdx.mdx create mode 100644 packages/astro/e2e/fixtures/svelte-component/src/pages/mdx.mdx diff --git a/packages/astro/e2e/fixtures/preact-component/astro.config.mjs b/packages/astro/e2e/fixtures/preact-component/astro.config.mjs index 08916b1fea784..7a8aef52144b0 100644 --- a/packages/astro/e2e/fixtures/preact-component/astro.config.mjs +++ b/packages/astro/e2e/fixtures/preact-component/astro.config.mjs @@ -1,7 +1,8 @@ import { defineConfig } from 'astro/config'; import preact from '@astrojs/preact'; +import mdx from '@astrojs/mdx'; // https://astro.build/config export default defineConfig({ - integrations: [preact()], + integrations: [preact(), mdx()], }); diff --git a/packages/astro/e2e/fixtures/preact-component/package.json b/packages/astro/e2e/fixtures/preact-component/package.json index 489d243389865..0d9b8402635f4 100644 --- a/packages/astro/e2e/fixtures/preact-component/package.json +++ b/packages/astro/e2e/fixtures/preact-component/package.json @@ -4,6 +4,7 @@ "private": true, "dependencies": { "@astrojs/preact": "workspace:*", + "@astrojs/mdx": "workspace:*", "astro": "workspace:*", "preact": "^10.7.3" } diff --git a/packages/astro/e2e/fixtures/preact-component/src/pages/mdx.mdx b/packages/astro/e2e/fixtures/preact-component/src/pages/mdx.mdx new file mode 100644 index 0000000000000..76952d9420b38 --- /dev/null +++ b/packages/astro/e2e/fixtures/preact-component/src/pages/mdx.mdx @@ -0,0 +1,29 @@ + +import Counter from '../components/Counter.jsx'; +import PreactComponent from '../components/JSXComponent.jsx'; + +export const someProps = { + count: 0, +}; + + + # Hello, server! + + + + # Hello, client:idle! + + + + # Hello, client:load! + + + + # Hello, client:visible! + + + + # Hello, client:media! + + + diff --git a/packages/astro/e2e/fixtures/react-component/astro.config.mjs b/packages/astro/e2e/fixtures/react-component/astro.config.mjs index 8a6f1951c9c2f..5c044b69d5521 100644 --- a/packages/astro/e2e/fixtures/react-component/astro.config.mjs +++ b/packages/astro/e2e/fixtures/react-component/astro.config.mjs @@ -1,7 +1,8 @@ import { defineConfig } from 'astro/config'; import react from '@astrojs/react'; +import mdx from '@astrojs/mdx'; // https://astro.build/config export default defineConfig({ - integrations: [react()], + integrations: [react(), mdx()], }); diff --git a/packages/astro/e2e/fixtures/react-component/package.json b/packages/astro/e2e/fixtures/react-component/package.json index 9236558f023fb..4e56631bde0bf 100644 --- a/packages/astro/e2e/fixtures/react-component/package.json +++ b/packages/astro/e2e/fixtures/react-component/package.json @@ -5,6 +5,7 @@ "dependencies": { "@astrojs/react": "workspace:*", "astro": "workspace:*", + "@astrojs/mdx": "workspace:*", "react": "^18.1.0", "react-dom": "^18.1.0" } diff --git a/packages/astro/e2e/fixtures/react-component/src/pages/mdx.mdx b/packages/astro/e2e/fixtures/react-component/src/pages/mdx.mdx new file mode 100644 index 0000000000000..be13d365e39f5 --- /dev/null +++ b/packages/astro/e2e/fixtures/react-component/src/pages/mdx.mdx @@ -0,0 +1,28 @@ +import Counter from '../components/Counter.jsx'; +import ReactComponent from '../components/JSXComponent.jsx'; + +export const someProps = { + count: 0, +}; + + + # Hello, server! + + + + # Hello, client:idle! + + + + # Hello, client:load! + + + + # Hello, client:visible! + + + + # Hello, client:media! + + + diff --git a/packages/astro/e2e/fixtures/solid-component/astro.config.mjs b/packages/astro/e2e/fixtures/solid-component/astro.config.mjs index a6c39b8535d2e..f527c69b4ab3b 100644 --- a/packages/astro/e2e/fixtures/solid-component/astro.config.mjs +++ b/packages/astro/e2e/fixtures/solid-component/astro.config.mjs @@ -1,7 +1,8 @@ import { defineConfig } from 'astro/config'; +import mdx from '@astrojs/mdx'; import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ - integrations: [solid()], + integrations: [solid(), mdx()], }); diff --git a/packages/astro/e2e/fixtures/solid-component/package.json b/packages/astro/e2e/fixtures/solid-component/package.json index 5eef50d7108ae..1ed5a5742a891 100644 --- a/packages/astro/e2e/fixtures/solid-component/package.json +++ b/packages/astro/e2e/fixtures/solid-component/package.json @@ -4,7 +4,8 @@ "private": true, "dependencies": { "@astrojs/solid-js": "workspace:*", - "astro": "workspace:*" + "astro": "workspace:*", + "@astrojs/mdx": "workspace:*" }, "devDependencies": { "solid-js": "^1.4.3" diff --git a/packages/astro/e2e/fixtures/solid-component/src/pages/mdx.mdx b/packages/astro/e2e/fixtures/solid-component/src/pages/mdx.mdx new file mode 100644 index 0000000000000..fcd3e33912956 --- /dev/null +++ b/packages/astro/e2e/fixtures/solid-component/src/pages/mdx.mdx @@ -0,0 +1,28 @@ +import Counter from '../components/Counter.jsx'; +import SolidComponent from '../components/SolidComponent.jsx'; + +export const someProps = { + count: 0, +}; + + + # Hello, server! + + + + # Hello, client:idle! + + + + # Hello, client:load! + + + + # Hello, client:visible! + + + + # Hello, client:media! + + + diff --git a/packages/astro/e2e/fixtures/svelte-component/astro.config.mjs b/packages/astro/e2e/fixtures/svelte-component/astro.config.mjs index 77fdcd1b9e48b..bc5c6c9bb9a7e 100644 --- a/packages/astro/e2e/fixtures/svelte-component/astro.config.mjs +++ b/packages/astro/e2e/fixtures/svelte-component/astro.config.mjs @@ -1,7 +1,8 @@ import { defineConfig } from 'astro/config'; import svelte from '@astrojs/svelte'; +import mdx from '@astrojs/mdx'; // https://astro.build/config export default defineConfig({ - integrations: [svelte()], + integrations: [svelte(), mdx()], }); diff --git a/packages/astro/e2e/fixtures/svelte-component/package.json b/packages/astro/e2e/fixtures/svelte-component/package.json index 2777c8ecd6550..999a248c70f20 100644 --- a/packages/astro/e2e/fixtures/svelte-component/package.json +++ b/packages/astro/e2e/fixtures/svelte-component/package.json @@ -5,6 +5,7 @@ "dependencies": { "@astrojs/svelte": "workspace:*", "astro": "workspace:*", + "@astrojs/mdx": "workspace:*", "svelte": "^3.48.0" } } diff --git a/packages/astro/e2e/fixtures/svelte-component/src/pages/mdx.mdx b/packages/astro/e2e/fixtures/svelte-component/src/pages/mdx.mdx new file mode 100644 index 0000000000000..0550f3b9f4e12 --- /dev/null +++ b/packages/astro/e2e/fixtures/svelte-component/src/pages/mdx.mdx @@ -0,0 +1,28 @@ +import Counter from '../components/Counter.svelte'; +import SvelteComponent from '../components/SvelteComponent.svelte'; + +export const someProps = { + count: 0, +}; + + + # Hello, server! + + + + # Hello, client:idle! + + + + # Hello, client:load! + + + + # Hello, client:visible! + + + + # Hello, client:media! + + + diff --git a/packages/astro/e2e/fixtures/vue-component/astro.config.mjs b/packages/astro/e2e/fixtures/vue-component/astro.config.mjs index 94bdad87f189a..9a3f1272790c5 100644 --- a/packages/astro/e2e/fixtures/vue-component/astro.config.mjs +++ b/packages/astro/e2e/fixtures/vue-component/astro.config.mjs @@ -1,13 +1,17 @@ import { defineConfig } from 'astro/config'; import vue from '@astrojs/vue'; +import mdx from '@astrojs/mdx'; // https://astro.build/config export default defineConfig({ - integrations: [vue({ - template: { - compilerOptions: { - isCustomElement: tag => tag.includes('my-button') + integrations: [ + mdx(), + vue({ + template: { + compilerOptions: { + isCustomElement: tag => tag.includes('my-button') + } } } - })], + )], }); diff --git a/packages/astro/e2e/fixtures/vue-component/package.json b/packages/astro/e2e/fixtures/vue-component/package.json index 2322b5d2d85da..206bb68caf04d 100644 --- a/packages/astro/e2e/fixtures/vue-component/package.json +++ b/packages/astro/e2e/fixtures/vue-component/package.json @@ -4,6 +4,7 @@ "private": true, "dependencies": { "@astrojs/vue": "workspace:*", - "astro": "workspace:*" + "astro": "workspace:*", + "@astrojs/mdx": "workspace:*" } } diff --git a/packages/astro/e2e/preact-component.test.js b/packages/astro/e2e/preact-component.test.js index f7b79e9da25b3..49f2fddc166fe 100644 --- a/packages/astro/e2e/preact-component.test.js +++ b/packages/astro/e2e/preact-component.test.js @@ -17,3 +17,11 @@ test.describe('Preact components in Markdown files', () => { componentFilePath: './src/components/JSXComponent.jsx', }); }); + +test.describe('Preact components in MDX files', () => { + createTests({ + pageUrl: '/mdx/', + pageSourceFilePath: './src/pages/mdx.md', + componentFilePath: './src/components/JSXComponent.jsx', + }); +}); diff --git a/packages/astro/e2e/react-component.test.js b/packages/astro/e2e/react-component.test.js index 05f8c1a878c77..7aba75a0c5fd7 100644 --- a/packages/astro/e2e/react-component.test.js +++ b/packages/astro/e2e/react-component.test.js @@ -17,3 +17,11 @@ test.describe('React components in Markdown files', () => { componentFilePath: './src/components/JSXComponent.jsx', }); }); + +test.describe('React components in MDX files', () => { + createTests({ + pageUrl: '/mdx/', + pageSourceFilePath: './src/pages/mdx.mdx', + componentFilePath: './src/components/JSXComponent.jsx', + }); +}); diff --git a/packages/astro/e2e/solid-component.test.js b/packages/astro/e2e/solid-component.test.js index 3a200c67e627b..033829b0474d0 100644 --- a/packages/astro/e2e/solid-component.test.js +++ b/packages/astro/e2e/solid-component.test.js @@ -17,3 +17,11 @@ test.describe('Solid components in Markdown files', () => { componentFilePath: './src/components/SolidComponent.jsx', }); }); + +test.describe('Solid components in MDX files', () => { + createTests({ + pageUrl: '/mdx/', + pageSourceFilePath: './src/pages/mdx.mdx', + componentFilePath: './src/components/SolidComponent.jsx', + }); +}); diff --git a/packages/astro/e2e/svelte-component.test.js b/packages/astro/e2e/svelte-component.test.js index 6ee9f11008162..7533d7cb75df1 100644 --- a/packages/astro/e2e/svelte-component.test.js +++ b/packages/astro/e2e/svelte-component.test.js @@ -19,3 +19,12 @@ test.describe('Svelte components in Markdown files', () => { counterCssFilePath: './src/components/Counter.svelte', }); }); + +test.describe('Svelte components in MDX files', () => { + createTests({ + pageUrl: '/mdx/', + pageSourceFilePath: './src/pages/mdx.mdx', + componentFilePath: './src/components/SvelteComponent.svelte', + counterCssFilePath: './src/components/Counter.svelte', + }); +}); diff --git a/packages/astro/e2e/vue-component.test.js b/packages/astro/e2e/vue-component.test.js index 67c22d62795f9..d975600dc8745 100644 --- a/packages/astro/e2e/vue-component.test.js +++ b/packages/astro/e2e/vue-component.test.js @@ -19,3 +19,12 @@ test.describe('Vue components in Markdown files', () => { counterCssFilePath: './src/components/Counter.vue', }); }); + +test.describe('Vue components in MDX files', () => { + createTests({ + pageUrl: '/mdx/', + pageSourceFilePath: './src/pages/mdx.mdx', + componentFilePath: './src/components/VueComponent.vue', + counterCssFilePath: './src/components/Counter.vue', + }); +});