UNPKG

wix-style-react

Version:
438 lines (359 loc) • 13.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.editableSelectorUniDriverFactory = 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 _SelectorUni = require("../Selector/Selector.uni.driver"); var _EditableRowUni = require("./EditableRow/EditableRow.uni.driver"); var _constants = require("./constants"); 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 editableSelectorUniDriverFactory = function editableSelectorUniDriverFactory(base, body) { var newRowButton = function newRowButton() { return (0, _unidriver.findByHook)(base, _constants.dataHooks.newRowButtonText); }; var selectorRowDriver = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(index) { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.t0 = _SelectorUni.selectorUniDriverFactory; _context.next = 3; return (0, _unidriver.findByHookAtIndex)(base, _constants.dataHooks.item, index); case 3: _context.t1 = _context.sent; _context.t2 = body; return _context.abrupt("return", (0, _context.t0)(_context.t1, _context.t2)); case 6: case "end": return _context.stop(); } } }, _callee); })); return function selectorRowDriver(_x) { return _ref.apply(this, arguments); }; }(); var editButtonAt = function editButtonAt(index) { return (0, _unidriver.findByHookAtIndex)(base, _constants.dataHooks.editItem, index); }; var deleteButtonAt = function deleteButtonAt(index) { return (0, _unidriver.findByHookAtIndex)(base, _constants.dataHooks.deleteItem, index); }; var editableRowDriver = function editableRowDriver() { return (0, _EditableRowUni.editableRowUniDriverFactory)((0, _unidriver.findByHook)(base, _constants.dataHooks.editRowWrapper), body); }; var isEditRowActive = /*#__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: _context2.next = 2; return (0, _unidriver.countByHook)(base, _constants.dataHooks.editRowWrapper); case 2: return _context2.abrupt("return", !!_context2.sent); case 3: case "end": return _context2.stop(); } } }, _callee2); })); return function isEditRowActive() { return _ref2.apply(this, arguments); }; }(); return _objectSpread(_objectSpread({}, (0, _unidriver.baseUniDriverFactory)(base)), {}, { /** * Gets a list of selector drivers * @returns {Promise<SelectorUniDriver[]>} */ items: function items() { return base.$$("[data-hook=\"".concat(_constants.dataHooks.item, "\"]")).map(function (selector) { return (0, _SelectorUni.selectorUniDriverFactory)(selector, body); }); }, /** * Checks whether editing mode is active * @returns {Promise<boolean>} */ isEditing: function isEditing() { return isEditRowActive(); }, /** * Checks wheter any row is being edited * @returns {Promise<boolean>} */ isEditingRow: function () { var _isEditingRow = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return isEditRowActive(); case 2: _context3.t0 = _context3.sent; if (!_context3.t0) { _context3.next = 7; break; } _context3.next = 6; return editableRowDriver().getText(); case 6: _context3.t0 = _context3.sent; case 7: return _context3.abrupt("return", !!_context3.t0); case 8: case "end": return _context3.stop(); } } }, _callee3); })); function isEditingRow() { return _isEditingRow.apply(this, arguments); } return isEditingRow; }(), /** * Checks wheter any row is being added * @returns {Promise<boolean>} */ isAddingRow: function () { var _isAddingRow = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return isEditRowActive(); case 2: _context4.t0 = _context4.sent; if (!_context4.t0) { _context4.next = 7; break; } _context4.next = 6; return editableRowDriver().getText(); case 6: _context4.t0 = !_context4.sent; case 7: return _context4.abrupt("return", !!_context4.t0); case 8: case "end": return _context4.stop(); } } }, _callee4); })); function isAddingRow() { return _isAddingRow.apply(this, arguments); } return isAddingRow; }(), /** * Gets the new row button wrapper * @returns {Promise<HTMLElement>} */ newRowButton: newRowButton, /** * Gets the delete row button wrapper at index * @param {number} index Item index * @returns {Promise<HTMLElement>} */ deleteButtonAt: deleteButtonAt, /** * Gets the edit row button wrapper at index * @param {number} index Item index * @returns {Promise<HTMLElement>} */ editButtonAt: editButtonAt, /** * Adds new row and sets input value * @param {string} label Text to input * @returns {Promise<void>} */ addNewRow: function () { var _addNewRow = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(label) { return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return newRowButton().click(); case 2: return _context5.abrupt("return", editableRowDriver().setText(label)); case 3: case "end": return _context5.stop(); } } }, _callee5); })); function addNewRow(_x2) { return _addNewRow.apply(this, arguments); } return addNewRow; }(), /** * Edits row and sets input value * @param {number} index Item index * @param {string} label Text to input * @returns {Promise<void>} */ editRow: function () { var _editRow = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(index, label) { var editButton; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return editButtonAt(index); case 2: editButton = _context6.sent; _context6.next = 5; return editButton.hover(); case 5: _context6.next = 7; return editButton.click(); case 7: return _context6.abrupt("return", editableRowDriver().setText(label)); case 8: case "end": return _context6.stop(); } } }, _callee6); })); function editRow(_x3, _x4) { return _editRow.apply(this, arguments); } return editRow; }(), /** * Clicks delete button at index * @param {number} index Item index * @returns {Promise<void>} */ deleteRow: function () { var _deleteRow = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(index) { var deleteButton; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return deleteButtonAt(index); case 2: deleteButton = _context7.sent; _context7.next = 5; return deleteButton.hover(); case 5: return _context7.abrupt("return", deleteButton.click()); case 6: case "end": return _context7.stop(); } } }, _callee7); })); function deleteRow(_x5) { return _deleteRow.apply(this, arguments); } return deleteRow; }(), /** * Clicks add new row button * @returns {Promise<void>} */ startAdding: function startAdding() { return newRowButton().click(); }, /** * Clicks edit row button at index * @param {number} index Item index * @returns {Promise<void>} */ startEditing: function () { var _startEditing = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(index) { return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return editButtonAt(index); case 2: return _context8.abrupt("return", _context8.sent.click()); case 3: case "end": return _context8.stop(); } } }, _callee8); })); function startEditing(_x6) { return _startEditing.apply(this, arguments); } return startEditing; }(), /** * Clicks appove button * @returns {Promise<void>} */ clickApprove: function clickApprove() { return editableRowDriver().clickApprove(); }, /** * Clicks cancel button * @returns {Promise<void>} */ clickCancel: function clickCancel() { return editableRowDriver().clickCancel(); }, /** * Gets the title * @returns {Promise<string>} */ title: function title() { return base.$("[data-hook=\"".concat(_constants.dataHooks.title, "\"] > span")).text(); }, /** * Toggles selector of the item at index * @param {number} index Item index * @returns {Promise<void>} */ toggleItem: function () { var _toggleItem = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(index) { return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return selectorRowDriver(index); case 2: return _context9.abrupt("return", _context9.sent.toggle()); case 3: case "end": return _context9.stop(); } } }, _callee9); })); function toggleItem(_x7) { return _toggleItem.apply(this, arguments); } return toggleItem; }() }); }; exports.editableSelectorUniDriverFactory = editableSelectorUniDriverFactory;