UNPKG

wix-style-react

Version:
384 lines (312 loc) • 12.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.checkboxUniDriverFactory = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _unidriver = require("../../test/utils/unidriver"); var _testUtils = require("react-dom/test-utils"); var _TextUni = require("../Text/Text.uni.driver"); var _TooltipUni = require("../Tooltip/Tooltip.uni.driver"); var _constants = require("./constants"); var DATA_ATTR = _interopRequireWildcard(require("./DataAttr")); 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var getDataCheckType = function getDataCheckType(base) { return base.attr(DATA_ATTR.DATA_CHECK_TYPE); }; var checkboxUniDriverFactory = function checkboxUniDriverFactory(base, body) { var reactBase = (0, _unidriver.ReactBase)(base); var labelTextDriver = (0, _TextUni.textUniDriverFactory)(base.$("[data-hook=\"".concat(_constants.dataHooks.children, "\"]"))); var input = function input() { return base.$('input'); }; var isChecked = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return getDataCheckType(base); case 2: _context.t0 = _context.sent; _context.t1 = DATA_ATTR.CHECK_TYPES.CHECKED; return _context.abrupt("return", _context.t0 === _context.t1); case 5: case "end": return _context.stop(); } } }, _callee); })); return function isChecked() { return _ref.apply(this, arguments); }; }(); var getTooltipDriver = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", (0, _TooltipUni.tooltipDriverFactory)(base.$("[data-hook=\"".concat(_constants.dataHooks.boxTooltip, "\"]")), body)); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return function getTooltipDriver() { return _ref2.apply(this, arguments); }; }(); var getTooltipMessage = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { var tooltipDriver; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.prev = 0; _context3.next = 3; return getTooltipDriver(); case 3: tooltipDriver = _context3.sent; return _context3.abrupt("return", tooltipDriver.getTooltipText()); case 7: _context3.prev = 7; _context3.t0 = _context3["catch"](0); throw new Error('Failed getting checkbox error message'); case 10: case "end": return _context3.stop(); } } }, _callee3, null, [[0, 7]]); })); return function getTooltipMessage() { return _ref3.apply(this, arguments); }; }(); var isTooltipEnabled = /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var tooltipDriver; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return getTooltipDriver(); case 2: tooltipDriver = _context4.sent; _context4.next = 5; return tooltipDriver.mouseEnter(); case 5: _context4.next = 7; return tooltipDriver.tooltipExists(); case 7: return _context4.abrupt("return", _context4.sent); case 8: case "end": return _context4.stop(); } } }, _callee4); })); return function isTooltipEnabled() { return _ref4.apply(this, arguments); }; }(); return _objectSpread(_objectSpread({}, (0, _unidriver.baseUniDriverFactory)(base)), {}, { /** * Click on the component root element. * @returns {Promise<void>} */ click: function () { var _click = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: if (!(base.type === 'react')) { _context5.next = 13; break; } _context5.t0 = _testUtils.Simulate; _context5.next = 4; return input().getNative(); case 4: _context5.t1 = _context5.sent; _context5.next = 7; return isChecked(); case 7: _context5.t2 = !_context5.sent; _context5.t3 = { checked: _context5.t2 }; _context5.t4 = { target: _context5.t3 }; _context5.t0.change.call(_context5.t0, _context5.t1, _context5.t4); _context5.next = 14; break; case 13: return _context5.abrupt("return", base.click()); case 14: case "end": return _context5.stop(); } } }, _callee5); })); function click() { return _click.apply(this, arguments); } return click; }(), /** * focuses the component. * @returns {Void} */ focus: function focus() { return reactBase.focus(); }, /** * Checks whether the checkbox is focused * @returns {Promise<boolean>} */ isFocused: function isFocused() { return reactBase.isFocus(); }, /** * blurs off the element. * @returns {Void} */ blur: function blur() { return reactBase.blur(); }, /** * Checks whether the checkbox is checked. * @returns {Promise<boolean>} */ isChecked: isChecked, /** * Checks whether the checkbox is disabled. * @returns {Promise<boolean>} */ isDisabled: function () { var _isDisabled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return base.attr(DATA_ATTR.DATA_DISABLED); case 2: _context6.t0 = _context6.sent; return _context6.abrupt("return", _context6.t0 === 'true'); case 4: case "end": return _context6.stop(); } } }, _callee6); })); function isDisabled() { return _isDisabled.apply(this, arguments); } return isDisabled; }(), /** * Checks whether the checkbox's value is indeterminate. * @returns {Promise<boolean>} */ isIndeterminate: function () { var _isIndeterminate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() { return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return getDataCheckType(base); case 2: _context7.t0 = _context7.sent; _context7.t1 = DATA_ATTR.CHECK_TYPES.INDETERMINATE; return _context7.abrupt("return", _context7.t0 === _context7.t1); case 5: case "end": return _context7.stop(); } } }, _callee7); })); function isIndeterminate() { return _isIndeterminate.apply(this, arguments); } return isIndeterminate; }(), /** * Checks whether the checkbox's tooltip is enabled. * @returns {Promise<boolean>} */ isTooltipEnabled: isTooltipEnabled, /** * Checks whether the checkbox hasError prop is true. * @returns {Promise<boolean>} */ hasError: function () { var _hasError = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() { return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return base.attr(DATA_ATTR.DATA_HAS_ERROR); case 2: _context8.t0 = _context8.sent; return _context8.abrupt("return", _context8.t0 === 'true'); case 4: case "end": return _context8.stop(); } } }, _callee8); })); function hasError() { return _hasError.apply(this, arguments); } return hasError; }(), /** * Gets the tooltip message. * @returns {Promise<string>} * @deprecated */ getTooltipContent: getTooltipMessage, /** * Gets the error message. * @returns {Promise<string>} * @deprecated */ getErrorMessage: getTooltipMessage, /** * Gets checkbox's label. * @returns {Promise<string>} */ getLabel: labelTextDriver.getText, /** * Gets the label's size. * @returns {Promise<'tiny' | 'small' | 'medium'>} */ getLabelSize: labelTextDriver.getSize }); }; exports.checkboxUniDriverFactory = checkboxUniDriverFactory;