mirror of
https://github.com/wu736139669/ASHEBShop-h5.git
synced 2026-10-07 19:26:23 +00:00
33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
import ReactDOM from 'react-dom';
|
|
|
|
/**
|
|
* Helper method for testing components that may use Portal and thus require cleanup.
|
|
* This helper method renders components to a transient node that is destroyed after the test completes.
|
|
* Note that rendering twice within the same test method will update the same element (rather than recreate it).
|
|
*/
|
|
export function render(markup) {
|
|
if (!render._mountNode) {
|
|
render._mountNode = document.createElement('div');
|
|
|
|
// Unless we attach the mount-node to body, getBoundingClientRect() won't work
|
|
document.body.appendChild(render._mountNode);
|
|
|
|
afterEach(render.unmount);
|
|
}
|
|
|
|
return ReactDOM.render(markup, render._mountNode);
|
|
}
|
|
|
|
/**
|
|
* The render() method auto-unmounts components after each test has completed.
|
|
* Use this method manually to test the componentWillUnmount() lifecycle method.
|
|
*/
|
|
render.unmount = function () {
|
|
if (render._mountNode) {
|
|
ReactDOM.unmountComponentAtNode(render._mountNode);
|
|
|
|
document.body.removeChild(render._mountNode);
|
|
|
|
render._mountNode = null;
|
|
}
|
|
}; |