diff --git a/tests/cases/fourslash/tsxCompletion11.ts b/tests/cases/fourslash/tsxCompletion11.ts
new file mode 100644
index 00000000000..70626a84791
--- /dev/null
+++ b/tests/cases/fourslash/tsxCompletion11.ts
@@ -0,0 +1,7 @@
+///
+
+//@Filename: file.tsx
+//// var x1 = **/
+
+goTo.marker();
+verify.memberListCount(0);
\ No newline at end of file
diff --git a/tests/cases/fourslash/tsxCompletion12.ts b/tests/cases/fourslash/tsxCompletion12.ts
new file mode 100644
index 00000000000..742009b487e
--- /dev/null
+++ b/tests/cases/fourslash/tsxCompletion12.ts
@@ -0,0 +1,8 @@
+///
+
+//@Filename: file.tsx
+//// var x1 =
/**/
+
+goTo.marker();
+verify.memberListCount(1);
+verify.completionListContains('div');
\ No newline at end of file
diff --git a/tests/cases/fourslash/tsxCompletion13.ts b/tests/cases/fourslash/tsxCompletion13.ts
new file mode 100644
index 00000000000..426ce90d258
--- /dev/null
+++ b/tests/cases/fourslash/tsxCompletion13.ts
@@ -0,0 +1,8 @@
+///
+
+//@Filename: file.tsx
+//// class MyElement {}
+//// var x1 =
+
+//@Filename: file.tsx
+//// class MyElement {}
+//// var x1 =
+
+//@Filename: file.tsx
+//// class MyElement {}
+//// var x1 =
+
+//@Filename: file.tsx
+//// var x1 = **/
+
+goTo.marker("");
+verify.memberListCount(0);
\ No newline at end of file
diff --git a/tests/cases/fourslash/tsxCompletion17.ts b/tests/cases/fourslash/tsxCompletion17.ts
new file mode 100644
index 00000000000..bec17956267
--- /dev/null
+++ b/tests/cases/fourslash/tsxCompletion17.ts
@@ -0,0 +1,8 @@
+///
+
+//@Filename: file.tsx
+//// var x1 =
+
+//@Filename: file.tsx
+//// var x =
+////
/*1*/>
+//// /*4*/>
+//// /*6*/>
+//// /*2*/>
+
+goTo.marker("1");
+verify.memberListCount(1);
+verify.completionListContains('h1');
+
+goTo.marker("2");
+verify.memberListCount(1);
+verify.completionListContains('div');
+
+goTo.marker("3");
+verify.memberListCount(0);
+
+goTo.marker("4");
+verify.memberListCount(1);
+verify.completionListContains('div');
+
+goTo.marker("5");
+verify.memberListCount(0);
+
+goTo.marker("6");
+verify.memberListCount(1);
+verify.completionListContains('div');
\ No newline at end of file
diff --git a/tests/cases/fourslash/tsxQuickInfo1.ts b/tests/cases/fourslash/tsxQuickInfo1.ts
new file mode 100644
index 00000000000..b1db1eb4a47
--- /dev/null
+++ b/tests/cases/fourslash/tsxQuickInfo1.ts
@@ -0,0 +1,18 @@
+///
+
+//@Filename: file.tsx
+//// var x1 =
+//// class MyElement {}
+//// var z =
+
+goTo.marker("1");
+verify.quickInfoIs("any", undefined);
+
+goTo.marker("2");
+verify.quickInfoIs("any", undefined);;
+
+goTo.marker("3");
+verify.quickInfoIs("class MyElement", undefined);;
+
+goTo.marker("4");
+verify.quickInfoIs("class MyElement", undefined);;
\ No newline at end of file
diff --git a/tests/cases/fourslash/tsxQuickInfo2.ts b/tests/cases/fourslash/tsxQuickInfo2.ts
new file mode 100644
index 00000000000..0eb7a5100c4
--- /dev/null
+++ b/tests/cases/fourslash/tsxQuickInfo2.ts
@@ -0,0 +1,24 @@
+///
+
+//@Filename: file.tsx
+//// declare module JSX {
+//// interface Element { }
+//// interface IntrinsicElements {
+//// div: any
+//// }
+//// }
+//// var x1 =
+//// class MyElement {}
+//// var z =
+
+goTo.marker("1");
+verify.quickInfoIs("(property) JSX.IntrinsicElements.div: any", undefined);
+
+goTo.marker("2");
+verify.quickInfoIs("(property) JSX.IntrinsicElements.div: any", undefined);;
+
+goTo.marker("3");
+verify.quickInfoIs("class MyElement", undefined);;
+
+goTo.marker("4");
+verify.quickInfoIs("class MyElement", undefined);;
\ No newline at end of file