diff --git a/fixtures/flight-browser/index.html b/fixtures/flight-browser/index.html
index 07489d30bea64..2ac19b77b3755 100644
--- a/fixtures/flight-browser/index.html
+++ b/fixtures/flight-browser/index.html
@@ -18,6 +18,7 @@
Flight Example
+
diff --git a/packages/react-dom/src/__tests__/ReactFlightDOM-test.js b/packages/react-dom/src/__tests__/ReactFlightDOM-test.js
new file mode 100644
index 0000000000000..5fb8440cf8716
--- /dev/null
+++ b/packages/react-dom/src/__tests__/ReactFlightDOM-test.js
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ * @emails react-core
+ * @jest-environment node
+ */
+
+'use strict';
+
+// Polyfills for test environment
+global.ReadableStream = require('@mattiasbuelens/web-streams-polyfill/ponyfill/es6').ReadableStream;
+global.TextDecoder = require('util').TextDecoder;
+
+let Stream;
+let React;
+let ReactFlightDOMServer;
+let ReactFlightDOMClient;
+
+describe('ReactFlightDOM', () => {
+ beforeEach(() => {
+ jest.resetModules();
+ Stream = require('stream');
+ React = require('react');
+ ReactFlightDOMServer = require('react-dom/unstable-flight-server');
+ ReactFlightDOMClient = require('react-dom/unstable-flight-client');
+ });
+
+ function getTestStream() {
+ let writable = new Stream.PassThrough();
+ let readable = new ReadableStream({
+ start(controller) {
+ writable.on('data', chunk => {
+ controller.enqueue(chunk);
+ });
+ writable.on('end', () => {
+ controller.close();
+ });
+ },
+ });
+ return {
+ writable,
+ readable,
+ };
+ }
+
+ async function waitForSuspense(fn) {
+ while (true) {
+ try {
+ return fn();
+ } catch (promise) {
+ if (typeof promise.then === 'function') {
+ await promise;
+ } else {
+ throw promise;
+ }
+ }
+ }
+ }
+
+ it('should resolve HTML using Node streams', async () => {
+ function Text({children}) {
+ return {children};
+ }
+ function HTML() {
+ return (
+
+ hello
+ world
+
+ );
+ }
+
+ function App() {
+ let model = {
+ html: