UNPKG

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>

134 lines (112 loc) 14.7 kB
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); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } import * as React from "react"; import { mount } from "enzyme"; import TestRenderer from "react-test-renderer"; import Popconfirm from ".."; var PopconfirmMounter = function (_React$Component) { _inherits(PopconfirmMounter, _React$Component); var _super = _createSuper(PopconfirmMounter); function PopconfirmMounter() { var _this; _classCallCheck(this, PopconfirmMounter); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _this.state = { visible: true }; _this.popconfirm = void 0; return _this; } _createClass(PopconfirmMounter, [{ key: "render", value: function render() { var _this2 = this; var visible = this.state.visible; return React.createElement(Popconfirm, { visible: visible, onVisibleChange: function onVisibleChange(bool, options) { if (options.target !== "confirm" && !bool) { _this2.setState({ visible: false }); } else { _this2.setState({ visible: true }); } }, popup: "popup", ref: function ref(popconfirm) { if (popconfirm) { _this2.popconfirm = popconfirm; return _this2.popconfirm; } return null; } }, React.createElement("div", { id: "children" }, "children")); } }]); return PopconfirmMounter; }(React.Component); describe("Popconfirm", function () { beforeEach(function () { jest.useFakeTimers(); }); afterEach(function () { jest.useRealTimers(); }); it("是否正确渲染", function () { var wrapper = TestRenderer.create(React.createElement(Popconfirm, { popup: "1" }, "children")); expect(wrapper).toMatchSnapshot(); }); it("是否能内部驱动", function () { var onVisibleChange = jest.fn(); var wrapper = mount(React.createElement(Popconfirm, { onVisibleChange: onVisibleChange }, React.createElement("div", { id: "child" }, "child"))); wrapper.find("#child").at(0).simulate("click"); expect(onVisibleChange).toHaveBeenCalledWith(true, {}); expect(wrapper.find("Popover").props().visible).toBe(true); var buttons = wrapper.find("button"); buttons.at(0).simulate("click"); expect(onVisibleChange).toHaveBeenCalledWith(false, { target: "cancel" }); expect(wrapper.find("Popover").props().visible).toBe(false); wrapper.find("#child").at(0).simulate("click"); buttons.at(1).simulate("click"); expect(onVisibleChange).toHaveBeenCalledWith(false, { target: "confirm" }); expect(wrapper.find("Popover").props().visible).toBe(false); }); it("是否能外部控制", function () { var wrapper = mount(React.createElement(PopconfirmMounter, null)); var buttons = wrapper.find("button"); buttons.at(0).simulate("click"); expect(wrapper.find("Popover").props().visible).toEqual(false); wrapper.find("#children").at(0).simulate("click"); expect(wrapper.find("Popover").props().visible).toEqual(true); buttons.at(1).simulate("click"); expect(wrapper.find("Popover").props().visible).toEqual(true); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1vdW50IiwiVGVzdFJlbmRlcmVyIiwiUG9wY29uZmlybSIsIlBvcGNvbmZpcm1Nb3VudGVyIiwic3RhdGUiLCJ2aXNpYmxlIiwicG9wY29uZmlybSIsImJvb2wiLCJvcHRpb25zIiwidGFyZ2V0Iiwic2V0U3RhdGUiLCJDb21wb25lbnQiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJqZXN0IiwidXNlRmFrZVRpbWVycyIsImFmdGVyRWFjaCIsInVzZVJlYWxUaW1lcnMiLCJpdCIsIndyYXBwZXIiLCJjcmVhdGUiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJvblZpc2libGVDaGFuZ2UiLCJmbiIsImZpbmQiLCJhdCIsInNpbXVsYXRlIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJwcm9wcyIsInRvQmUiLCJidXR0b25zIiwidG9FcXVhbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvcG9wY29uZmlybS9fX3Rlc3RzX18vaW5kZXgudGVzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBtb3VudCB9IGZyb20gXCJlbnp5bWVcIlxuaW1wb3J0IFRlc3RSZW5kZXJlciBmcm9tIFwicmVhY3QtdGVzdC1yZW5kZXJlclwiXG5pbXBvcnQgUG9wY29uZmlybSBmcm9tIFwiLi5cIlxuXG5jbGFzcyBQb3Bjb25maXJtTW91bnRlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHZpc2libGU6IHRydWUsXG4gIH1cblxuICBwcml2YXRlIHBvcGNvbmZpcm06IGFueVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHZpc2libGUgfSA9IHRoaXMuc3RhdGVcbiAgICByZXR1cm4gKFxuICAgICAgPFBvcGNvbmZpcm1cbiAgICAgICAgdmlzaWJsZT17dmlzaWJsZX1cbiAgICAgICAgb25WaXNpYmxlQ2hhbmdlPXsoYm9vbCwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgIGlmIChvcHRpb25zLnRhcmdldCAhPT0gXCJjb25maXJtXCIgJiYgIWJvb2wpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogdHJ1ZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgcG9wdXA9XCJwb3B1cFwiXG4gICAgICAgIHJlZj17KHBvcGNvbmZpcm06IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChwb3Bjb25maXJtKSB7XG4gICAgICAgICAgICB0aGlzLnBvcGNvbmZpcm0gPSBwb3Bjb25maXJtXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wb3Bjb25maXJtXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgaWQ9XCJjaGlsZHJlblwiPmNoaWxkcmVuPC9kaXY+XG4gICAgICA8L1BvcGNvbmZpcm0+XG4gICAgKVxuICB9XG59XG5cbmRlc2NyaWJlKFwiUG9wY29uZmlybVwiLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG4gIH0pXG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBqZXN0LnVzZVJlYWxUaW1lcnMoKVxuICB9KVxuXG4gIGl0KFwi5piv5ZCm5q2j56Gu5riy5p+TXCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gVGVzdFJlbmRlcmVyLmNyZWF0ZShcbiAgICAgIDxQb3Bjb25maXJtIHBvcHVwPVwiMVwiPmNoaWxkcmVuPC9Qb3Bjb25maXJtPlxuICAgIClcbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICBpdChcIuaYr+WQpuiDveWGhemDqOmpseWKqFwiLCAoKSA9PiB7XG4gICAgY29uc3Qgb25WaXNpYmxlQ2hhbmdlID0gamVzdC5mbigpXG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KFxuICAgICAgPFBvcGNvbmZpcm0gb25WaXNpYmxlQ2hhbmdlPXtvblZpc2libGVDaGFuZ2V9PlxuICAgICAgICA8ZGl2IGlkPVwiY2hpbGRcIj5jaGlsZDwvZGl2PlxuICAgICAgPC9Qb3Bjb25maXJtPlxuICAgIClcbiAgICB3cmFwcGVyLmZpbmQoXCIjY2hpbGRcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGV4cGVjdChvblZpc2libGVDaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRydWUsIHt9KVxuICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJQb3BvdmVyXCIpLnByb3BzKCkudmlzaWJsZSkudG9CZSh0cnVlKVxuICAgIGNvbnN0IGJ1dHRvbnMgPSB3cmFwcGVyLmZpbmQoXCJidXR0b25cIilcbiAgICBidXR0b25zLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qob25WaXNpYmxlQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmYWxzZSwgeyB0YXJnZXQ6IFwiY2FuY2VsXCIgfSlcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wb3ZlclwiKS5wcm9wcygpLnZpc2libGUpLnRvQmUoZmFsc2UpXG4gICAgd3JhcHBlci5maW5kKFwiI2NoaWxkXCIpLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBidXR0b25zLmF0KDEpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qob25WaXNpYmxlQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmYWxzZSwgeyB0YXJnZXQ6IFwiY29uZmlybVwiIH0pXG4gICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIlBvcG92ZXJcIikucHJvcHMoKS52aXNpYmxlKS50b0JlKGZhbHNlKVxuICB9KVxuXG4gIGl0KFwi5piv5ZCm6IO95aSW6YOo5o6n5Yi2XCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gbW91bnQoPFBvcGNvbmZpcm1Nb3VudGVyIC8+KVxuICAgIGNvbnN0IGJ1dHRvbnMgPSB3cmFwcGVyLmZpbmQoXCJidXR0b25cIilcbiAgICBidXR0b25zLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wb3ZlclwiKS5wcm9wcygpLnZpc2libGUpLnRvRXF1YWwoZmFsc2UpXG4gICAgd3JhcHBlci5maW5kKFwiI2NoaWxkcmVuXCIpLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wb3ZlclwiKS5wcm9wcygpLnZpc2libGUpLnRvRXF1YWwodHJ1ZSlcbiAgICBidXR0b25zLmF0KDEpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wb3ZlclwiKS5wcm9wcygpLnZpc2libGUpLnRvRXF1YWwodHJ1ZSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLFFBQXRCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5QixxQkFBekI7QUFDQSxPQUFPQyxVQUFQLE1BQXVCLElBQXZCOztJQUVNQyxpQjs7Ozs7Ozs7Ozs7Ozs7O1VBQ0pDLEssR0FBUTtNQUNOQyxPQUFPLEVBQUU7SUFESCxDO1VBSUFDLFU7Ozs7OztXQUVSLGtCQUFTO01BQUE7O01BQ1AsSUFBUUQsT0FBUixHQUFvQixLQUFLRCxLQUF6QixDQUFRQyxPQUFSO01BQ0EsT0FDRSxvQkFBQyxVQUFEO1FBQ0UsT0FBTyxFQUFFQSxPQURYO1FBRUUsZUFBZSxFQUFFLHlCQUFDRSxJQUFELEVBQU9DLE9BQVAsRUFBbUI7VUFDbEMsSUFBSUEsT0FBTyxDQUFDQyxNQUFSLEtBQW1CLFNBQW5CLElBQWdDLENBQUNGLElBQXJDLEVBQTJD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