diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js
index c9989d1c557d..71e914c17f40 100644
--- a/src/language-js/printer-estree.js
+++ b/src/language-js/printer-estree.js
@@ -6259,7 +6259,7 @@ function isUnitTestSetUp(n) {
}
function isTheOnlyJSXElementInMarkdown(options, path) {
- if (options.parentParser !== "markdown") {
+ if (options.parentParser !== "markdown" && options.parentParser !== "mdx") {
return false;
}
diff --git a/tests/mdx/__snapshots__/jsfmt.spec.js.snap b/tests/mdx/__snapshots__/jsfmt.spec.js.snap
index 8aa75609223e..3cbe83086b57 100644
--- a/tests/mdx/__snapshots__/jsfmt.spec.js.snap
+++ b/tests/mdx/__snapshots__/jsfmt.spec.js.snap
@@ -198,6 +198,48 @@ exports[`jsx.mdx - mdx-verify 2`] = `
`;
+exports[`jsx-codeblock.mdx - mdx-verify 1`] = `
+\`\`\`jsx
+
foo
+\`\`\`
+
+\`\`\`jsx
+const a = 1;
+foo
;
+\`\`\`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+\`\`\`jsx
+foo
+\`\`\`
+
+\`\`\`jsx
+const a = 1;
+foo
;
+\`\`\`
+
+`;
+
+exports[`jsx-codeblock.mdx - mdx-verify 2`] = `
+\`\`\`jsx
+foo
+\`\`\`
+
+\`\`\`jsx
+const a = 1;
+foo
;
+\`\`\`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+\`\`\`jsx
+foo
+\`\`\`
+
+\`\`\`jsx
+const a = 1
+;foo
+\`\`\`
+
+`;
+
exports[`mixed.mdx - mdx-verify 1`] = `
import { Baz } from './Fixture'
import { Buz } from './Fixture'
diff --git a/tests/mdx/jsx-codeblock.mdx b/tests/mdx/jsx-codeblock.mdx
new file mode 100644
index 000000000000..4f5b640a9163
--- /dev/null
+++ b/tests/mdx/jsx-codeblock.mdx
@@ -0,0 +1,8 @@
+```jsx
+foo
+```
+
+```jsx
+const a = 1;
+foo
;
+```