diff --git a/tests/cases/fourslash/completionListForTransitivelyExportedMembers01.ts b/tests/cases/fourslash/completionListForTransitivelyExportedMembers01.ts
new file mode 100644
index 00000000000..017b04592c1
--- /dev/null
+++ b/tests/cases/fourslash/completionListForTransitivelyExportedMembers01.ts
@@ -0,0 +1,39 @@
+///
+
+// @Filename: A.ts
+////export interface I1 { one: number }
+////export interface I2 { two: string }
+////export type I1_OR_I2 = I1 | I2;
+////
+////export class C1 {
+//// one: string;
+////}
+////
+////export module Inner {
+//// export interface I3 {
+//// three: boolean
+//// }
+////
+//// export var varVar = 100;
+//// export let letVar = 200;
+//// export const constVar = 300;
+////}
+
+// @Filename: B.ts
+////export var bVar = "bee!";
+
+// @Filename: C.ts
+////export var cVar = "see!";
+////export * from "A";
+////export * from "B"
+
+// @Filename: D.ts
+////import * as c from "C";
+////var x = c./**/
+
+goTo.marker();
+verify.completionListContains("C1");
+verify.completionListContains("Inner");
+verify.completionListContains("bVar");
+verify.completionListContains("cVar");
+verify.not.completionListContains("__export");
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionListForTransitivelyExportedMembers02.ts b/tests/cases/fourslash/completionListForTransitivelyExportedMembers02.ts
new file mode 100644
index 00000000000..868859746b4
--- /dev/null
+++ b/tests/cases/fourslash/completionListForTransitivelyExportedMembers02.ts
@@ -0,0 +1,39 @@
+///
+
+
+// @Filename: A.ts
+////export interface I1 { one: number }
+////export interface I2 { two: string }
+////export type I1_OR_I2 = I1 | I2;
+////
+////export class C1 {
+//// one: string;
+////}
+////
+////export module Inner {
+//// export interface I3 {
+//// three: boolean
+//// }
+////
+//// export var varVar = 100;
+//// export let letVar = 200;
+//// export const constVar = 300;
+////}
+
+// @Filename: B.ts
+////export var bVar = "bee!";
+
+// @Filename: C.ts
+////export var cVar = "see!";
+////export * from "A";
+////export * from "B"
+
+// @Filename: D.ts
+////import * as c from "C";
+////var x = c.Inner./**/
+
+goTo.marker();
+verify.completionListContains("varVar");
+verify.completionListContains("letVar");
+verify.completionListContains("constVar");
+verify.not.completionListContains("__export");
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionListForTransitivelyExportedMembers03.ts b/tests/cases/fourslash/completionListForTransitivelyExportedMembers03.ts
new file mode 100644
index 00000000000..78ef3ec7c72
--- /dev/null
+++ b/tests/cases/fourslash/completionListForTransitivelyExportedMembers03.ts
@@ -0,0 +1,40 @@
+///
+
+
+// @Filename: A.ts
+////export interface I1 { one: number }
+////export interface I2 { two: string }
+////export type I1_OR_I2 = I1 | I2;
+////
+////export class C1 {
+//// one: string;
+////}
+////
+////export module Inner {
+//// export interface I3 {
+//// three: boolean
+//// }
+////
+//// export var varVar = 100;
+//// export let letVar = 200;
+//// export const constVar = 300;
+////}
+
+// @Filename: B.ts
+////export var bVar = "bee!";
+
+// @Filename: C.ts
+////export var cVar = "see!";
+////export * from "A";
+////export * from "B"
+
+// @Filename: D.ts
+////import * as c from "C";
+////var x: c./**/
+
+goTo.marker();
+verify.completionListContains("I1");
+verify.completionListContains("I2");
+verify.completionListContains("I1_OR_I2");
+verify.completionListContains("C1");
+verify.not.completionListContains("__export");
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionListForTransitivelyExportedMembers04.ts b/tests/cases/fourslash/completionListForTransitivelyExportedMembers04.ts
new file mode 100644
index 00000000000..114e370d31d
--- /dev/null
+++ b/tests/cases/fourslash/completionListForTransitivelyExportedMembers04.ts
@@ -0,0 +1,37 @@
+///
+
+
+// @Filename: A.ts
+////export interface I1 { one: number }
+////export interface I2 { two: string }
+////export type I1_OR_I2 = I1 | I2;
+////
+////export class C1 {
+//// one: string;
+////}
+////
+////export module Inner {
+//// export interface I3 {
+//// three: boolean
+//// }
+////
+//// export var varVar = 100;
+//// export let letVar = 200;
+//// export const constVar = 300;
+////}
+
+// @Filename: B.ts
+////export var bVar = "bee!";
+
+// @Filename: C.ts
+////export var cVar = "see!";
+////export * from "A";
+////export * from "B"
+
+// @Filename: D.ts
+////import * as c from "C";
+////var x: c.Inner./**/
+
+goTo.marker();
+verify.completionListContains("I3");
+verify.not.completionListContains("__export");
\ No newline at end of file