UNPKG

@wix/design-system

Version:

@wix/design-system

314 lines (312 loc) 12.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _userEvent = _interopRequireDefault(require("@testing-library/user-event")); var _unit = require("../../utils/test-utils/unit"); var _EditableTitle = _interopRequireDefault(require("../EditableTitle")); var _EditableTitleUni = require("../EditableTitle.uni.driver"); var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/EditableTitle/test/EditableTitle.spec.jsx", _this = void 0; var componentWithProps = function componentWithProps() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return /*#__PURE__*/_react["default"].createElement(_EditableTitle["default"], (0, _extends2["default"])({}, props, { __self: _this, __source: { fileName: _jsxFileName, lineNumber: 10, columnNumber: 44 } })); }; describe('EditableTitle', function () { afterEach(function () { return (0, _unit.cleanup)(); }); describe('[async]', function () { runTests((0, _unit.createRendererWithUniDriver)(_EditableTitleUni.editableTitleUniDriverFactory)); }); function runTests(render) { it('should have a title', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() { var initialValue, _render, driver; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: initialValue = 'Some Title'; _render = render(componentWithProps({ initialValue: initialValue })), driver = _render.driver; _context.t0 = expect; _context.next = 5; return driver.getHeadingText(); case 5: _context.t1 = _context.sent; (0, _context.t0)(_context.t1).toEqual(initialValue); case 7: case "end": return _context.stop(); } }, _callee); }))); it('should have a default', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() { var defaultValue, _render2, driver; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: defaultValue = 'Some Title'; _render2 = render(componentWithProps({ defaultValue: defaultValue })), driver = _render2.driver; _context2.t0 = expect; _context2.next = 5; return driver.getHeadingText(); case 5: _context2.t1 = _context2.sent; (0, _context2.t0)(_context2.t1).toEqual(defaultValue); case 7: case "end": return _context2.stop(); } }, _callee2); }))); it('should set default as initialValue when focusing', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() { var defaultValue, _render3, driver; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: defaultValue = 'Some Title'; _render3 = render(componentWithProps({ defaultValue: defaultValue, initialValue: '' })), driver = _render3.driver; _context3.next = 4; return driver.clickHeading(); case 4: _context3.t0 = expect; _context3.next = 7; return driver.getInput().getValue(); case 7: _context3.t1 = _context3.sent; (0, _context3.t0)(_context3.t1).toEqual(defaultValue); case 9: case "end": return _context3.stop(); } }, _callee3); }))); it('max input value length is 100 by default', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() { var _render4, driver; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _render4 = render(componentWithProps({})), driver = _render4.driver; _context4.t0 = expect; _context4.next = 4; return driver.getInput().getMaxLength(); case 4: _context4.t1 = _context4.sent; (0, _context4.t0)(_context4.t1).toEqual('100'); case 6: case "end": return _context4.stop(); } }, _callee4); }))); it('max input value length is 50 when setting prop maxLength to be 50', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() { var _render5, driver; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: _render5 = render(componentWithProps({ maxLength: 50 })), driver = _render5.driver; _context5.t0 = expect; _context5.next = 4; return driver.getInput().getMaxLength(); case 4: _context5.t1 = _context5.sent; (0, _context5.t0)(_context5.t1).toEqual('50'); case 6: case "end": return _context5.stop(); } }, _callee5); }))); it('set input in focus on mount when setting autoFocus prop', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() { var _render6, driver; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: _render6 = render(componentWithProps({ autoFocus: true })), driver = _render6.driver; _context6.t0 = expect; _context6.next = 4; return driver.getInput().isFocus(); case 4: _context6.t1 = _context6.sent; (0, _context6.t0)(_context6.t1).toEqual(true); case 6: case "end": return _context6.stop(); } }, _callee6); }))); it('should return submitted value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() { var anotherTitle, onSubmit, _render7, driver; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: anotherTitle = 'Another Title'; onSubmit = vi.fn(); _render7 = render(componentWithProps({ defaultValue: 'Some Title', initialValue: '', onSubmit: onSubmit })), driver = _render7.driver; _context7.next = 5; return driver.clickHeading(); case 5: _context7.next = 7; return driver.getInput().enterText(anotherTitle); case 7: _context7.next = 9; return driver.getInput().blur(); case 9: expect(onSubmit).toHaveBeenCalledWith(anotherTitle); case 10: case "end": return _context7.stop(); } }, _callee7); }))); it('should submit once on enter', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() { var anotherTitle, onSubmit, _render8, driver; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: anotherTitle = 'Another Title'; onSubmit = vi.fn(); _render8 = render(componentWithProps({ defaultValue: 'Some Title', initialValue: '', onSubmit: onSubmit })), driver = _render8.driver; _context8.next = 5; return driver.clickHeading(); case 5: _context8.next = 7; return driver.getInput().enterText(anotherTitle); case 7: _context8.next = 9; return driver.getInput().keyDown({ keyCode: 13 /* Enter*/ }); case 9: expect(onSubmit).toHaveBeenCalledTimes(1); case 10: case "end": return _context8.stop(); } }, _callee8); }))); // TODO: failing after migrating to unidriver-jsdom-react it.skip('should update the title on change', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() { var anotherTitle, onChange, _render9, driver, expectedTargetValue; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: anotherTitle = 'Another Title'; onChange = vi.fn(function (e) { return e.persist(); }); _render9 = render(componentWithProps({ defaultValue: 'Some Title', initialValue: '', onChange: onChange })), driver = _render9.driver; _context9.next = 5; return driver.clickHeading(); case 5: _context9.next = 7; return driver.getInput().enterText(anotherTitle); case 7: expectedTargetValue = { target: { name: '', type: 'text', value: anotherTitle } }; expect(onChange).toHaveBeenCalledWith(expect.objectContaining(expectedTargetValue)); case 9: case "end": return _context9.stop(); } }, _callee9); }))); it('should render the value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() { var value, _render0, driver; return _regenerator["default"].wrap(function _callee0$(_context0) { while (1) switch (_context0.prev = _context0.next) { case 0: value = 'Some value'; _render0 = render(componentWithProps({ defaultValue: 'Some Title', initialValue: '', value: value })), driver = _render0.driver; _context0.t0 = expect; _context0.next = 5; return driver.getHeadingText(); case 5: _context0.t1 = _context0.sent; (0, _context0.t0)(_context0.t1).toBe(value); case 7: case "end": return _context0.stop(); } }, _callee0); }))); it('should handle tabbing properly', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() { var _render1, driver; return _regenerator["default"].wrap(function _callee1$(_context1) { while (1) switch (_context1.prev = _context1.next) { case 0: _render1 = render(componentWithProps({})), driver = _render1.driver; _context1.t0 = expect; _context1.next = 4; return driver.getInput().isFocus(); case 4: _context1.t1 = _context1.sent; (0, _context1.t0)(_context1.t1).toEqual(false); _context1.next = 8; return _userEvent["default"].tab(); case 8: _context1.t2 = expect; _context1.next = 11; return driver.getInput().isFocus(); case 11: _context1.t3 = _context1.sent; (0, _context1.t2)(_context1.t3).toEqual(true); _context1.next = 15; return _userEvent["default"].tab({ shift: true }); case 15: _context1.t4 = expect; _context1.next = 18; return driver.getInput().isFocus(); case 18: _context1.t5 = _context1.sent; (0, _context1.t4)(_context1.t5).toEqual(false); case 20: case "end": return _context1.stop(); } }, _callee1); }))); } });