34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
|
|
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
|
|
|
|
// weak
|
|
|
|
import { unmountComponentAtNode } from 'react-dom';
|
|
|
|
import { mount as enzymeMount } from 'enzyme';
|
|
|
|
// Generate an enhanced mount function.
|
|
export default function createMount(options1 = {}) {
|
|
const { mount = enzymeMount } = options1,
|
|
other1 = _objectWithoutProperties(options1, ['mount']);
|
|
|
|
const attachTo = window.document.createElement('div');
|
|
attachTo.className = 'app';
|
|
attachTo.setAttribute('id', 'app');
|
|
window.document.body.insertBefore(attachTo, window.document.body.firstChild);
|
|
|
|
const mountWithContext = function mountWithContext(node, options2 = {}) {
|
|
return mount(node, _extends({
|
|
attachTo
|
|
}, other1, options2));
|
|
};
|
|
|
|
mountWithContext.attachTo = attachTo;
|
|
mountWithContext.cleanUp = () => {
|
|
unmountComponentAtNode(attachTo);
|
|
attachTo.parentNode.removeChild(attachTo);
|
|
};
|
|
|
|
return mountWithContext;
|
|
} |