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