UNPKG

wix-style-react

Version:
72 lines (71 loc) 3.24 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _testUtils = _interopRequireDefault(require("react-dom/test-utils")); var _Tooltip = require("../Tooltip/Tooltip.driver"); var _constants = require("./constants"); var inputAreaDriverFactory = _ref => { var { element, eventTrigger } = _ref; var counterSelector = '[data-hook="counter"]'; var textArea = () => element.querySelector('textarea'); var name = () => textArea().getAttribute('name'); var statusExclamation = () => element.querySelector("[data-hook='".concat(_constants.dataHooks.tooltip, "']")); var getTooltipDriver = dataHook => (0, _Tooltip.tooltipLegacyDriverFactory)({ element: element.querySelector("[data-hook=\"".concat(dataHook, "\"]")), eventTrigger }); return { trigger: (_trigger, event) => _testUtils.default.Simulate[_trigger](textArea(), event), focus: () => textArea().focus(), enterText: text => { textArea().value = text; _testUtils.default.Simulate.change(textArea(), { target: { name: name(), value: text } }); }, getValue: () => textArea().value, getName: name, getPlaceholder: () => textArea().placeholder, getDefaultValue: () => textArea().defaultValue, getRowsCount: () => textArea().rows, getMaxLength: () => textArea().maxLength, getTabIndex: () => textArea().tabIndex, getReadOnly: () => textArea().readOnly, getCursorLocation: () => textArea().selectionStart, getResizable: () => element.hasAttribute(_constants.dataAttr.RESIZABLE), getDisabled: () => element.hasAttribute(_constants.dataAttr.DISABLED) && textArea().disabled, getRequired: () => textArea().required, getHasCounter: () => !!element.querySelectorAll(counterSelector).length, getCounterValue: () => element.querySelector(counterSelector).textContent, hasExclamation: () => !!statusExclamation(), isFocusedStyle: () => element.hasAttribute(_constants.dataAttr.FOCUS), isSizeSmall: () => element.getAttribute(_constants.dataAttr.SIZE) === 'small', isHoveredStyle: () => element.hasAttribute(_constants.dataAttr.HOVER), isFocus: () => document.activeElement === textArea(), exists: () => !!textArea(), getStyle: () => textArea().style, getAriaLabel: () => textArea().getAttribute('aria-label'), getAriaControls: () => textArea().getAttribute('aria-controls'), getAriaDescribedby: () => textArea().getAttribute('aria-describedby'), // Status /** Return true if the given status is displayed */ hasStatus: status => { var statusElement = statusExclamation(); if (statusElement) { return element.getAttribute(_constants.dataAttr.STATUS) === status && statusElement.getAttribute('data-status') === status; } return element.getAttribute(_constants.dataAttr.STATUS) === status; }, /** If there's a status message, returns its text value */ getStatusMessage: () => getTooltipDriver('status-indicator-tooltip').getTooltipText() }; }; var _default = exports.default = inputAreaDriverFactory; //# sourceMappingURL=InputArea.driver.js.map