adui
Version:
<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>
127 lines (118 loc) • 15.4 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
var React = _interopRequireWildcard(require("react"));
var _testUtils = require("react-dom/test-utils");
var _enzyme = require("enzyme");
var _ = _interopRequireDefault(require(".."));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
describe("Tooltip", function () {
beforeEach(function () {
jest.useFakeTimers();
});
afterEach(function () {
jest.useRealTimers();
});
it("是否能内部驱动", function () {
var wrapper = (0, _enzyme.mount)(React.createElement(_["default"], {
alignEdge: true,
placement: "top",
mouseEnterDelay: 0,
mouseLeaveDelay: 0,
popup: React.createElement("div", {
id: "popup"
}, "popup")
}, React.createElement("div", {
id: "children"
}, "children")));
var child = wrapper.find("#children").at(0);
child.simulate("mouseenter");
expect(wrapper.find("Trigger").at(0).props().popupVisible).toBe(true);
child.simulate("mouseleave");
expect(wrapper.find("Trigger").at(0).props().popupVisible).toBe(false);
});
});
describe("Tooltip 测试 handlePopupAlign - Top", function () {
beforeEach(function () {
jest.useFakeTimers();
Element.prototype.getBoundingClientRect = jest.fn(function () {
return {
width: 120,
height: 120,
top: -10,
left: 0,
bottom: 0,
right: 0,
x: 0,
y: -10,
toJSON: function toJSON() {}
};
});
});
it("是否处理 PopupAlign", function () {
document.body.innerHTML = '<div id="mounter" />';
var wrapper = (0, _enzyme.mount)(React.createElement(_["default"], {
test: true,
visible: true,
placement: "top",
mouseEnterDelay: 0,
mouseLeaveDelay: 0,
popup: "popup"
}, React.createElement("div", {
id: "children"
}, "children")), {
attachTo: document.getElementById("mounter")
});
document.body.scrollTop = 0;
var child = wrapper.find("#children").at(0);
(0, _testUtils.act)(function () {
child.simulate("mouseenter");
jest.runAllTimers();
wrapper.update();
});
expect(wrapper.find("PopTrigger").at(0).props().popupPlacement).toBe("bottom");
});
});
describe("Tooltip 测试 handlePopupAlign - Bottom", function () {
beforeEach(function () {
jest.useFakeTimers();
Element.prototype.getBoundingClientRect = jest.fn(function () {
return {
width: 120,
height: 120,
top: 1000,
left: 0,
bottom: 0,
right: 0,
x: 0,
y: 1000,
toJSON: function toJSON() {}
};
});
});
it("是否处理 PopupAlign", function () {
document.body.innerHTML = '<div id="mounter" />';
var wrapper = (0, _enzyme.mount)(React.createElement(_["default"], {
test: true,
visible: true,
placement: "bottom",
mouseEnterDelay: 0,
mouseLeaveDelay: 0,
popup: "popup"
}, React.createElement("div", {
id: "children"
}, "children")), {
attachTo: document.getElementById("mounter")
});
document.body.scrollTop = 0;
var child = wrapper.find("#children").at(0);
(0, _testUtils.act)(function () {
child.simulate("mouseenter");
jest.runAllTimers();
wrapper.update();
});
expect(wrapper.find("PopTrigger").at(0).props().popupPlacement).toBe("top");
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJqZXN0IiwidXNlRmFrZVRpbWVycyIsImFmdGVyRWFjaCIsInVzZVJlYWxUaW1lcnMiLCJpdCIsIndyYXBwZXIiLCJtb3VudCIsImNoaWxkIiwiZmluZCIsImF0Iiwic2ltdWxhdGUiLCJleHBlY3QiLCJwcm9wcyIsInBvcHVwVmlzaWJsZSIsInRvQmUiLCJFbGVtZW50IiwicHJvdG90eXBlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZm4iLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCIsIngiLCJ5IiwidG9KU09OIiwiZG9jdW1lbnQiLCJib2R5IiwiaW5uZXJIVE1MIiwiYXR0YWNoVG8iLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbFRvcCIsImFjdCIsInJ1bkFsbFRpbWVycyIsInVwZGF0ZSIsInBvcHVwUGxhY2VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50cy90b29sdGlwL19fdGVzdHNfXy9pbmRleC50ZXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLyoqXG4gKiBUb29sdGlwIOaYr+WfuuS6jiBQb3BUcmlnZ2VyIOi/m+ihjOWwgeijheeahOOAglxuICog6Zmk6Z2e5LiOIFRvb2x0aXAg55u45YWz77yM5ZCm5YiZ5rWL6K+V55So5L6L6YO95bqU5ZyoIFBvcFRyaWdnZXIg5LiL44CCXG4gKi9cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBhY3QgfSBmcm9tIFwicmVhY3QtZG9tL3Rlc3QtdXRpbHNcIlxuaW1wb3J0IHsgbW91bnQgfSBmcm9tIFwiZW56eW1lXCJcbmltcG9ydCBUb29sdGlwIGZyb20gXCIuLlwiXG5cbmRlc2NyaWJlKFwiVG9vbHRpcFwiLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG4gIH0pXG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBqZXN0LnVzZVJlYWxUaW1lcnMoKVxuICB9KVxuXG4gIGl0KFwi5piv5ZCm6IO95YaF6YOo6amx5YqoXCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gICAgICA8VG9vbHRpcFxuICAgICAgICBhbGlnbkVkZ2VcbiAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgbW91c2VFbnRlckRlbGF5PXswfVxuICAgICAgICBtb3VzZUxlYXZlRGVsYXk9ezB9XG4gICAgICAgIHBvcHVwPXs8ZGl2IGlkPVwicG9wdXBcIj5wb3B1cDwvZGl2Pn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cImNoaWxkcmVuXCI+Y2hpbGRyZW48L2Rpdj5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLmZpbmQoXCIjY2hpbGRyZW5cIikuYXQoMClcbiAgICBjaGlsZC5zaW11bGF0ZShcIm1vdXNlZW50ZXJcIilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiVHJpZ2dlclwiKS5hdCgwKS5wcm9wcygpLnBvcHVwVmlzaWJsZSkudG9CZSh0cnVlKVxuICAgIGNoaWxkLnNpbXVsYXRlKFwibW91c2VsZWF2ZVwiKVxuICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJUcmlnZ2VyXCIpLmF0KDApLnByb3BzKCkucG9wdXBWaXNpYmxlKS50b0JlKGZhbHNlKVxuICB9KVxufSlcblxuZGVzY3JpYmUoXCJUb29sdGlwIOa1i+ivlSBoYW5kbGVQb3B1cEFsaWduIC0gVG9wXCIsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC51c2VGYWtlVGltZXJzKClcblxuICAgIC8qKlxuICAgICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MDAwNjY2M1xuICAgICAqIOmAmui/hyBtb2NrIGBnZXRCb3VuZGluZ0NsaWVudFJlY3Rg77yM5LmL5ZCO6L+Q6KGM55qE5omA5pyJIGBnZXRCb3VuZGluZ0NsaWVudFJlY3RgIOmDveS8mui/lOWbnui/meWQjOS4gOS4quWAvOOAglxuICAgICAqL1xuICAgIEVsZW1lbnQucHJvdG90eXBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCA9IGplc3QuZm4oKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IDEyMCxcbiAgICAgICAgaGVpZ2h0OiAxMjAsXG4gICAgICAgIHRvcDogLTEwLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICBib3R0b206IDAsXG4gICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICB4OiAwLFxuICAgICAgICB5OiAtMTAsXG4gICAgICAgIHRvSlNPTjogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSlcbiAgfSlcblxuICBpdChcIuaYr+WQpuWkhOeQhiBQb3B1cEFsaWduXCIsICgpID0+IHtcbiAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICc8ZGl2IGlkPVwibW91bnRlclwiIC8+J1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxUb29sdGlwXG4gICAgICAgIHRlc3RcbiAgICAgICAgdmlzaWJsZVxuICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICBtb3VzZUVudGVyRGVsYXk9ezB9XG4gICAgICAgIG1vdXNlTGVhdmVEZWxheT17MH1cbiAgICAgICAgcG9wdXA9XCJwb3B1cFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgaWQ9XCJjaGlsZHJlblwiPmNoaWxkcmVuPC9kaXY+XG4gICAgICA8L1Rvb2x0aXA+LFxuICAgICAgeyBhdHRhY2hUbzogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJtb3VudGVyXCIpIH1cbiAgICApXG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSAwXG4gICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLmZpbmQoXCIjY2hpbGRyZW5cIikuYXQoMClcbiAgICBhY3QoKCkgPT4ge1xuICAgICAgY2hpbGQuc2ltdWxhdGUoXCJtb3VzZWVudGVyXCIpXG4gICAgICAvLyBqZXN0IHJ1bkFsbFRpbWVycyDmmK/kuLrkuobop6blj5EgVG9vbHRpcCDlhoXnmoQgc2V0VGltZW91dCAwXG4gICAgICBqZXN0LnJ1bkFsbFRpbWVycygpXG4gICAgICAvLyDlv4XpobvmiafooYwgd3JhcHBlci51cGRhdGUg5ZCm5YiZ5ou/5Yiw55qEIHByb3Ag6L+Y5piv5pen55qEXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZW56eW1lanMvZW56eW1lI3JlYWN0LWhvb2tzLXN1cHBvcnRcbiAgICAgIC8vIOihgOeahOaVmeiurVxuICAgICAgd3JhcHBlci51cGRhdGUoKVxuICAgIH0pXG5cbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wVHJpZ2dlclwiKS5hdCgwKS5wcm9wcygpLnBvcHVwUGxhY2VtZW50KS50b0JlKFxuICAgICAgXCJib3R0b21cIlxuICAgIClcbiAgfSlcbn0pXG5cbmRlc2NyaWJlKFwiVG9vbHRpcCDmtYvor5UgaGFuZGxlUG9wdXBBbGlnbiAtIEJvdHRvbVwiLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG5cbiAgICAvKipcbiAgICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDAwMDY2NjNcbiAgICAgKiDpgJrov4cgbW9jayBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YO+8jOS5i+WQjui/kOihjOeahOaJgOaciSBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YCDpg73kvJrov5Tlm57ov5nlkIzkuIDkuKrlgLzjgIJcbiAgICAgKi9cbiAgICBFbGVtZW50LnByb3RvdHlwZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBqZXN0LmZuKCgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiAxMjAsXG4gICAgICAgIGhlaWdodDogMTIwLFxuICAgICAgICB0b3A6IDEwMDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDEwMDAsXG4gICAgICAgIHRvSlNPTjogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSlcbiAgfSlcblxuICBpdChcIuaYr+WQpuWkhOeQhiBQb3B1cEFsaWduXCIsICgpID0+IHtcbiAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICc8ZGl2IGlkPVwibW91bnRlclwiIC8+J1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxUb29sdGlwXG4gICAgICAgIHRlc3RcbiAgICAgICAgdmlzaWJsZVxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICBtb3VzZUVudGVyRGVsYXk9ezB9XG4gICAgICAgIG1vdXNlTGVhdmVEZWxheT17MH1cbiAgICAgICAgcG9wdXA9XCJwb3B1cFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgaWQ9XCJjaGlsZHJlblwiPmNoaWxkcmVuPC9kaXY+XG4gICAgICA8L1Rvb2x0aXA+LFxuICAgICAgeyBhdHRhY2hUbzogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJtb3VudGVyXCIpIH1cbiAgICApXG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSAwXG4gICAgY29uc3QgY2hpbGQgPSB3cmFwcGVyLmZpbmQoXCIjY2hpbGRyZW5cIikuYXQoMClcbiAgICBhY3QoKCkgPT4ge1xuICAgICAgY2hpbGQuc2ltdWxhdGUoXCJtb3VzZWVudGVyXCIpXG4gICAgICAvLyBqZXN0IHJ1bkFsbFRpbWVycyDmmK/kuLrkuobop6blj5EgVG9vbHRpcCDlhoXnmoQgc2V0VGltZW91dCAwXG4gICAgICBqZXN0LnJ1bkFsbFRpbWVycygpXG4gICAgICAvLyDlv4XpobvmiafooYwgd3JhcHBlci51cGRhdGUg5ZCm5YiZ5ou/5Yiw55qEIHByb3Ag6L+Y5piv5pen55qEXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZW56eW1lanMvZW56eW1lI3JlYWN0LWhvb2tzLXN1cHBvcnRcbiAgICAgIC8vIOihgOeahOaVmeiurVxuICAgICAgd3JhcHBlci51cGRhdGUoKVxuICAgIH0pXG5cbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wVHJpZ2dlclwiKS5hdCgwKS5wcm9wcygpLnBvcHVwUGxhY2VtZW50KS50b0JlKFwidG9wXCIpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUFBLFFBQVEsQ0FBQyxTQUFELEVBQVksWUFBTTtFQUN4QkMsVUFBVSxDQUFDLFlBQU07SUFDZkMsSUFBSSxDQUFDQyxhQUFMO0VBQ0QsQ0FGUyxDQUFWO0VBSUFDLFNBQVMsQ0FBQyxZQUFNO0lBQ2RGLElBQUksQ0FBQ0csYUFBTDtFQUNELENBRlEsQ0FBVDtFQUlBQyxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07SUFDbEIsSUFBTUMsT0FBTyxHQUFHLElBQUFDLGFBQUEsRUFDZCxvQkFBQyxZQUFEO01BQ0UsU0FBUyxNQURYO01BRUUsU0FBUyxFQUFDLEtBRlo7TUFHRSxlQUFlLEVBQUUsQ0FIbkI7TUFJRSxlQUFlLEVBQUUsQ0FKbkI7TUFLRSxLQUFLLEVBQUU7UUFBSyxFQUFFLEVBQUM7TUFBUjtJQUxULEdBT0U7TUFBSyxFQUFFLEVBQUM7SUFBUixjQVBGLENBRGMsQ0FBaEI7SUFXQSxJQUFNQyxLQUFLLEdBQUdGLE9BQU8sQ0FBQ0csSUFBUixDQUFhLFdBQWIsRUFBMEJDLEVBQTFCLENBQTZCLENBQTdCLENBQWQ7SUFDQUYsS0FBSyxDQUFDRyxRQUFOLENBQWUsWUFBZjtJQUNBQyxNQUFNLENBQUNOLE9BQU8sQ0FBQ0csSUFBUixDQUFhLFNBQWIsRUFBd0JDLEVBQXhCLENBQTJCLENBQTNCLEVBQThCRyxLQUE5QixHQUFzQ0MsWUFBdkMsQ0FBTixDQUEyREMsSUFBM0QsQ0FBZ0UsSUFBaEU7SUFDQVAsS0FBSyxDQUFDRyxRQUFOLENBQWUsWUFBZjtJQUNBQyxNQUFNLENBQUNOLE9BQU8sQ0FBQ0csSUFBUixDQUFhLFNBQWIsRUFBd0JD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