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>

133 lines (112 loc) 17.8 kB
"use strict"; 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 _enzyme = require("enzyme"); var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer")); var sinon = _interopRequireWildcard(require("sinon")); 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; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(function () { return { disconnect: jest.fn(), observe: jest.fn(), unobserve: jest.fn() }; }); var Column = _["default"].Column; var filters = [{ text: "朋友圈广告", value: "1" }, { text: "公众号广告", value: "2" }]; var FilterMounter = function FilterMounter() { var _useState = (0, _react.useState)(null), _useState2 = _slicedToArray(_useState, 2), filteredValue = _useState2[0], set = _useState2[1]; return _react["default"].createElement(_["default"], { dataSource: [{ filter: "filter" }] }, _react["default"].createElement(Column, { title: "\u7B5B\u9009", dataIndex: "filter", filters: filters, filteredValue: filteredValue, onFilter: function onFilter(argFilteredValue) { return set(argFilteredValue); } })); }; describe("筛选功能", function () { beforeEach(function () { jest.useFakeTimers(); }); afterEach(function () { jest.useRealTimers(); }); it("onFilter 不能与 onSort 共用", function () { var stub = sinon.stub(console, "error"); (0, _enzyme.render)(_react["default"].createElement(_["default"], null, _react["default"].createElement(_["default"].Column, { title: "title", onFilter: function onFilter() {}, onSort: function onSort() {} }))); expect(stub.calledOnce).toEqual(true); stub.restore(); }); it("是否正确渲染", function () { var onFilter = jest.fn(); var wrapper = _reactTestRenderer["default"].create(_react["default"].createElement(_["default"], { dataSource: [{ filter: "filter" }] }, _react["default"].createElement(Column, { title: "\u7B5B\u9009", dataIndex: "filter", filters: filters, onFilter: onFilter }))); expect(wrapper).toMatchSnapshot(); }); it("是否能够内部驱动", function () { var onFilter = jest.fn(); var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], { dataSource: [{ filter: "filter" }] }, _react["default"].createElement(Column, { title: "\u7B5B\u9009", dataIndex: "filter", filters: filters, onFilter: onFilter }))); var th = wrapper.find("[role='columnheader']").at(0); th.simulate("click"); var dropdownWrapper = (0, _enzyme.mount)(wrapper.find("Trigger").instance().getComponent()); dropdownWrapper.find("label").at(1).simulate("click"); expect(onFilter).toHaveBeenCalledWith(["1"]); dropdownWrapper.find("label").at(2).simulate("click"); expect(onFilter).toHaveBeenCalledWith(["2"]); dropdownWrapper.find("label").at(0).simulate("click"); }); it("是否能够外部控制", function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(FilterMounter, null)); var th = wrapper.find("[role='columnheader']").at(0); th.simulate("click"); var dropdownWrapper = (0, _enzyme.mount)(wrapper.find("Trigger").instance().getComponent()); dropdownWrapper.find("label").at(0).simulate("click"); expect(wrapper.find(".adui-table-filter").at(0).props()["data-value"]).toEqual(["all"]); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3aW5kb3ciLCJSZXNpemVPYnNlcnZlciIsImplc3QiLCJmbiIsIm1vY2tJbXBsZW1lbnRhdGlvbiIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwidW5vYnNlcnZlIiwiQ29sdW1uIiwiVGFibGUiLCJmaWx0ZXJzIiwidGV4dCIsInZhbHVlIiwiRmlsdGVyTW91bnRlciIsInVzZVN0YXRlIiwiZmlsdGVyZWRWYWx1ZSIsInNldCIsImZpbHRlciIsImFyZ0ZpbHRlcmVkVmFsdWUiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJ1c2VGYWtlVGltZXJzIiwiYWZ0ZXJFYWNoIiwidXNlUmVhbFRpbWVycyIsIml0Iiwic3R1YiIsInNpbm9uIiwiY29uc29sZSIsInJlbmRlciIsImV4cGVjdCIsImNhbGxlZE9uY2UiLCJ0b0VxdWFsIiwicmVzdG9yZSIsIm9uRmlsdGVyIiwid3JhcHBlciIsIlRlc3RSZW5kZXJlciIsImNyZWF0ZSIsInRvTWF0Y2hTbmFwc2hvdCIsIm1vdW50IiwidGgiLCJmaW5kIiwiYXQiLCJzaW11bGF0ZSIsImRyb3Bkb3duV3JhcHBlciIsImluc3RhbmNlIiwiZ2V0Q29tcG9uZW50IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJwcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvdGFibGUvX190ZXN0c19fL2ZpbHRlci50ZXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgcmVuZGVyLCBtb3VudCB9IGZyb20gXCJlbnp5bWVcIlxuaW1wb3J0IFRlc3RSZW5kZXJlciBmcm9tIFwicmVhY3QtdGVzdC1yZW5kZXJlclwiXG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tIFwic2lub25cIlxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLlwiXG5cbndpbmRvdy5SZXNpemVPYnNlcnZlciA9XG4gIHdpbmRvdy5SZXNpemVPYnNlcnZlciB8fFxuICBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgZGlzY29ubmVjdDogamVzdC5mbigpLFxuICAgIG9ic2VydmU6IGplc3QuZm4oKSxcbiAgICB1bm9ic2VydmU6IGplc3QuZm4oKSxcbiAgfSkpXG5cbmNvbnN0IHsgQ29sdW1uIH0gPSBUYWJsZVxuXG5jb25zdCBmaWx0ZXJzID0gW1xuICB7XG4gICAgdGV4dDogXCLmnIvlj4vlnIjlub/lkYpcIixcbiAgICB2YWx1ZTogXCIxXCIsXG4gIH0sXG4gIHtcbiAgICB0ZXh0OiBcIuWFrOS8l+WPt+W5v+WRilwiLFxuICAgIHZhbHVlOiBcIjJcIixcbiAgfSxcbl1cblxuY29uc3QgRmlsdGVyTW91bnRlciA9ICgpID0+IHtcbiAgY29uc3QgW2ZpbHRlcmVkVmFsdWUsIHNldF0gPSB1c2VTdGF0ZTxhbnk+KG51bGwpXG5cbiAgcmV0dXJuIChcbiAgICA8VGFibGVcbiAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcjogXCJmaWx0ZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF19XG4gICAgPlxuICAgICAgPENvbHVtblxuICAgICAgICB0aXRsZT1cIuetm+mAiVwiXG4gICAgICAgIGRhdGFJbmRleD1cImZpbHRlclwiXG4gICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgIGZpbHRlcmVkVmFsdWU9e2ZpbHRlcmVkVmFsdWV9XG4gICAgICAgIG9uRmlsdGVyPXsoYXJnRmlsdGVyZWRWYWx1ZSkgPT4gc2V0KGFyZ0ZpbHRlcmVkVmFsdWUpfVxuICAgICAgLz5cbiAgICA8L1RhYmxlPlxuICApXG59XG5cbmRlc2NyaWJlKFwi562b6YCJ5Yqf6IO9XCIsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC51c2VGYWtlVGltZXJzKClcbiAgfSlcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlUmVhbFRpbWVycygpXG4gIH0pXG5cbiAgLy8gaXQoXCJvbkZpbHRlciBQcm9wIOaYr+WQpuiDvemqjOivgSBmdW5jdGlvblwiLCAoKSA9PiB7XG4gIC8vICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgJ2Vycm9yJylcbiAgLy8gICBjb25zdCB3cmFwcGVyID0gcmVuZGVyKFxuICAvLyAgICAgPFRhYmxlPlxuICAvLyAgICAgICA8VGFibGUuQ29sdW1uXG4gIC8vICAgICAgICAgdGl0bGU9XCJ0aXRsZVwiXG4gIC8vICAgICAgICAgb25GaWx0ZXI9XCJzdHJpbmdcIlxuICAvLyAgICAgICAvPlxuICAvLyAgICAgPC9UYWJsZT5cbiAgLy8gICApXG4gIC8vICAgZXhwZWN0KHN0dWIuY2FsbENvdW50KS50b0JlKDEpXG4gIC8vICAgKGNvbnNvbGUgYXMgSUNvbnNvbGUpLmVycm9yLnJlc3RvcmUoKVxuICAvLyB9KVxuXG4gIGl0KFwib25GaWx0ZXIg5LiN6IO95LiOIG9uU29ydCDlhbHnlKhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHN0dWIgPSBzaW5vbi5zdHViKGNvbnNvbGUsIFwiZXJyb3JcIilcbiAgICByZW5kZXIoXG4gICAgICA8VGFibGU+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gdGl0bGU9XCJ0aXRsZVwiIG9uRmlsdGVyPXsoKSA9PiB7fX0gb25Tb3J0PXsoKSA9PiB7fX0gLz5cbiAgICAgIDwvVGFibGU+XG4gICAgKVxuICAgIGV4cGVjdChzdHViLmNhbGxlZE9uY2UpLnRvRXF1YWwodHJ1ZSlcbiAgICBzdHViLnJlc3RvcmUoKVxuICB9KVxuXG4gIGl0KFwi5piv5ZCm5q2j56Gu5riy5p+TXCIsICgpID0+IHtcbiAgICBjb25zdCBvbkZpbHRlciA9IGplc3QuZm4oKVxuICAgIGNvbnN0IHdyYXBwZXIgPSBUZXN0UmVuZGVyZXIuY3JlYXRlKFxuICAgICAgPFRhYmxlXG4gICAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWx0ZXI6IFwiZmlsdGVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtblxuICAgICAgICAgIHRpdGxlPVwi562b6YCJXCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJmaWx0ZXJcIlxuICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgb25GaWx0ZXI9e29uRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG5cbiAgaXQoXCLmmK/lkKbog73lpJ/lhoXpg6jpqbHliqhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IG9uRmlsdGVyID0gamVzdC5mbigpXG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KFxuICAgICAgPFRhYmxlXG4gICAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWx0ZXI6IFwiZmlsdGVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtblxuICAgICAgICAgIHRpdGxlPVwi562b6YCJXCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJmaWx0ZXJcIlxuICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgb25GaWx0ZXI9e29uRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgY29uc3QgdGggPSB3cmFwcGVyLmZpbmQoXCJbcm9sZT0nY29sdW1uaGVhZGVyJ11cIikuYXQoMClcbiAgICB0aC5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgY29uc3QgZHJvcGRvd25XcmFwcGVyID0gbW91bnQoXG4gICAgICB3cmFwcGVyLmZpbmQoXCJUcmlnZ2VyXCIpLmluc3RhbmNlKCkuZ2V0Q29tcG9uZW50KClcbiAgICApXG4gICAgZHJvcGRvd25XcmFwcGVyLmZpbmQoXCJsYWJlbFwiKS5hdCgxKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8gZXhwZWN0KFxuICAgIC8vICAgd3JhcHBlclxuICAgIC8vICAgICAuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKVxuICAgIC8vICAgICAuYXQoMClcbiAgICAvLyAgICAgLnByb3BzKClbXCJkYXRhLXZhbHVlXCJdXG4gICAgLy8gKS50b0VxdWFsKFtcIjFcIl0pXG4gICAgZXhwZWN0KG9uRmlsdGVyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbXCIxXCJdKVxuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMikuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vIGV4cGVjdChcbiAgICAvLyAgIHdyYXBwZXJcbiAgICAvLyAgICAgLmZpbmQoXCIuYWR1aS10YWJsZS1maWx0ZXJcIilcbiAgICAvLyAgICAgLmF0KDApXG4gICAgLy8gICAgIC5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgIC8vICkudG9FcXVhbChbXCIyXCJdKVxuICAgIGV4cGVjdChvbkZpbHRlcikudG9IYXZlQmVlbkNhbGxlZFdpdGgoW1wiMlwiXSlcbiAgICAvKipcbiAgICAgKiDkuI3nn6XpgZPkuLrku4DkuYjov5vkuI3liLDov5nkuKrpgLvovpHph4zvvIzlr7zoh7QgVGFibGVGaWx0ZXIg55qEIFN0YXRlbWVudHMg5LiN6IO9IDEwMCVcbiAgICAgKiBpZiAoZmlsdGVyZWRWYWx1ZSA9PT0gXCJhbGxcIikge1xuICAgICAqICAgICAgb25GaWx0ZXIoW10pXG4gICAgICogfVxuICAgICAqL1xuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vIGplc3QucnVuQWxsVGltZXJzKClcbiAgfSlcblxuICBpdChcIuaYr+WQpuiDveWkn+WklumDqOaOp+WItlwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxGaWx0ZXJNb3VudGVyIC8+KVxuICAgIGNvbnN0IHRoID0gd3JhcHBlci5maW5kKFwiW3JvbGU9J2NvbHVtbmhlYWRlciddXCIpLmF0KDApXG4gICAgdGguc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGNvbnN0IGRyb3Bkb3duV3JhcHBlciA9IG1vdW50KFxuICAgICAgd3JhcHBlci5maW5kKFwiVHJpZ2dlclwiKS5pbnN0YW5jZSgpLmdldENvbXBvbmVudCgpXG4gICAgKVxuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGV4cGVjdChcbiAgICAgIHdyYXBwZXIuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKS5hdCgwKS5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgICkudG9FcXVhbChbXCJhbGxcIl0pXG4gICAgLy8gZHJvcGRvd25XcmFwcGVyXG4gICAgLy8gICAuZmluZChcImxhYmVsXCIpXG4gICAgLy8gICAuYXQoMilcbiAgICAvLyAgIC5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8gZXhwZWN0KFxuICAgIC8vICAgd3JhcHBlclxuICAgIC8vICAgICAuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKVxuICAgIC8vICAgICAuYXQoMClcbiAgICAvLyAgICAgLnByb3BzKClbXCJkYXRhLXZhbHVlXCJdXG4gICAgLy8gKS50b0VxdWFsKFtcIjJcIl0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUFBLE1BQU0sQ0FBQ0MsY0FBUCxHQUNFRCxNQUFNLENBQUNDLGNBQVAsSUFDQUMsSUFBSSxDQUFDQyxFQUFMLEdBQVVDLGtCQUFWLENBQTZCO0VBQUEsT0FBTztJQUNsQ0MsVUFBVSxFQUFFSCxJQUFJLENBQUNDLEVBQUwsRUFEc0I7SUFFbENHLE9BQU8sRUFBRUosSUFBSSxDQUFDQyxFQUFMLEVBRnlCO0lBR2xDSSxTQUFTLEVBQUVMLElBQUksQ0FBQ0MsRUFBTDtFQUh1QixDQUFQO0FBQUEsQ0FBN0IsQ0FGRjtBQVFBLElBQVFLLE1BQVIsR0FB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