Skip to content

Commit a2eaa21

Browse files
authored
Convert dangerouslySetInnerHTML-test to createRoot (#28008)
Convert dangerouslySetInnerHTML-test to createRoot
1 parent 24d1c6f commit a2eaa21

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

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

+24-21
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,21 @@
1010
'use strict';
1111

1212
const React = require('react');
13-
const ReactDOM = require('react-dom');
13+
const ReactDOMClient = require('react-dom/client');
14+
15+
const act = require('internal-test-utils').act;
1416

1517
describe('dangerouslySetInnerHTML', () => {
1618
describe('when the node has innerHTML property', () => {
17-
it('sets innerHTML on it', () => {
19+
it('sets innerHTML on it', async () => {
1820
const container = document.createElement('div');
19-
const node = ReactDOM.render(
20-
<div dangerouslySetInnerHTML={{__html: '<h1>Hello</h1>'}} />,
21-
container,
22-
);
23-
expect(node.innerHTML).toBe('<h1>Hello</h1>');
21+
const root = ReactDOMClient.createRoot(container);
22+
await act(() => {
23+
root.render(
24+
<div dangerouslySetInnerHTML={{__html: '<h1>Hello</h1>'}} />,
25+
);
26+
});
27+
expect(container.firstChild.innerHTML).toBe('<h1>Hello</h1>');
2428
});
2529
});
2630

@@ -56,39 +60,38 @@ describe('dangerouslySetInnerHTML', () => {
5660
});
5761

5862
// @gate !disableIEWorkarounds
59-
it('sets innerHTML on it', () => {
63+
it('sets innerHTML on it', async () => {
6064
const html = '<circle></circle>';
6165
const container = document.createElementNS(
6266
'http://www.w3.org/2000/svg',
6367
'svg',
6468
);
65-
ReactDOM.render(
66-
<g dangerouslySetInnerHTML={{__html: html}} />,
67-
container,
68-
);
69+
const root = ReactDOMClient.createRoot(container);
70+
await act(() => {
71+
root.render(<g dangerouslySetInnerHTML={{__html: html}} />);
72+
});
6973
const circle = container.firstChild.firstChild;
7074
expect(circle.tagName).toBe('circle');
7175
});
7276

7377
// @gate !disableIEWorkarounds
74-
it('clears previous children', () => {
78+
it('clears previous children', async () => {
7579
const firstHtml = '<rect></rect>';
7680
const secondHtml = '<circle></circle>';
7781

7882
const container = document.createElementNS(
7983
'http://www.w3.org/2000/svg',
8084
'svg',
8185
);
82-
ReactDOM.render(
83-
<g dangerouslySetInnerHTML={{__html: firstHtml}} />,
84-
container,
85-
);
86+
const root = ReactDOMClient.createRoot(container);
87+
await act(() => {
88+
root.render(<g dangerouslySetInnerHTML={{__html: firstHtml}} />);
89+
});
8690
const rect = container.firstChild.firstChild;
8791
expect(rect.tagName).toBe('rect');
88-
ReactDOM.render(
89-
<g dangerouslySetInnerHTML={{__html: secondHtml}} />,
90-
container,
91-
);
92+
await act(() => {
93+
root.render(<g dangerouslySetInnerHTML={{__html: secondHtml}} />);
94+
});
9295
const circle = container.firstChild.firstChild;
9396
expect(circle.tagName).toBe('circle');
9497
});

0 commit comments

Comments
 (0)