UNPKG

wix-style-react

Version:
60 lines (59 loc) 2.63 kB
"use strict"; 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