wix-style-react
Version:
421 lines (352 loc) • 12.8 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
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) { _defineProperty(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; }
import _regeneratorRuntime from "@babel/runtime/regenerator";
import { baseUniDriverFactory, findByHook, findByHookAtIndex, countByHook } from '../../test/utils/unidriver';
import { selectorUniDriverFactory } from '../Selector/Selector.uni.driver';
import { editableRowUniDriverFactory } from './EditableRow/EditableRow.uni.driver';
import { dataHooks } from './constants';
export var editableSelectorUniDriverFactory = function editableSelectorUniDriverFactory(base, body) {
var newRowButton = function newRowButton() {
return findByHook(base, dataHooks.newRowButtonText);
};
var selectorRowDriver = /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(index) {
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.t0 = selectorUniDriverFactory;
_context.next = 3;
return findByHookAtIndex(base, 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 findByHookAtIndex(base, dataHooks.editItem, index);
};
var deleteButtonAt = function deleteButtonAt(index) {
return findByHookAtIndex(base, dataHooks.deleteItem, index);
};
var editableRowDriver = function editableRowDriver() {
return editableRowUniDriverFactory(findByHook(base, dataHooks.editRowWrapper), body);
};
var isEditRowActive = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return countByHook(base, 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({}, baseUniDriverFactory(base)), {}, {
/**
* Gets a list of selector drivers
* @returns {Promise<SelectorUniDriver[]>}
*/
items: function items() {
return base.$$("[data-hook=\"".concat(dataHooks.item, "\"]")).map(function (selector) {
return 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 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
return _regeneratorRuntime.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 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
return _regeneratorRuntime.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 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(label) {
return _regeneratorRuntime.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 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(index, label) {
var editButton;
return _regeneratorRuntime.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 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(index) {
var deleteButton;
return _regeneratorRuntime.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 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(index) {
return _regeneratorRuntime.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(dataHooks.title, "\"] > span")).text();
},
/**
* Toggles selector of the item at index
* @param {number} index Item index
* @returns {Promise<void>}
*/
toggleItem: function () {
var _toggleItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(index) {
return _regeneratorRuntime.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;
}()
});
};