UNPKG

@wix/design-system

Version:

@wix/design-system

60 lines (59 loc) 2.97 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.editableSelectorDriverFactory = void 0; var _Selector = require("../Selector/Selector.driver"); var _EditableRow = require("./EditableRow/EditableRow.driver"); var _testUtils = _interopRequireDefault(require("react-dom/test-utils")); var _deprecationTestkitLog = require("../utils/deprecationTestkitLog"); var editableSelectorDriverFactory = _ref => { var element = _ref.element, eventTrigger = _ref.eventTrigger; (0, _deprecationTestkitLog.deprecationTestkitLog)('editableSelectorTestkitFactory legacy testkit is deprecated and will be removed in next major release. Please use the EditableSelectorTestkit unidriver testkit instead.'); var newRowButton = () => element.querySelector('[data-hook="new-row-button-text"]'); var selectorRowDriver = index => (0, _Selector.selectorDriverFactory)({ 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.editableRowDriverFactory)({ 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.selectorDriverFactory)({ 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() }; }; exports.editableSelectorDriverFactory = editableSelectorDriverFactory; //# sourceMappingURL=EditableSelector.driver.js.map