UNPKG

wix-style-react

Version:
609 lines (511 loc) • 20.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ReactBase = ReactBase; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _testUtils = require("react-dom/test-utils"); var _vanilla = require("wix-ui-test-utils/vanilla"); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** *Temporary workaround for implementing missing Unidriver methods in React/DOM only. * * @param {UniDriver} base */ function ReactBase(base) { var htmlElement = function htmlElement() { if (base.type !== 'react') { throw new Error('Supported only in React/DOM.'); } return base.getNative(); }; var pendingUnidriverFeatures = { isFocus: function () { var _isFocus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.t0 = document.activeElement; _context.next = 3; return htmlElement(); case 3: _context.t1 = _context.sent; return _context.abrupt("return", _context.t0 === _context.t1); case 5: case "end": return _context.stop(); } } }, _callee); })); function isFocus() { return _isFocus.apply(this, arguments); } return isFocus; }(), paste: function () { var _paste = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.t0 = _testUtils.Simulate; _context2.next = 3; return htmlElement(); case 3: _context2.t1 = _context2.sent; return _context2.abrupt("return", _context2.t0.paste.call(_context2.t0, _context2.t1)); case 5: case "end": return _context2.stop(); } } }, _callee2); })); function paste() { return _paste.apply(this, arguments); } return paste; }(), select: function () { var _select = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(selectedIndex) { var element; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return htmlElement(); case 2: element = _context3.sent; if (!element.disabled) { _testUtils.Simulate.change(element, { target: { selectedIndex: selectedIndex, value: '' } }); } case 4: case "end": return _context3.stop(); } } }, _callee3); })); function select(_x) { return _select.apply(this, arguments); } return select; }() }; var unidriverRejected = { // Event Simulation focus: function () { var _focus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var elm; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return htmlElement(); case 2: elm = _context4.sent; elm.focus(); _testUtils.Simulate.focus(elm); // TODO: Is this redundant? case 5: case "end": return _context4.stop(); } } }, _callee4); })); function focus() { return _focus.apply(this, arguments); } return focus; }(), blur: function () { var _blur = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { var elm; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return htmlElement(); case 2: elm = _context5.sent; elm.blur(); _testUtils.Simulate.blur(elm); // TODO: Is this redundant? case 5: case "end": return _context5.stop(); } } }, _callee5); })); function blur() { return _blur.apply(this, arguments); } return blur; }() }; // Instead of using this methods you should use proper data hooks // and data attributes the query the required elements var deprecated = { _DEPRECATED_getClassList: function () { var _DEPRECATED_getClassList2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return htmlElement(); case 2: return _context6.abrupt("return", _context6.sent.classList); case 3: case "end": return _context6.stop(); } } }, _callee6); })); function _DEPRECATED_getClassList() { return _DEPRECATED_getClassList2.apply(this, arguments); } return _DEPRECATED_getClassList; }(), /** @returns {array} array of children unidrivers */ _DEPRECATED_children: function () { var _DEPRECATED_children2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() { var ch, uniChildren, i; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return htmlElement(); case 2: ch = _context7.sent.children; uniChildren = []; for (i = 0; i < ch.length; i++) { uniChildren.push((0, _vanilla.reactUniDriver)(ch[i])); } return _context7.abrupt("return", uniChildren); case 6: case "end": return _context7.stop(); } } }, _callee7); })); function _DEPRECATED_children() { return _DEPRECATED_children2.apply(this, arguments); } return _DEPRECATED_children; }() }; var shouldBePrivate = { wheel: function () { var _wheel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(eventData) { return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.t0 = _testUtils.Simulate; _context8.next = 3; return htmlElement(); case 3: _context8.t1 = _context8.sent; _context8.t2 = eventData; return _context8.abrupt("return", _context8.t0.wheel.call(_context8.t0, _context8.t1, _context8.t2)); case 6: case "end": return _context8.stop(); } } }, _callee8); })); function wheel(_x2) { return _wheel.apply(this, arguments); } return wheel; }(), keyUp: function () { var _keyUp = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(eventData) { return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.t0 = _testUtils.Simulate; _context9.next = 3; return htmlElement(); case 3: _context9.t1 = _context9.sent; _context9.t2 = eventData; return _context9.abrupt("return", _context9.t0.keyUp.call(_context9.t0, _context9.t1, _context9.t2)); case 6: case "end": return _context9.stop(); } } }, _callee9); })); function keyUp(_x3) { return _keyUp.apply(this, arguments); } return keyUp; }(), keyDown: function () { var _keyDown = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(eventData) { return _regenerator["default"].wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.t0 = _testUtils.Simulate; _context10.next = 3; return htmlElement(); case 3: _context10.t1 = _context10.sent; _context10.t2 = eventData; return _context10.abrupt("return", _context10.t0.keyDown.call(_context10.t0, _context10.t1, _context10.t2)); case 6: case "end": return _context10.stop(); } } }, _callee10); })); function keyDown(_x4) { return _keyDown.apply(this, arguments); } return keyDown; }(), mouseEnter: function () { var _mouseEnter = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(eventData) { return _regenerator["default"].wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.t0 = _testUtils.Simulate; _context11.next = 3; return htmlElement(); case 3: _context11.t1 = _context11.sent; _context11.t2 = eventData; return _context11.abrupt("return", _context11.t0.mouseEnter.call(_context11.t0, _context11.t1, _context11.t2)); case 6: case "end": return _context11.stop(); } } }, _callee11); })); function mouseEnter(_x5) { return _mouseEnter.apply(this, arguments); } return mouseEnter; }(), mouseLeave: function () { var _mouseLeave = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(eventData) { return _regenerator["default"].wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.t0 = _testUtils.Simulate; _context12.next = 3; return htmlElement(); case 3: _context12.t1 = _context12.sent; _context12.t2 = eventData; return _context12.abrupt("return", _context12.t0.mouseLeave.call(_context12.t0, _context12.t1, _context12.t2)); case 6: case "end": return _context12.stop(); } } }, _callee12); })); function mouseLeave(_x6) { return _mouseLeave.apply(this, arguments); } return mouseLeave; }(), beforeInput: function () { var _beforeInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(eventData) { return _regenerator["default"].wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: _context13.t0 = _testUtils.Simulate; _context13.next = 3; return htmlElement(); case 3: _context13.t1 = _context13.sent; _context13.t2 = eventData; return _context13.abrupt("return", _context13.t0.beforeInput.call(_context13.t0, _context13.t1, _context13.t2)); case 6: case "end": return _context13.stop(); } } }, _callee13); })); function beforeInput(_x7) { return _beforeInput.apply(this, arguments); } return beforeInput; }() }; var _private = { mouseDown: function () { var _mouseDown = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(eventData) { return _regenerator["default"].wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: _context14.t0 = _testUtils.Simulate; _context14.next = 3; return htmlElement(); case 3: _context14.t1 = _context14.sent; _context14.t2 = eventData; return _context14.abrupt("return", _context14.t0.mouseDown.call(_context14.t0, _context14.t1, _context14.t2)); case 6: case "end": return _context14.stop(); } } }, _callee14); })); function mouseDown(_x8) { return _mouseDown.apply(this, arguments); } return mouseDown; }(), mouseOver: function () { var _mouseOver = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee15(eventData) { return _regenerator["default"].wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.t0 = _testUtils.Simulate; _context15.next = 3; return htmlElement(); case 3: _context15.t1 = _context15.sent; _context15.t2 = eventData; return _context15.abrupt("return", _context15.t0.mouseOver.call(_context15.t0, _context15.t1, _context15.t2)); case 6: case "end": return _context15.stop(); } } }, _callee15); })); function mouseOver(_x9) { return _mouseOver.apply(this, arguments); } return mouseOver; }(), mouseOut: function () { var _mouseOut = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16(eventData) { return _regenerator["default"].wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: _context16.t0 = _testUtils.Simulate; _context16.next = 3; return htmlElement(); case 3: _context16.t1 = _context16.sent; _context16.t2 = eventData; return _context16.abrupt("return", _context16.t0.mouseOut.call(_context16.t0, _context16.t1, _context16.t2)); case 6: case "end": return _context16.stop(); } } }, _callee16); })); function mouseOut(_x10) { return _mouseOut.apply(this, arguments); } return mouseOut; }(), compositionStart: function () { var _compositionStart = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee17() { return _regenerator["default"].wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _context17.t0 = _testUtils.Simulate; _context17.next = 3; return htmlElement(); case 3: _context17.t1 = _context17.sent; return _context17.abrupt("return", _context17.t0.compositionStart.call(_context17.t0, _context17.t1)); case 5: case "end": return _context17.stop(); } } }, _callee17); })); function compositionStart() { return _compositionStart.apply(this, arguments); } return compositionStart; }(), compositionEnd: function () { var _compositionEnd = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee18() { return _regenerator["default"].wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: _context18.t0 = _testUtils.Simulate; _context18.next = 3; return htmlElement(); case 3: _context18.t1 = _context18.sent; return _context18.abrupt("return", _context18.t0.compositionEnd.call(_context18.t0, _context18.t1)); case 5: case "end": return _context18.stop(); } } }, _callee18); })); function compositionEnd() { return _compositionEnd.apply(this, arguments); } return compositionEnd; }() }; return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pendingUnidriverFeatures), unidriverRejected), deprecated), shouldBePrivate), {}, { _private: _private // should be used inside private drivers only }); } /* Deprecated - still here for backward compatibility. No need to use it inside new drivers, because drivers should not expose clickOutside functions. Tests should click on the outside container regardless easily without the help of a driver. */ ReactBase.clickBody = function () { return document.body.dispatchEvent(new Event('mouseup', { cancelable: true, bubbles: true })); }; // TODO: Find out why some tests need clickOutSide to be on document and some on body ReactBase.clickDocument = function () { return document.dispatchEvent(new Event('mousedown', { cancelable: true, bubbles: true })); };