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>
107 lines • 16.7 kB
JavaScript
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
import React, { useState } from "react";
import { render, mount } from "enzyme";
import TestRenderer from "react-test-renderer";
import * as sinon from "sinon";
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 filters = [{
text: "朋友圈广告",
value: "1"
}, {
text: "公众号广告",
value: "2"
}];
var FilterMounter = function FilterMounter() {
var _useState = useState(null),
_useState2 = _slicedToArray(_useState, 2),
filteredValue = _useState2[0],
set = _useState2[1];
return React.createElement(Table, {
dataSource: [{
filter: "filter"
}]
}, React.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");
render(React.createElement(Table, null, React.createElement(Table.Column, {
title: "title",
onFilter: function onFilter() {},
onSort: function onSort() {}
})));
expect(stub.calledOnce).toEqual(true);
stub.restore();
});
it("是否正确渲染", function () {
var onFilter = jest.fn();
var wrapper = TestRenderer.create(React.createElement(Table, {
dataSource: [{
filter: "filter"
}]
}, React.createElement(Column, {
title: "\u7B5B\u9009",
dataIndex: "filter",
filters: filters,
onFilter: onFilter
})));
expect(wrapper).toMatchSnapshot();
});
it("是否能够内部驱动", function () {
var onFilter = jest.fn();
var wrapper = mount(React.createElement(Table, {
dataSource: [{
filter: "filter"
}]
}, React.createElement(Column, {
title: "\u7B5B\u9009",
dataIndex: "filter",
filters: filters,
onFilter: onFilter
})));
var th = wrapper.find("[role='columnheader']").at(0);
th.simulate("click");
var dropdownWrapper = 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 = mount(React.createElement(FilterMounter, null));
var th = wrapper.find("[role='columnheader']").at(0);
th.simulate("click");
var dropdownWrapper = 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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwicmVuZGVyIiwibW91bnQiLCJUZXN0UmVuZGVyZXIiLCJzaW5vbiIsIlRhYmxlIiwid2luZG93IiwiUmVzaXplT2JzZXJ2ZXIiLCJqZXN0IiwiZm4iLCJtb2NrSW1wbGVtZW50YXRpb24iLCJkaXNjb25uZWN0Iiwib2JzZXJ2ZSIsInVub2JzZXJ2ZSIsIkNvbHVtbiIsImZpbHRlcnMiLCJ0ZXh0IiwidmFsdWUiLCJGaWx0ZXJNb3VudGVyIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZmlsdGVyZWRWYWx1ZSIsInNldCIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU291cmNlIiwiZmlsdGVyIiwidGl0bGUiLCJkYXRhSW5kZXgiLCJvbkZpbHRlciIsImFyZ0ZpbHRlcmVkVmFsdWUiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJ1c2VGYWtlVGltZXJzIiwiYWZ0ZXJFYWNoIiwidXNlUmVhbFRpbWVycyIsIml0Iiwic3R1YiIsImNvbnNvbGUiLCJvblNvcnQiLCJleHBlY3QiLCJjYWxsZWRPbmNlIiwidG9FcXVhbCIsInJlc3RvcmUiLCJ3cmFwcGVyIiwiY3JlYXRlIiwidG9NYXRjaFNuYXBzaG90IiwidGgiLCJmaW5kIiwiYXQiLCJzaW11bGF0ZSIsImRyb3Bkb3duV3JhcHBlciIsImluc3RhbmNlIiwiZ2V0Q29tcG9uZW50IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJwcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvdGFibGUvX190ZXN0c19fL2ZpbHRlci50ZXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgcmVuZGVyLCBtb3VudCB9IGZyb20gXCJlbnp5bWVcIlxuaW1wb3J0IFRlc3RSZW5kZXJlciBmcm9tIFwicmVhY3QtdGVzdC1yZW5kZXJlclwiXG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tIFwic2lub25cIlxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLlwiXG5cbndpbmRvdy5SZXNpemVPYnNlcnZlciA9XG4gIHdpbmRvdy5SZXNpemVPYnNlcnZlciB8fFxuICBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgZGlzY29ubmVjdDogamVzdC5mbigpLFxuICAgIG9ic2VydmU6IGplc3QuZm4oKSxcbiAgICB1bm9ic2VydmU6IGplc3QuZm4oKSxcbiAgfSkpXG5cbmNvbnN0IHsgQ29sdW1uIH0gPSBUYWJsZVxuXG5jb25zdCBmaWx0ZXJzID0gW1xuICB7XG4gICAgdGV4dDogXCLmnIvlj4vlnIjlub/lkYpcIixcbiAgICB2YWx1ZTogXCIxXCIsXG4gIH0sXG4gIHtcbiAgICB0ZXh0OiBcIuWFrOS8l+WPt+W5v+WRilwiLFxuICAgIHZhbHVlOiBcIjJcIixcbiAgfSxcbl1cblxuY29uc3QgRmlsdGVyTW91bnRlciA9ICgpID0+IHtcbiAgY29uc3QgW2ZpbHRlcmVkVmFsdWUsIHNldF0gPSB1c2VTdGF0ZTxhbnk+KG51bGwpXG5cbiAgcmV0dXJuIChcbiAgICA8VGFibGVcbiAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcjogXCJmaWx0ZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF19XG4gICAgPlxuICAgICAgPENvbHVtblxuICAgICAgICB0aXRsZT1cIuetm+mAiVwiXG4gICAgICAgIGRhdGFJbmRleD1cImZpbHRlclwiXG4gICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgIGZpbHRlcmVkVmFsdWU9e2ZpbHRlcmVkVmFsdWV9XG4gICAgICAgIG9uRmlsdGVyPXsoYXJnRmlsdGVyZWRWYWx1ZSkgPT4gc2V0KGFyZ0ZpbHRlcmVkVmFsdWUpfVxuICAgICAgLz5cbiAgICA8L1RhYmxlPlxuICApXG59XG5cbmRlc2NyaWJlKFwi562b6YCJ5Yqf6IO9XCIsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC51c2VGYWtlVGltZXJzKClcbiAgfSlcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlUmVhbFRpbWVycygpXG4gIH0pXG5cbiAgLy8gaXQoXCJvbkZpbHRlciBQcm9wIOaYr+WQpuiDvemqjOivgSBmdW5jdGlvblwiLCAoKSA9PiB7XG4gIC8vICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgJ2Vycm9yJylcbiAgLy8gICBjb25zdCB3cmFwcGVyID0gcmVuZGVyKFxuICAvLyAgICAgPFRhYmxlPlxuICAvLyAgICAgICA8VGFibGUuQ29sdW1uXG4gIC8vICAgICAgICAgdGl0bGU9XCJ0aXRsZVwiXG4gIC8vICAgICAgICAgb25GaWx0ZXI9XCJzdHJpbmdcIlxuICAvLyAgICAgICAvPlxuICAvLyAgICAgPC9UYWJsZT5cbiAgLy8gICApXG4gIC8vICAgZXhwZWN0KHN0dWIuY2FsbENvdW50KS50b0JlKDEpXG4gIC8vICAgKGNvbnNvbGUgYXMgSUNvbnNvbGUpLmVycm9yLnJlc3RvcmUoKVxuICAvLyB9KVxuXG4gIGl0KFwib25GaWx0ZXIg5LiN6IO95LiOIG9uU29ydCDlhbHnlKhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHN0dWIgPSBzaW5vbi5zdHViKGNvbnNvbGUsIFwiZXJyb3JcIilcbiAgICByZW5kZXIoXG4gICAgICA8VGFibGU+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gdGl0bGU9XCJ0aXRsZVwiIG9uRmlsdGVyPXsoKSA9PiB7fX0gb25Tb3J0PXsoKSA9PiB7fX0gLz5cbiAgICAgIDwvVGFibGU+XG4gICAgKVxuICAgIGV4cGVjdChzdHViLmNhbGxlZE9uY2UpLnRvRXF1YWwodHJ1ZSlcbiAgICBzdHViLnJlc3RvcmUoKVxuICB9KVxuXG4gIGl0KFwi5piv5ZCm5q2j56Gu5riy5p+TXCIsICgpID0+IHtcbiAgICBjb25zdCBvbkZpbHRlciA9IGplc3QuZm4oKVxuICAgIGNvbnN0IHdyYXBwZXIgPSBUZXN0UmVuZGVyZXIuY3JlYXRlKFxuICAgICAgPFRhYmxlXG4gICAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWx0ZXI6IFwiZmlsdGVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtblxuICAgICAgICAgIHRpdGxlPVwi562b6YCJXCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJmaWx0ZXJcIlxuICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgb25GaWx0ZXI9e29uRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG5cbiAgaXQoXCLmmK/lkKbog73lpJ/lhoXpg6jpqbHliqhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IG9uRmlsdGVyID0gamVzdC5mbigpXG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KFxuICAgICAgPFRhYmxlXG4gICAgICAgIGRhdGFTb3VyY2U9e1tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWx0ZXI6IFwiZmlsdGVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgID5cbiAgICAgICAgPENvbHVtblxuICAgICAgICAgIHRpdGxlPVwi562b6YCJXCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJmaWx0ZXJcIlxuICAgICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgICAgb25GaWx0ZXI9e29uRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgY29uc3QgdGggPSB3cmFwcGVyLmZpbmQoXCJbcm9sZT0nY29sdW1uaGVhZGVyJ11cIikuYXQoMClcbiAgICB0aC5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgY29uc3QgZHJvcGRvd25XcmFwcGVyID0gbW91bnQoXG4gICAgICB3cmFwcGVyLmZpbmQoXCJUcmlnZ2VyXCIpLmluc3RhbmNlKCkuZ2V0Q29tcG9uZW50KClcbiAgICApXG4gICAgZHJvcGRvd25XcmFwcGVyLmZpbmQoXCJsYWJlbFwiKS5hdCgxKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8gZXhwZWN0KFxuICAgIC8vICAgd3JhcHBlclxuICAgIC8vICAgICAuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKVxuICAgIC8vICAgICAuYXQoMClcbiAgICAvLyAgICAgLnByb3BzKClbXCJkYXRhLXZhbHVlXCJdXG4gICAgLy8gKS50b0VxdWFsKFtcIjFcIl0pXG4gICAgZXhwZWN0KG9uRmlsdGVyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbXCIxXCJdKVxuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMikuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vIGV4cGVjdChcbiAgICAvLyAgIHdyYXBwZXJcbiAgICAvLyAgICAgLmZpbmQoXCIuYWR1aS10YWJsZS1maWx0ZXJcIilcbiAgICAvLyAgICAgLmF0KDApXG4gICAgLy8gICAgIC5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgIC8vICkudG9FcXVhbChbXCIyXCJdKVxuICAgIGV4cGVjdChvbkZpbHRlcikudG9IYXZlQmVlbkNhbGxlZFdpdGgoW1wiMlwiXSlcbiAgICAvKipcbiAgICAgKiDkuI3nn6XpgZPkuLrku4DkuYjov5vkuI3liLDov5nkuKrpgLvovpHph4zvvIzlr7zoh7QgVGFibGVGaWx0ZXIg55qEIFN0YXRlbWVudHMg5LiN6IO9IDEwMCVcbiAgICAgKiBpZiAoZmlsdGVyZWRWYWx1ZSA9PT0gXCJhbGxcIikge1xuICAgICAqICAgICAgb25GaWx0ZXIoW10pXG4gICAgICogfVxuICAgICAqL1xuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vIGplc3QucnVuQWxsVGltZXJzKClcbiAgfSlcblxuICBpdChcIuaYr+WQpuiDveWkn+WklumDqOaOp+WItlwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxGaWx0ZXJNb3VudGVyIC8+KVxuICAgIGNvbnN0IHRoID0gd3JhcHBlci5maW5kKFwiW3JvbGU9J2NvbHVtbmhlYWRlciddXCIpLmF0KDApXG4gICAgdGguc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGNvbnN0IGRyb3Bkb3duV3JhcHBlciA9IG1vdW50KFxuICAgICAgd3JhcHBlci5maW5kKFwiVHJpZ2dlclwiKS5pbnN0YW5jZSgpLmdldENvbXBvbmVudCgpXG4gICAgKVxuICAgIGRyb3Bkb3duV3JhcHBlci5maW5kKFwibGFiZWxcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGV4cGVjdChcbiAgICAgIHdyYXBwZXIuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKS5hdCgwKS5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgICkudG9FcXVhbChbXCJhbGxcIl0pXG4gICAgLy8gZHJvcGRvd25XcmFwcGVyXG4gICAgLy8gICAuZmluZChcImxhYmVsXCIpXG4gICAgLy8gICAuYXQoMilcbiAgICAvLyAgIC5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8gZXhwZWN0KFxuICAgIC8vICAgd3JhcHBlclxuICAgIC8vICAgICAuZmluZChcIi5hZHVpLXRhYmxlLWZpbHRlclwiKVxuICAgIC8vICAgICAuYXQoMClcbiAgICAvLyAgICAgLnByb3BzKClbXCJkYXRhLXZhbHVlXCJdXG4gICAgLy8gKS50b0VxdWFsKFtcIjJcIl0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFFBQVEsUUFBUSxPQUFPO0FBQ3ZDLFNBQVNDLE1BQU0sRUFBRUMsS0FBSyxRQUFRLFFBQVE7QUFDdEMsT0FBT0MsWUFBWSxNQUFNLHFCQUFxQjtBQUM5QyxPQUFPLEtBQUtDLEtBQUssTUFBTSxPQUFPO0FBQzlCLE9BQU9DLEtBQUssTUFBTSxJQUFJO0FBRXRCQyxNQUFNLENBQUNDLGNBQWMsR0FDbkJE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