Skip to content

Commit

Permalink
update snapshots for more stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristopherBiscardi committed Jun 27, 2019
1 parent e40a199 commit 860d99b
Show file tree
Hide file tree
Showing 3 changed files with 179 additions and 34 deletions.
140 changes: 128 additions & 12 deletions packages/gatsby-plugin-mdx/__snapshots__/mdx-loader.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,34 +1,150 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`mdx-loader snapshot one.mdx 1`] = `
exports[`mdx-loader snapshot with body 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export default ({ components, ...props }) => (
<MDXTag name="wrapper" components={components}>
<MDXTag name="h1" components={components}>{\`some heading\`}</MDXTag>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
export const _frontmatter = {};
`;
exports[`mdx-loader snapshot two.mdx 1`] = `
exports[`mdx-loader snapshot with frontmatter 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export default ({ components, ...props }) => (
<MDXTag name="wrapper" components={components}>
<MDXTag name="h1" components={components}>{\`Two things\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some paragraph content\`}</MDXTag>
<MDXTag name="p" components={components}>
<MDXTag
name="strong"
components={components}
parentName="p"
>{\`bold\`}</MDXTag>
</MDXTag>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
export const _frontmatter = { one: "two", three: 4, array: [1, 2, 3] };
`;
exports[`mdx-loader snapshot with frontmatter-layout 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export default ({ components, ...props }) => (
<MDXTag
name="wrapper"
Layout={({ children, ...props }) => <div>{children}</div>}
layoutProps={props}
components={components}
>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
export const _frontmatter = { one: "two", three: 4, array: [1, 2, 3] };
`;
exports[`mdx-loader snapshot with frontmatter-layout-namedExports 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export const meta = { author: "chris" };
export default ({ components, ...props }) => (
<MDXTag
name="wrapper"
Layout={({ children, ...props }) => <div>{children}</div>}
layoutProps={props}
components={components}
>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
export const _frontmatter = { one: "two", three: 4, array: [1, 2, 3] };
`;
exports[`mdx-loader snapshot with frontmatter-namedExports 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export const meta = { author: "chris" };
export default ({ components, ...props }) => (
<MDXTag name="wrapper" components={components}>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
export const _frontmatter = { one: "two", three: 4, array: [1, 2, 3] };
`;
exports[`mdx-loader snapshot with layout 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export default ({ components, ...props }) => (
<MDXTag
name="wrapper"
Layout={({ children, ...props }) => <div>{children}</div>}
layoutProps={props}
components={components}
>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
export const _frontmatter = {};
`;
exports[`mdx-loader snapshot with layout-namedExports 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export const meta = { author: "chris" };
export default ({ components, ...props }) => (
<MDXTag
name="wrapper"
Layout={({ children, ...props }) => <div>{children}</div>}
layoutProps={props}
components={components}
>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
export const _frontmatter = {};
`;
exports[`mdx-loader snapshot with namedExports 1`] = `
import React from "react";
import { MDXTag } from "@mdx-js/tag";
export const meta = { author: "chris" };
export default ({ components, ...props }) => (
<MDXTag name="wrapper" components={components}>
<MDXTag name="h1" components={components}>{\`Some title\`}</MDXTag>
<MDXTag name="p" components={components}>{\`a bit of a paragraph\`}</MDXTag>
<MDXTag name="p" components={components}>{\`some content\`}</MDXTag>
</MDXTag>
);
Expand Down
70 changes: 49 additions & 21 deletions packages/gatsby-plugin-mdx/mdx-loader.test.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,58 @@
const mdxLoader = require("./mdx-loader");
const prettier = require("prettier");
const c = require("js-combinatorics");

const fixtures = [
[
"one.mdx",
{
internal: { type: "File" },
sourceInstanceName: "webpack-test-fixtures",
absolutePath: "/fake/one.mdx"
},
"# some heading"
],
[
"two.mdx",
function genMDXFile(input) {
const code = {
frontmatter: `---
one: two
three: 4
array: [1,2,3]
---`,
defaultLayout: `export default ({children, ...props}) => (
<div>
{children}
</div>
)`,
namedExports: `export const meta = {author: "chris"}`,
body: `# Some title
a bit of a paragraph
some content`
};

return {
name:
Object.entries(input)
.filter(([k, v]) => !!v)
.map(([k, v]) => k)
.join("-") || "body",
content: [
input.frontmatter ? code.frontmatter : "",
input.layout ? code.defaultLayout : "",
input.namedExports ? code.namedExports : "",
code.body
].join("\n\n")
};
}

// generate a table of all possible combinations of genMDXfile input
const fixtures = c
.baseN([true, false], 3)
.toArray()
.map(([frontmatter, layout, namedExports]) =>
genMDXFile({ frontmatter, layout, namedExports })
)
.map(({ name, content }) => [
name,
{
internal: { type: "File" },
sourceInstanceName: "webpack-test-fixtures",
absolutePath: "/fake/two.mdx"
absolutePath: `/fake/${name}`
},
`# Two things
some paragraph content
**bold**`
]
];
content
]);

describe("mdx-loader", () => {
expect.addSnapshotSerializer({
Expand All @@ -36,7 +64,7 @@ describe("mdx-loader", () => {
}
});
test.each(fixtures)(
"snapshot %s",
"snapshot with %s",
async (filename, fakeGatsbyNode, content) => {
const loader = mdxLoader.bind({
async() {
Expand Down
3 changes: 2 additions & 1 deletion packages/gatsby-plugin-mdx/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
"unist-util-visit": "^1.4.0"
},
"devDependencies": {
"jest": "^23.4.2"
"jest": "^23.4.2",
"js-combinatorics": "^0.5.3"
},
"jest": {
"testEnvironment": "node"
Expand Down

0 comments on commit 860d99b

Please sign in to comment.