shineout
Version:
A components library for React
37 lines (36 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = mountTest;
var _react = _interopRequireDefault(require("react"));
var _react2 = require("@testing-library/react");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function mountTest(Component) {
var renderedComponent;
if ( /*#__PURE__*/_react.default.isValidElement(Component)) {
// 如果传递的是 JSX 元素
renderedComponent = /*#__PURE__*/_react.default.cloneElement(Component);
} else {
// 如果传递的是 React 组件类型
var _ComponentType = Component;
renderedComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ComponentType, {});
}
describe('mount and unmount', function () {
test('component should be mount without errors', function () {
expect(function () {
return (0, _react2.render)(renderedComponent);
}).not.toThrow();
});
test('component should be updated and unmounted without errors', function () {
var _render = (0, _react2.render)(renderedComponent),
unmount = _render.unmount,
rerender = _render.rerender;
expect(function () {
rerender(renderedComponent);
unmount();
}).not.toThrow();
});
});
}