UNPKG

wix-style-react

Version:
111 lines (94 loc) 3.65 kB
"use strict"; 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;