Skip to content

Commit 98d59fd

Browse files
committed
Add failing tests to highlight issue #11789
1 parent f72043a commit 98d59fd

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,18 @@ describe('ReactDOMTextComponent', () => {
197197
expect(el.textContent).toBe('');
198198
});
199199

200+
it('can reconcile text from pre-rendered markup using dangerouslySetInnerHTML and an object with toString', () => {
201+
const HelloObject = { toString: () => "Hello" };
202+
const el = document.createElement('div');
203+
let reactEl = (
204+
<p dangerouslySetInnerHTML={{__html: HelloObject }} />
205+
);
206+
el.innerHTML = ReactDOMServer.renderToString(reactEl);
207+
208+
ReactDOM.hydrate(reactEl, el);
209+
expect(el.textContent).toBe('Hello');
210+
});
211+
200212
xit('can reconcile text arbitrarily split into multiple nodes', () => {
201213
const el = document.createElement('div');
202214
let inst = ReactDOM.render(

packages/react-dom/src/client/__tests__/dangerouslySetInnerHTML-test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,14 @@ describe('dangerouslySetInnerHTML', () => {
9191
expect(circle.tagName).toBe('circle');
9292
});
9393
});
94+
95+
it('when rendering an object with a toString method', () => {
96+
const container = document.createElement('div');
97+
const HelloObject = {toString: () => 'Hello'};
98+
const node = ReactDOM.render(
99+
<div dangerouslySetInnerHTML={{__html: HelloObject}} />,
100+
container,
101+
);
102+
expect(node.textContent).toBe('Hello');
103+
});
94104
});

0 commit comments

Comments
 (0)