mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Add a test for nested portals (#8416)
This commit is contained in:
@@ -490,6 +490,7 @@ src/renderers/dom/fiber/__tests__/ReactDOMFiber-test.js
|
||||
* finds the first child even when fragment is nested
|
||||
* finds the first child even when first child renders null
|
||||
* should render portal children
|
||||
* should render nested portals
|
||||
* should pass portal context when rendering subtree elsewhere
|
||||
* should update portal context if it changes due to setState
|
||||
* should update portal context if it changes due to re-render
|
||||
|
||||
@@ -280,6 +280,39 @@ describe('ReactDOMFiber', () => {
|
||||
]);
|
||||
});
|
||||
|
||||
it('should render nested portals', () => {
|
||||
var portalContainer1 = document.createElement('div');
|
||||
var portalContainer2 = document.createElement('div');
|
||||
var portalContainer3 = document.createElement('div');
|
||||
|
||||
ReactDOM.render([
|
||||
<div>normal[0]</div>,
|
||||
ReactDOM.unstable_createPortal([
|
||||
<div>portal1[0]</div>,
|
||||
ReactDOM.unstable_createPortal(
|
||||
<div>portal2[0]</div>,
|
||||
portalContainer2
|
||||
),
|
||||
ReactDOM.unstable_createPortal(
|
||||
<div>portal3[0]</div>,
|
||||
portalContainer3
|
||||
),
|
||||
<div>portal1[1]</div>,
|
||||
], portalContainer1),
|
||||
<div>normal[1]</div>,
|
||||
], container);
|
||||
expect(portalContainer1.innerHTML).toBe('<div>portal1[0]</div><div>portal1[1]</div>');
|
||||
expect(portalContainer2.innerHTML).toBe('<div>portal2[0]</div>');
|
||||
expect(portalContainer3.innerHTML).toBe('<div>portal3[0]</div>');
|
||||
expect(container.innerHTML).toBe('<div>normal[0]</div><div>normal[1]</div>');
|
||||
|
||||
ReactDOM.unmountComponentAtNode(container);
|
||||
expect(portalContainer1.innerHTML).toBe('');
|
||||
expect(portalContainer2.innerHTML).toBe('');
|
||||
expect(portalContainer3.innerHTML).toBe('');
|
||||
expect(container.innerHTML).toBe('');
|
||||
});
|
||||
|
||||
it('should pass portal context when rendering subtree elsewhere', () => {
|
||||
var portalContainer = document.createElement('div');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user