wix-style-react
Version:
118 lines (90 loc) • 5.28 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.renderTestComponents = exports.createVisualTestsByProp = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var createVisualTestsByProp = function createVisualTestsByProp(_ref) {
var propName = _ref.propName,
propValues = _ref.propValues;
variablesValidation({
propName: propName,
propValues: propValues
});
var describe = {
its: []
};
Object.keys(propValues).forEach(function (propValue) {
describe.its.push(createTestScenario({
propName: propName,
propValue: propValue
}));
});
return describe;
};
exports.createVisualTestsByProp = createVisualTestsByProp;
var createTestScenario = function createTestScenario(_ref2) {
var propName = _ref2.propName,
propValue = _ref2.propValue;
return {
it: propValue,
props: (0, _defineProperty2["default"])({}, propName, propValue)
};
};
var variablesValidation = function variablesValidation(_ref3) {
var propName = _ref3.propName,
propValues = _ref3.propValues;
var propNameError = 'invalid prop name';
var propValuesError = 'invalid prop values';
if (!propName) {
throw new Error(propNameError);
}
if (!propValues || !Object.keys(propValues).length) {
throw new Error(propValuesError);
}
};
var renderTestComponents = function renderTestComponents(_ref4, componentToRender) {
var its = _ref4.its;
return its.map(function (_ref5, i) {
var props = _ref5.props;
return /*#__PURE__*/_react["default"].createElement(VisualTestComponent, {
key: i
}, /*#__PURE__*/_react["default"].cloneElement(componentToRender, props));
});
};
exports.renderTestComponents = renderTestComponents;
var VisualTestComponent = /*#__PURE__*/function (_PureComponent) {
(0, _inherits2["default"])(VisualTestComponent, _PureComponent);
var _super = _createSuper(VisualTestComponent);
function VisualTestComponent() {
(0, _classCallCheck2["default"])(this, VisualTestComponent);
return _super.apply(this, arguments);
}
(0, _createClass2["default"])(VisualTestComponent, [{
key: "render",
value: function render() {
return /*#__PURE__*/_react["default"].createElement("div", {
style: {
margin: '5px 0'
}
}, this.props.children);
}
}]);
return VisualTestComponent;
}(_react.PureComponent);
(0, _defineProperty2["default"])(VisualTestComponent, "propTypes", {
children: _propTypes["default"].node
});