Skip to content

Commit c75f47f

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

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,16 @@ 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 = <p dangerouslySetInnerHTML={{__html: HelloObject}} />;
204+
el.innerHTML = ReactDOMServer.renderToString(reactEl);
205+
206+
ReactDOM.hydrate(reactEl, el);
207+
expect(el.textContent).toBe('Hello');
208+
});
209+
200210
xit('can reconcile text arbitrarily split into multiple nodes', () => {
201211
const el = document.createElement('div');
202212
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)