UNPKG

wix-style-react

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