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>
151 lines (130 loc) • 16.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); }
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 Table from "..";
window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(function () {
return {
disconnect: jest.fn(),
observe: jest.fn(),
unobserve: jest.fn()
};
});
var Column = Table.Column;
var dataSource = [{
key: 0,
one: "第一项"
}, {
key: 1,
one: "第二项"
}, {
key: 2,
one: "第三项"
}];
var ExpandMounter = function (_React$Component) {
_inherits(ExpandMounter, _React$Component);
var _super = _createSuper(ExpandMounter);
function ExpandMounter() {
var _this;
_classCallCheck(this, ExpandMounter);
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 = {
keys: null
};
return _this;
}
_createClass(ExpandMounter, [{
key: "render",
value: function render() {
var _this2 = this;
var keys = this.state.keys;
return React.createElement(Table, {
dataSource: dataSource,
expandedRowKeys: keys,
onExpandChange: function onExpandChange(argKeys) {
return _this2.setState({
keys: argKeys
});
}
}, React.createElement(Column, {
title: "one",
dataIndex: "one"
}));
}
}]);
return ExpandMounter;
}(React.Component);
describe("base", function () {
it("快照核对", function () {
var wrapper = TestRenderer.create(React.createElement(Table, {
dataSource: dataSource,
defaultExpandedRowKeys: [1],
onExpandChange: function onExpandChange() {}
}, React.createElement(Column, {
title: "one",
dataIndex: "one"
})));
expect(wrapper).toMatchSnapshot();
});
it("是否能内部驱动", function () {
var onExpandChange = jest.fn();
var wrapper = mount(React.createElement(Table, {
dataSource: dataSource,
onExpandChange: onExpandChange,
defaultExpandedRowKeys: [1]
}, React.createElement(Column, {
title: "one",
dataIndex: "one"
})));
expect(wrapper.find("Table").state().expandedRowKeys).toEqual([1]);
wrapper.find("Icon").at(0).simulate("click");
expect(wrapper.find("Table").state().expandedRowKeys).toEqual([1, 0]);
});
it("是否能外部控制", function () {
var onExpandChange = jest.fn();
var wrapper0 = mount(React.createElement(Table, {
dataSource: dataSource,
onExpandChange: onExpandChange,
expandedRowKeys: [1]
}, React.createElement(Column, {
title: "one",
dataIndex: "one"
})));
expect(wrapper0.find("Table").state().expandedRowKeys).toEqual([1]);
wrapper0.find("Icon").at(0).simulate("click");
expect(wrapper0.find("Table").state().expandedRowKeys).toEqual([1]);
var wrapper1 = mount(React.createElement(ExpandMounter, null));
wrapper1.find("Icon").at(0).simulate("click");
expect(wrapper1.find("Table").state().expandedRowKeys).toEqual([0]);
wrapper1.find("Icon").at(0).simulate("click");
expect(wrapper1.find("Table").state().expandedRowKeys).toEqual([]);
});
it("是否支持 expandOnRowClick", function () {
var onExpandChange = jest.fn();
var wrapper = mount(React.createElement(Table, {
dataSource: dataSource,
defaultExpandedRowKeys: [1],
onExpandChange: onExpandChange,
expandOnRowClick: true
}, React.createElement(Column, {
title: "one",
dataIndex: "one"
})));
wrapper.find('[role="row"]').at(0).simulate("click");
expect(onExpandChange).toHaveBeenCalledWith([1, 0]);
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1vdW50IiwiVGVzdFJlbmRlcmVyIiwiVGFibGUiLCJ3aW5kb3ciLCJSZXNpemVPYnNlcnZlciIsImplc3QiLCJmbiIsIm1vY2tJbXBsZW1lbnRhdGlvbiIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwidW5vYnNlcnZlIiwiQ29sdW1uIiwiZGF0YVNvdXJjZSIsImtleSIsIm9uZSIsIkV4cGFuZE1vdW50ZXIiLCJzdGF0ZSIsImtleXMiLCJhcmdLZXlzIiwic2V0U3RhdGUiLCJDb21wb25lbnQiLCJkZXNjcmliZSIsIml0Iiwid3JhcHBlciIsImNyZWF0ZSIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsIm9uRXhwYW5kQ2hhbmdlIiwiZmluZCIsImV4cGFuZGVkUm93S2V5cyIsInRvRXF1YWwiLCJhdCIsInNpbXVsYXRlIiwid3JhcHBlcjAiLCJ3cmFwcGVyMSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50cy90YWJsZS9fX3Rlc3RzX18vZXhwYW5kUm93LnRlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBtb3VudCB9IGZyb20gXCJlbnp5bWVcIlxuaW1wb3J0IFRlc3RSZW5kZXJlciBmcm9tIFwicmVhY3QtdGVzdC1yZW5kZXJlclwiXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4uXCJcblxud2luZG93LlJlc2l6ZU9ic2VydmVyID1cbiAgd2luZG93LlJlc2l6ZU9ic2VydmVyIHx8XG4gIGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gKHtcbiAgICBkaXNjb25uZWN0OiBqZXN0LmZuKCksXG4gICAgb2JzZXJ2ZTogamVzdC5mbigpLFxuICAgIHVub2JzZXJ2ZTogamVzdC5mbigpLFxuICB9KSlcblxuY29uc3QgeyBDb2x1bW4gfSA9IFRhYmxlXG5cbmNvbnN0IGRhdGFTb3VyY2UgPSBbXG4gIHtcbiAgICBrZXk6IDAsXG4gICAgb25lOiBcIuesrOS4gOmhuVwiLFxuICB9LFxuICB7XG4gICAga2V5OiAxLFxuICAgIG9uZTogXCLnrKzkuozpoblcIixcbiAgfSxcbiAge1xuICAgIGtleTogMixcbiAgICBvbmU6IFwi56ys5LiJ6aG5XCIsXG4gIH0sXG5dXG5cbmNsYXNzIEV4cGFuZE1vdW50ZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0ZSA9IHtcbiAgICBrZXlzOiBudWxsLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsga2V5cyB9ID0gdGhpcy5zdGF0ZVxuICAgIHJldHVybiAoXG4gICAgICA8VGFibGVcbiAgICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgICAgICAgZXhwYW5kZWRSb3dLZXlzPXtrZXlzfVxuICAgICAgICBvbkV4cGFuZENoYW5nZT17KGFyZ0tleXMpID0+IHRoaXMuc2V0U3RhdGUoeyBrZXlzOiBhcmdLZXlzIH0pfVxuICAgICAgPlxuICAgICAgICA8Q29sdW1uIHRpdGxlPVwib25lXCIgZGF0YUluZGV4PVwib25lXCIgLz5cbiAgICAgIDwvVGFibGU+XG4gICAgKVxuICB9XG59XG5cbmRlc2NyaWJlKFwiYmFzZVwiLCAoKSA9PiB7XG4gIGl0KFwi5b+r54Wn5qC45a+5XCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gVGVzdFJlbmRlcmVyLmNyZWF0ZShcbiAgICAgIDxUYWJsZVxuICAgICAgICBkYXRhU291cmNlPXtkYXRhU291cmNlfVxuICAgICAgICBkZWZhdWx0RXhwYW5kZWRSb3dLZXlzPXtbMV19XG4gICAgICAgIG9uRXhwYW5kQ2hhbmdlPXsoKSA9PiB7fX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtbiB0aXRsZT1cIm9uZVwiIGRhdGFJbmRleD1cIm9uZVwiIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICBpdChcIuaYr+WQpuiDveWGhemDqOmpseWKqFwiLCAoKSA9PiB7XG4gICAgY29uc3Qgb25FeHBhbmRDaGFuZ2UgPSBqZXN0LmZuKClcbiAgICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gICAgICA8VGFibGVcbiAgICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgICAgICAgb25FeHBhbmRDaGFuZ2U9e29uRXhwYW5kQ2hhbmdlfVxuICAgICAgICBkZWZhdWx0RXhwYW5kZWRSb3dLZXlzPXtbMV19XG4gICAgICA+XG4gICAgICAgIDxDb2x1bW4gdGl0bGU9XCJvbmVcIiBkYXRhSW5kZXg9XCJvbmVcIiAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgZXhwZWN0KHdyYXBwZXIuZmluZChcIlRhYmxlXCIpLnN0YXRlKCkuZXhwYW5kZWRSb3dLZXlzKS50b0VxdWFsKFsxXSlcbiAgICB3cmFwcGVyLmZpbmQoXCJJY29uXCIpLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiVGFibGVcIikuc3RhdGUoKS5leHBhbmRlZFJvd0tleXMpLnRvRXF1YWwoWzEsIDBdKVxuICB9KVxuXG4gIGl0KFwi5piv5ZCm6IO95aSW6YOo5o6n5Yi2XCIsICgpID0+IHtcbiAgICBjb25zdCBvbkV4cGFuZENoYW5nZSA9IGplc3QuZm4oKVxuICAgIGNvbnN0IHdyYXBwZXIwID0gbW91bnQoXG4gICAgICA8VGFibGVcbiAgICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgICAgICAgb25FeHBhbmRDaGFuZ2U9e29uRXhwYW5kQ2hhbmdlfVxuICAgICAgICBleHBhbmRlZFJvd0tleXM9e1sxXX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtbiB0aXRsZT1cIm9uZVwiIGRhdGFJbmRleD1cIm9uZVwiIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICBleHBlY3Qod3JhcHBlcjAuZmluZChcIlRhYmxlXCIpLnN0YXRlKCkuZXhwYW5kZWRSb3dLZXlzKS50b0VxdWFsKFsxXSlcbiAgICB3cmFwcGVyMC5maW5kKFwiSWNvblwiKS5hdCgwKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgZXhwZWN0KHdyYXBwZXIwLmZpbmQoXCJUYWJsZVwiKS5zdGF0ZSgpLmV4cGFuZGVkUm93S2V5cykudG9FcXVhbChbMV0pXG5cbiAgICBjb25zdCB3cmFwcGVyMSA9IG1vdW50KDxFeHBhbmRNb3VudGVyIC8+KVxuICAgIHdyYXBwZXIxLmZpbmQoXCJJY29uXCIpLmF0KDApLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlcjEuZmluZChcIlRhYmxlXCIpLnN0YXRlKCkuZXhwYW5kZWRSb3dLZXlzKS50b0VxdWFsKFswXSlcbiAgICB3cmFwcGVyMS5maW5kKFwiSWNvblwiKS5hdCgwKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgZXhwZWN0KHdyYXBwZXIxLmZpbmQoXCJUYWJsZVwiKS5zdGF0ZSgpLmV4cGFuZGVkUm93S2V5cykudG9FcXVhbChbXSlcbiAgfSlcblxuICBpdChcIuaYr+WQpuaUr+aMgSBleHBhbmRPblJvd0NsaWNrXCIsICgpID0+IHtcbiAgICBjb25zdCBvbkV4cGFuZENoYW5nZSA9IGplc3QuZm4oKVxuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxUYWJsZVxuICAgICAgICBkYXRhU291cmNlPXtkYXRhU291cmNlfVxuICAgICAgICBkZWZhdWx0RXhwYW5kZWRSb3dLZXlzPXtbMV19XG4gICAgICAgIG9uRXhwYW5kQ2hhbmdlPXtvbkV4cGFuZENoYW5nZX1cbiAgICAgICAgZXhwYW5kT25Sb3dDbGlja1xuICAgICAgPlxuICAgICAgICA8Q29sdW1uIHRpdGxlPVwib25lXCIgZGF0YUluZGV4PVwib25lXCIgLz5cbiAgICAgIDwvVGFibGU+XG4gICAgKVxuICAgIHdyYXBwZXIuZmluZCgnW3JvbGU9XCJyb3dcIl0nKS5hdCgwKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgZXhwZWN0KG9uRXhwYW5kQ2hhbmdlKS50b0hhdmVC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