wix-style-react
Version:
111 lines (94 loc) • 3.65 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _Selector = _interopRequireDefault(require("../Selector/Selector.driver"));
var _EditableRow = _interopRequireDefault(require("./EditableRow/EditableRow.driver"));
var _testUtils = _interopRequireDefault(require("react-dom/test-utils"));
var editableSelectorDriverFactory = function editableSelectorDriverFactory(_ref) {
var element = _ref.element,
eventTrigger = _ref.eventTrigger;
var newRowButton = function newRowButton() {
return element.querySelector('[data-hook="new-row-button-text"]');
};
var selectorRowDriver = function selectorRowDriver(index) {
return (0, _Selector["default"])({
element: element.querySelectorAll('[data-hook="editable-selector-item"]')[index],
wrapper: element
});
};
var editButtonAt = function editButtonAt(index) {
return element.querySelectorAll('[data-hook="edit-item"]')[index];
};
var deleteButtonAt = function deleteButtonAt(index) {
return element.querySelectorAll('[data-hook="delete-item"]').item(index);
};
var editableRowDriver = function editableRowDriver() {
return (0, _EditableRow["default"])({
element: element.querySelector('[data-hook="edit-row-wrapper"]'),
wrapper: element,
eventTrigger: eventTrigger
});
};
var isEditRowActive = function isEditRowActive() {
return !!element.querySelectorAll('[data-hook="edit-row-wrapper"]').length;
};
return {
items: function items() {
return (0, _toConsumableArray2["default"])(element.querySelectorAll('[data-hook="editable-selector-item"]')).map(function (selector) {
return (0, _Selector["default"])({
element: selector
});
});
},
exists: function exists() {
return !!element;
},
isEditing: function isEditing() {
return isEditRowActive();
},
isEditingRow: function isEditingRow() {
return !!(isEditRowActive() && editableRowDriver().getText());
},
isAddingRow: function isAddingRow() {
return !!(isEditRowActive() && !editableRowDriver().getText());
},
newRowButton: newRowButton,
deleteButtonAt: deleteButtonAt,
editButtonAt: editButtonAt,
addNewRow: function addNewRow(label) {
_testUtils["default"].Simulate.click(newRowButton());
editableRowDriver().setText(label);
},
editRow: function editRow(index, label) {
_testUtils["default"].Simulate.click(editButtonAt(index));
editableRowDriver().setText(label);
},
deleteRow: function deleteRow(index) {
_testUtils["default"].Simulate.click(deleteButtonAt(index));
},
startAdding: function startAdding() {
return _testUtils["default"].Simulate.click(newRowButton());
},
startEditing: function startEditing(index) {
return _testUtils["default"].Simulate.click(editButtonAt(index));
},
clickApprove: function clickApprove() {
return editableRowDriver().clickApprove();
},
clickCancel: function clickCancel() {
return editableRowDriver().clickCancel();
},
title: function title() {
return element.querySelector('[data-hook="editable-selector-title"] > span').textContent;
},
toggleItem: function toggleItem(index) {
return selectorRowDriver(index).toggle();
}
};
};
var _default = editableSelectorDriverFactory;
exports["default"] = _default;