summaryrefslogtreecommitdiff
path: root/packages/integrations/mdx/test
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/mdx/test')
-rw-r--r--packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/content/1.mdx5
-rw-r--r--packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/pages/[slug].astro34
-rw-r--r--packages/integrations/mdx/test/mdx-get-static-paths.test.js29
3 files changed, 68 insertions, 0 deletions
diff --git a/packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/content/1.mdx b/packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/content/1.mdx
new file mode 100644
index 000000000..7ad64edfe
--- /dev/null
+++ b/packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/content/1.mdx
@@ -0,0 +1,5 @@
+---
+one: hello
+slug: one
+---
+First mdx file
diff --git a/packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/pages/[slug].astro b/packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/pages/[slug].astro
new file mode 100644
index 000000000..fe453a8bf
--- /dev/null
+++ b/packages/integrations/mdx/test/fixtures/mdx-get-static-paths/src/pages/[slug].astro
@@ -0,0 +1,34 @@
+---
+export const getStaticPaths = async () => {
+ const content = await Astro.glob('../content/*.mdx');
+
+ return content
+ .filter((page) => !page.frontmatter.draft) // skip drafts
+ .map(({ default: MdxContent, frontmatter, url, file }) => {
+ return {
+ params: { slug: frontmatter.slug || "index" },
+ props: {
+ MdxContent,
+ file,
+ frontmatter,
+ url
+ }
+ }
+ })
+}
+
+const { MdxContent, frontmatter, url, file } = Astro.props;
+---
+
+<html>
+ <head>
+ <title>Page</title>
+ </head>
+ <body>
+ <MdxContent />
+
+ <div id="one">{frontmatter.one}</div>
+ <div id="url">{url}</div>
+ <div id="file">{file}</div>
+ </body>
+</html>
diff --git a/packages/integrations/mdx/test/mdx-get-static-paths.test.js b/packages/integrations/mdx/test/mdx-get-static-paths.test.js
new file mode 100644
index 000000000..f5d48922c
--- /dev/null
+++ b/packages/integrations/mdx/test/mdx-get-static-paths.test.js
@@ -0,0 +1,29 @@
+import mdx from '@astrojs/mdx';
+
+import { expect } from 'chai';
+import { loadFixture } from '../../../astro/test/test-utils.js';
+import * as cheerio from 'cheerio';
+
+const FIXTURE_ROOT = new URL('./fixtures/mdx-get-static-paths', import.meta.url);
+
+describe('getStaticPaths', () => {
+ /** @type {import('astro/test/test-utils').Fixture} */
+ let fixture;
+ before(async () => {
+ fixture = await loadFixture({
+ root: FIXTURE_ROOT,
+ integrations: [mdx()],
+ });
+ await fixture.build();
+ });
+
+ it('Provides file and url', async () => {
+ const html = await fixture.readFile('/one/index.html');
+
+ const $ = cheerio.load(html);
+ expect($('p').text()).to.equal('First mdx file');
+ expect($('#one').text()).to.equal('hello', 'Frontmatter included');
+ expect($('#url').text()).to.equal('/src/content/1.mdx', 'url is included');
+ expect($('#file').text()).to.contain('fixtures/mdx-get-static-paths/src/content/1.mdx', 'file is included');
+ });
+});