qt-public-ui
Version:
新设计规范下业务组件库
265 lines (264 loc) • 11.6 kB
JavaScript
;
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);
})));
});
});