UNPKG

wix-style-react

Version:
114 lines (105 loc) 3.68 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _testUtils = require('react-dom/test-utils'); var _testUtils2 = _interopRequireDefault(_testUtils); var _InputArea = require('./InputArea.scss'); var _InputArea2 = _interopRequireDefault(_InputArea); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var inputAreaDriverFactory = function inputAreaDriverFactory(_ref) { var element = _ref.element; var textAreaElement = element && element.childNodes[0]; var textArea = element.querySelector('textarea'); var name = textArea.getAttribute('name'); var counterSelector = '[data-hook="counter"]'; return { trigger: function trigger(_trigger, event) { return _testUtils2.default.Simulate[_trigger](textArea, event); }, focus: function focus() { return textArea.focus(); }, enterText: function enterText(text) { return _testUtils2.default.Simulate.change(textArea, { target: { name: name, value: text } }); }, getValue: function getValue() { return textArea.value; }, getName: function getName() { return 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; }, getResizable: function getResizable() { return textAreaElement.classList.contains(_InputArea2.default.resizable); }, getDisabled: function getDisabled() { return textAreaElement.classList.contains(_InputArea2.default.disabled) && textArea.disabled; }, getHasCounter: function getHasCounter() { return !!element.querySelectorAll(counterSelector).length; }, getCounterValue: function getCounterValue() { return element.querySelector(counterSelector).textContent; }, hasExclamation: function hasExclamation() { return element.querySelectorAll('.' + _InputArea2.default.exclamation).length === 1; }, hasError: function hasError() { return textAreaElement.classList.contains(_InputArea2.default.hasError); }, isFocusedStyle: function isFocusedStyle() { return textAreaElement.classList.contains(_InputArea2.default.hasFocus); }, isHoveredStyle: function isHoveredStyle() { return textAreaElement.classList.contains(_InputArea2.default.hasHover); }, isOfStyle: function isOfStyle(style) { return textAreaElement.classList.contains(_InputArea2.default['theme-' + style]); }, 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'); }, getTooltipDataHook: function getTooltipDataHook() { return 'inputArea-tooltip'; }, getTooltipElement: function getTooltipElement() { return element; } }; }; exports.default = inputAreaDriverFactory;