Skip to content

Commit d4a608b

Browse files
Sebastian Silbermannrickhanlonii
authored andcommitted
Hydration keeps LF from server HTML
1 parent 5f9330f commit d4a608b

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

packages/react-dom/src/__tests__/ReactDOMServerIntegrationElements-test.js

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -841,17 +841,20 @@ describe('ReactDOMServerIntegration', () => {
841841
'an element with one text child with special characters',
842842
async render => {
843843
const e = await render(<div>{'foo\rbar\r\nbaz\nqux\u0000'}</div>);
844-
if (render === serverRender || render === streamRender) {
844+
if (
845+
render === serverRender ||
846+
render === streamRender ||
847+
render === clientRenderOnServerString
848+
) {
845849
expect(e.childNodes.length).toBe(1);
846-
// Everything becomes LF when parsed from server HTML.
850+
// Everything becomes LF when parsed from server HTML or hydrated.
847851
// Null character is ignored.
848852
expectNode(e.childNodes[0], TEXT_NODE_TYPE, 'foo\nbar\nbaz\nqux');
849853
} else {
850854
expect(e.childNodes.length).toBe(1);
851-
// Client rendering (or hydration) uses JS value with CR.
855+
// Client rendering uses JS value with CR.
852856
// Null character stays.
853857

854-
//TODO: fixme - This is broken
855858
expectNode(
856859
e.childNodes[0],
857860
TEXT_NODE_TYPE,
@@ -870,21 +873,17 @@ describe('ReactDOMServerIntegration', () => {
870873
{'\r\nbaz\nqux\u0000'}
871874
</div>,
872875
);
873-
if (render === serverRender || render === streamRender) {
876+
if (
877+
render === serverRender ||
878+
render === streamRender ||
879+
render === clientRenderOnServerString
880+
) {
874881
// We have three nodes because there is a comment between them.
875882
expect(e.childNodes.length).toBe(3);
876-
// Everything becomes LF when parsed from server HTML.
883+
// Everything becomes LF when parsed from server HTML or hydrated.
877884
// Null character is ignored.
878885
expectNode(e.childNodes[0], TEXT_NODE_TYPE, 'foo\nbar');
879886
expectNode(e.childNodes[2], TEXT_NODE_TYPE, '\nbaz\nqux');
880-
} else if (render === clientRenderOnServerString) {
881-
// We have three nodes because there is a comment between them.
882-
expect(e.childNodes.length).toBe(3);
883-
// Hydration uses JS value with CR and null character.
884-
885-
//TODO: fixme - This is broken
886-
expectNode(e.childNodes[0], TEXT_NODE_TYPE, 'foo\rbar');
887-
expectNode(e.childNodes[2], TEXT_NODE_TYPE, '\r\nbaz\nqux\u0000');
888887
} else {
889888
expect(e.childNodes.length).toBe(2);
890889
// Client rendering uses JS value with CR and null character.

0 commit comments

Comments
 (0)