UNPKG

wix-style-react

Version:
104 lines (91 loc) 3.66 kB
'use strict'; 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;