UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

265 lines (264 loc) 11.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = _interopRequireWildcard(require("react")); var _enzyme = require("enzyme"); var _2 = _interopRequireDefault(require("..")); var _testUtils = require("react-dom/test-utils"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } describe('MultiSelect', function () { var Option = _2["default"].Option; var options = new Array(5).fill(1).map(function (_, index) { return { label: "option-".concat(index), value: "value-".concat(index) }; }); var getDropdown = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(wrapper) { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return (0, _testUtils.act)( /*#__PURE__*/(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.next = 2; return wrapper.find('.umui-multi-select').simulate('click'); case 2: wrapper.update(); case 3: case "end": return _context.stop(); } }, _callee); }))); case 2: return _context2.abrupt("return", wrapper.find('.umui-multi-select-dropdown')); case 3: case "end": return _context2.stop(); } }, _callee2); })); return function getDropdown(_x) { return _ref.apply(this, arguments); }; }(); it('can select and deselect all', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { var wrapper, dropdown, allSelection; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_2["default"], { useAllSelection: true }, options.map(function (o) { return /*#__PURE__*/_react["default"].createElement(Option, { key: o.value, value: o.value }, o.label); }))); _context3.next = 3; return getDropdown(wrapper); case 3: dropdown = _context3.sent; expect(dropdown.find('li')).toHaveLength(5); // 5 options in dropdown list allSelection = dropdown.find('.use-all-selection'); expect(allSelection.text()).toBe('全部'); (0, _testUtils.act)(function () { allSelection.simulate('click'); }); wrapper.update(); expect(wrapper.find('.ant-tag')).toHaveLength(5); (0, _testUtils.act)(function () { allSelection.simulate('click'); }); wrapper.update(); expect(wrapper.find('.ant-tag')).toHaveLength(0); case 13: case "end": return _context3.stop(); } }, _callee3); }))); it('can search options by option', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var Demo, wrapper, searchInput; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: Demo = function Demo() { var _useState = (0, _react.useState)([]), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), selected = _useState2[0], setSelected = _useState2[1]; return /*#__PURE__*/_react["default"].createElement(_2["default"], { value: selected, optionFilterProp: "children", onChange: function onChange(value) { setSelected(value); }, showSearch: true }, options.map(function (o) { return /*#__PURE__*/_react["default"].createElement(Option, { key: o.value, value: o.value }, o.label); })); }; wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(Demo, null)); _context4.next = 4; return getDropdown(wrapper); case 4: searchInput = wrapper.find('.search-box input'); (0, _testUtils.act)(function () { searchInput.simulate('change', { target: { value: 'option-1' } }); }); wrapper.update(); expect(wrapper.find('li')).toHaveLength(1); expect(wrapper.find('li').text()).toBe('option-1'); case 9: case "end": return _context4.stop(); } }, _callee4); }))); it('can render customized content', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { var wrapper, dropdown, allSelection; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_2["default"], { renderSelectedContent: function renderSelectedContent(selectedList) { return /*#__PURE__*/_react["default"].createElement("div", { className: "options-seperator" }, "\u5DF2\u9009\u62E9", selectedList.length, "\u4E2A\u4E8B\u4EF6"); }, useAllSelection: true }, options.map(function (o) { return /*#__PURE__*/_react["default"].createElement(Option, { key: o.value, value: o.value }, o.label); }))); _context5.next = 3; return getDropdown(wrapper); case 3: dropdown = _context5.sent; allSelection = dropdown.find('.use-all-selection'); (0, _testUtils.act)(function () { allSelection.simulate('click'); }); wrapper.update(); expect(wrapper.text()).toBe('已选择5个事件'); case 8: case "end": return _context5.stop(); } }, _callee5); }))); it('can be disabled', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { var wrapper, dropdown; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_2["default"], { disabled: true }, options.map(function (o) { return /*#__PURE__*/_react["default"].createElement(Option, { key: o.value, value: o.value }, o.label); }))); _context6.next = 3; return getDropdown(wrapper); case 3: dropdown = _context6.sent; expect(dropdown.exists()).toBeFalsy(); case 5: case "end": return _context6.stop(); } }, _callee6); }))); it('can have separator', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() { var wrapper, dropdown, eptTxt; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_2["default"], { seperator: true, useAllSelection: true }, options.map(function (o) { return /*#__PURE__*/_react["default"].createElement(Option, { key: o.value, value: o.value }, o.label); }))); _context7.next = 3; return getDropdown(wrapper); case 3: dropdown = _context7.sent; (0, _testUtils.act)(function () { dropdown.find('.use-all-selection').simulate('click'); }); wrapper.update(); eptTxt = options.map(function (o) { return o.label; }).join('、'); expect(wrapper.text()).toBe(eptTxt); case 8: case "end": return _context7.stop(); } }, _callee7); }))); describe('MultiSelect.Option', function () { var selectedValue = ['value-disabled']; var Demo = function Demo() { var opts = [/*#__PURE__*/_react["default"].createElement(Option, { key: "option-disabled", value: "value-disabled", disabled: true }, "option-disabled")].concat((0, _toConsumableArray2["default"])(options.map(function (o) { return /*#__PURE__*/_react["default"].createElement(Option, { key: o.value, value: o.value }, o.label); }))); return /*#__PURE__*/_react["default"].createElement(_2["default"], { defaultValue: selectedValue }, opts); }; var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(Demo, null)); it('can be disabled', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() { var dropdown; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return getDropdown(wrapper); case 2: dropdown = _context8.sent; (0, _testUtils.act)(function () { dropdown.find('li').first().simulate('click'); }); dropdown.update(); expect(wrapper.text()).toBe('option-disabled'); case 6: case "end": return _context8.stop(); } }, _callee8); }))); }); });