diff --git a/tests/cases/compiler/jsxFragment.tsx b/tests/cases/compiler/jsxFragment.tsx
deleted file mode 100644
index 82e093327be..00000000000
--- a/tests/cases/compiler/jsxFragment.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-//@jsx: react
-
-declare var React: any;
-
;
\ No newline at end of file
diff --git a/tests/cases/conformance/jsx/checkJsxChildrenProperty14.tsx b/tests/cases/conformance/jsx/checkJsxChildrenProperty14.tsx
new file mode 100644
index 00000000000..65dfc720003
--- /dev/null
+++ b/tests/cases/conformance/jsx/checkJsxChildrenProperty14.tsx
@@ -0,0 +1,48 @@
+// @filename: file.tsx
+// @jsx: preserve
+// @noLib: true
+// @skipLibCheck: true
+// @libFiles: react.d.ts,lib.d.ts
+
+import React = require('react');
+
+interface Prop {
+ a: number,
+ b: string,
+ children: JSX.Element | JSX.Element[];
+}
+
+class Button extends React.Component {
+ render() {
+ return (My Button
)
+ }
+}
+
+function AnotherButton(p: any) {
+ return Just Another Button
;
+}
+
+function Comp(p: Prop) {
+ return {p.b}
;
+}
+
+// OK
+let k1 = <>>;
+let k2 = <>>;
+let k3 = <>>;
+
+interface SingleChildProp {
+ a: number,
+ b: string,
+ children: JSX.Element;
+}
+
+function SingleChildComp(p: SingleChildProp) {
+ return {p.b}
;
+}
+
+// OK
+let k4 = <>>;
+
+// Errors
+let k5 = <>>;
\ No newline at end of file
diff --git a/tests/cases/conformance/jsx/tsxFragmentErrors.tsx b/tests/cases/conformance/jsx/tsxFragmentErrors.tsx
new file mode 100644
index 00000000000..7806a576fed
--- /dev/null
+++ b/tests/cases/conformance/jsx/tsxFragmentErrors.tsx
@@ -0,0 +1,14 @@
+//@filename: file.tsx
+//@jsx: react
+
+declare module JSX {
+ interface Element { }
+ interface IntrinsicElements {
+ [s: string]: any;
+ }
+}
+declare var React: any;
+
+<>hi // Error
+
+<>eof // Error
\ No newline at end of file
diff --git a/tests/cases/conformance/jsx/tsxFragmentPreserveEmit.tsx b/tests/cases/conformance/jsx/tsxFragmentPreserveEmit.tsx
new file mode 100644
index 00000000000..5f4da955c36
--- /dev/null
+++ b/tests/cases/conformance/jsx/tsxFragmentPreserveEmit.tsx
@@ -0,0 +1,17 @@
+//@filename: file.tsx
+//@jsx: preserve
+
+declare module JSX {
+ interface Element { }
+ interface IntrinsicElements {
+ [s: string]: any;
+ }
+}
+declare var React: any;
+
+<>>; // no whitespace
+< > >; // lots of whitespace
+< /*starting wrap*/ > /*ending wrap*/>; // comments in the tags
+<>hi>; // text inside
+<>hibye
>; // children
+<>1<>2.12.2>3>; // nested fragments
\ No newline at end of file
diff --git a/tests/cases/conformance/jsx/tsxFragmentReactEmit.tsx b/tests/cases/conformance/jsx/tsxFragmentReactEmit.tsx
new file mode 100644
index 00000000000..15f4d290cbd
--- /dev/null
+++ b/tests/cases/conformance/jsx/tsxFragmentReactEmit.tsx
@@ -0,0 +1,17 @@
+//@filename: file.tsx
+//@jsx: react
+
+declare module JSX {
+ interface Element { }
+ interface IntrinsicElements {
+ [s: string]: any;
+ }
+}
+declare var React: any;
+
+<>>; // no whitespace
+< > >; // lots of whitespace
+< /*starting wrap*/ > /*ending wrap*/>; // comments in the tags
+<>hi>; // text inside
+<>hibye
>; // children
+<>1<>2.12.2>3>; // nested fragments
\ No newline at end of file