wix-style-react
Version:
wix-style-react
114 lines (105 loc) • 3.68 kB
JavaScript
;
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;