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
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); }
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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