wix-style-react
Version:
wix-style-react
104 lines (91 loc) • 3.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Selector = require('../Selector/Selector.driver');
var _Selector2 = _interopRequireDefault(_Selector);
var _EditableRow = require('./EditableRow/EditableRow.driver');
var _EditableRow2 = _interopRequireDefault(_EditableRow);
var _testUtils = require('react-dom/test-utils');
var _testUtils2 = _interopRequireDefault(_testUtils);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var editableSelectorDriverFactory = function editableSelectorDriverFactory(_ref) {
var element = _ref.element;
var newRowButton = function newRowButton() {
return element.querySelector('[data-hook="new-row-button-text"]');
};
var selectorRowDriver = function selectorRowDriver(index) {
return (0, _Selector2.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, _EditableRow2.default)({
element: element.querySelector('[data-hook="edit-row-wrapper"]'),
wrapper: element
});
};
var isEditRowActive = function isEditRowActive() {
return !!element.querySelectorAll('[data-hook="edit-row-wrapper"]').length;
};
return {
items: function items() {
return [].concat(_toConsumableArray(element.querySelectorAll('[data-hook="editable-selector-item"]'))).map(function (selector) {
return (0, _Selector2.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) {
_testUtils2.default.Simulate.click(newRowButton());
editableRowDriver().setText(label);
},
editRow: function editRow(index, label) {
_testUtils2.default.Simulate.click(editButtonAt(index));
editableRowDriver().setText(label);
},
deleteRow: function deleteRow(index) {
_testUtils2.default.Simulate.click(deleteButtonAt(index));
},
startAdding: function startAdding() {
return _testUtils2.default.Simulate.click(newRowButton());
},
startEditing: function startEditing(index) {
return _testUtils2.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();
}
};
};
exports.default = editableSelectorDriverFactory;