diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js
index fc4594261eba2..ceb9c847bb5be 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js
@@ -11,6 +11,8 @@
const ReactDOMServerIntegrationUtils = require('./utils/ReactDOMServerIntegrationTestUtils');
+const TEXT_NODE_TYPE = 3;
+
let React;
let ReactDOM;
let ReactDOMServer;
@@ -37,6 +39,8 @@ const {
itClientRenders,
renderIntoDom,
serverRender,
+ streamRender,
+ clientRenderOnServerString,
} = ReactDOMServerIntegrationUtils(initModules);
describe('ReactDOMServerIntegration', () => {
@@ -45,6 +49,11 @@ describe('ReactDOMServerIntegration', () => {
});
describe('form controls', function() {
+ function expectNode(node, type, value) {
+ expect(node).not.toBe(null);
+ expect(node.nodeType).toBe(type);
+ expect(node.nodeValue).toMatch(value);
+ }
describe('inputs', function() {
itRenders('an input with a value and an onChange', async render => {
const e = await render( {}} />);
@@ -341,6 +350,31 @@ describe('ReactDOMServerIntegration', () => {
);
});
+ describe('options', function() {
+ itRenders('an option with multiple text children', async render => {
+ const e = await render(
+ ,
+ 0,
+ );
+ const option = e.options[0];
+ if (
+ render === serverRender ||
+ render === streamRender ||
+ render === clientRenderOnServerString
+ ) {
+ // We have three nodes because there is a comment between them.
+ expect(option.childNodes.length).toBe(3);
+ expectNode(option.childNodes[0], TEXT_NODE_TYPE, 'A');
+ expectNode(option.childNodes[2], TEXT_NODE_TYPE, 'B');
+ } else {
+ expect(option.childNodes.length).toBe(1);
+ expectNode(option.childNodes[0], TEXT_NODE_TYPE, 'A B');
+ }
+ });
+ });
+
describe('user interaction', function() {
let ControlledInput,
ControlledTextArea,
diff --git a/packages/react-dom/src/server/ReactPartialRenderer.js b/packages/react-dom/src/server/ReactPartialRenderer.js
index 339411596bc1a..d5637f7462360 100644
--- a/packages/react-dom/src/server/ReactPartialRenderer.js
+++ b/packages/react-dom/src/server/ReactPartialRenderer.js
@@ -997,12 +997,10 @@ class ReactDOMServerRenderer {
props = Object.assign(
{
selected: undefined,
- children: undefined,
},
props,
{
selected: selected,
- children: optionChildren,
},
);
}