diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js
index af9a6095e0a46..334ff0e2cbd2c 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js
@@ -249,5 +249,38 @@ describe('ReactDOMServerIntegration', () => {
expect(e.querySelector('#language2').textContent).toBe('sanskrit');
expect(e.querySelector('#language3').textContent).toBe('french');
});
+
+ it('does not pollute parallel node streams', () => {
+ const LoggedInUser = React.createContext();
+
+ const AppWithUser = user => (
+
+
+
+
+ );
+
+ const streamAmy = ReactDOMServer.renderToNodeStream(
+ AppWithUser('Amy'),
+ ).setEncoding('utf8');
+ const streamBob = ReactDOMServer.renderToNodeStream(
+ AppWithUser('Bob'),
+ ).setEncoding('utf8');
+
+ // Testing by filling the buffer using internal _read() with a small
+ // number of bytes to avoid a test case which needs to align to a
+ // highWaterMark boundary of 2^14 chars.
+ streamAmy._read(20);
+ streamBob._read(20);
+ streamAmy._read(20);
+ streamBob._read(20);
+
+ expect(streamAmy.read()).toBe('');
+ expect(streamBob.read()).toBe('');
+ });
});
});