diff --git a/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.0.html b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.0.html
new file mode 100644
index 0000000..19635f9
--- /dev/null
+++ b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.0.html
@@ -0,0 +1,10 @@
+
+ Host app
+
+
+ mounted: false
+
+
\ No newline at end of file
diff --git a/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.1.html b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.1.html
new file mode 100644
index 0000000..18cfb74
--- /dev/null
+++ b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.1.html
@@ -0,0 +1,12 @@
+
+ Host app
+
+
+ mounted: false
+
+
\ No newline at end of file
diff --git a/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.2.html b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.2.html
new file mode 100644
index 0000000..ac3ffae
--- /dev/null
+++ b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.2.html
@@ -0,0 +1,16 @@
+
+ Host app
+
+
+ mounted: false
+
+
\ No newline at end of file
diff --git a/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.3.html b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.3.html
new file mode 100644
index 0000000..5aebcec
--- /dev/null
+++ b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.3.html
@@ -0,0 +1,19 @@
+
+ Host app
+
+
+ mounted: false
+
+
+
\ No newline at end of file
diff --git a/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.4.html b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.4.html
new file mode 100644
index 0000000..d704942
--- /dev/null
+++ b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.4.html
@@ -0,0 +1,16 @@
+
+ Host app
+
+
+ mounted: false
+
+
+
\ No newline at end of file
diff --git a/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.5.html b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.5.html
new file mode 100644
index 0000000..865d2e0
--- /dev/null
+++ b/src/components/micro-frame/__tests__/__snapshots__/ssr-then-csr-with-flush/renders.expected/loading.5.html
@@ -0,0 +1,16 @@
+
+ Host app
+
+
+ mounted: true
+
+
+
\ No newline at end of file
diff --git a/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/components/app.marko b/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/components/app.marko
new file mode 100644
index 0000000..717fe8b
--- /dev/null
+++ b/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/components/app.marko
@@ -0,0 +1,11 @@
+class {
+ onCreate() {
+ this.state = { mounted: false };
+ }
+ onMount() {
+ this.state.mounted = true;
+ }
+}
+
+mounted: ${state.mounted}
+
diff --git a/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/embed.marko b/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/embed.marko
new file mode 100644
index 0000000..6e75561
--- /dev/null
+++ b/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/embed.marko
@@ -0,0 +1,9 @@
+
+
+ $ out.write("
setTimeout(res)))>
+ <@then>hacks@then>
+ >
+
+ $ out.write(">
");
+
diff --git a/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/index.marko b/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/index.marko
new file mode 100644
index 0000000..267d8b1
--- /dev/null
+++ b/src/components/micro-frame/__tests__/fixtures/ssr-then-csr-with-flush/index.marko
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Simple Example
+
+
+
+ Host app
+
+
+
diff --git a/src/components/micro-frame/__tests__/server.test.ts b/src/components/micro-frame/__tests__/server.test.ts
index e2c9f9b..cc70faf 100644
--- a/src/components/micro-frame/__tests__/server.test.ts
+++ b/src/components/micro-frame/__tests__/server.test.ts
@@ -12,6 +12,11 @@ describe(
fixture(path.join(__dirname, "fixtures/ssr-then-csr"))
);
+describe(
+ "ssr then csr with flush",
+ fixture(path.join(__dirname, "fixtures/ssr-then-csr-with-flush"))
+);
+
describe(
"csr stream text",
fixture(path.join(__dirname, "fixtures/csr-stream-text"))