@kdcloudjs/table 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +4 -2
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +2 -2
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/pipeline/features/multiSelect.js +3 -1
- package/lib/table/pipeline/features/multiSelect.js +3 -1
- package/package.json +1 -1
- package/es/table/pipeline/features/__test__/multiSelect.test.d.ts +0 -1
- package/es/table/pipeline/features/__test__/multiSelect.test.js +0 -152
- package/es/table/pipeline/features/__test__/rowDetail.test.d.ts +0 -1
- package/es/table/pipeline/features/__test__/rowDetail.test.js +0 -223
- package/es/table/pipeline/features/__test__/rowGrouping.test.d.ts +0 -1
- package/es/table/pipeline/features/__test__/rowGrouping.test.js +0 -120
- package/es/table/pipeline/features/__test__/singleSelect.test.d.ts +0 -1
- package/es/table/pipeline/features/__test__/singleSelect.test.js +0 -191
- package/es/table/pipeline/features/__test__/sort.test.d.ts +0 -1
- package/es/table/pipeline/features/__test__/sort.test.js +0 -213
- package/es/table/pipeline/features/__test__/tips.test.d.ts +0 -1
- package/es/table/pipeline/features/__test__/tips.test.js +0 -123
- package/es/table/pipeline/features/__test__/treeMode.test.d.ts +0 -1
- package/es/table/pipeline/features/__test__/treeMode.test.js +0 -203
- package/es/table/pipeline/features/filter/__test__/Filter.test.d.ts +0 -1
- package/es/table/pipeline/features/filter/__test__/Filter.test.js +0 -29
- package/lib/table/pipeline/features/__test__/multiSelect.test.d.ts +0 -1
- package/lib/table/pipeline/features/__test__/multiSelect.test.js +0 -163
- package/lib/table/pipeline/features/__test__/rowDetail.test.d.ts +0 -1
- package/lib/table/pipeline/features/__test__/rowDetail.test.js +0 -230
- package/lib/table/pipeline/features/__test__/rowGrouping.test.d.ts +0 -1
- package/lib/table/pipeline/features/__test__/rowGrouping.test.js +0 -129
- package/lib/table/pipeline/features/__test__/singleSelect.test.d.ts +0 -1
- package/lib/table/pipeline/features/__test__/singleSelect.test.js +0 -201
- package/lib/table/pipeline/features/__test__/sort.test.d.ts +0 -1
- package/lib/table/pipeline/features/__test__/sort.test.js +0 -220
- package/lib/table/pipeline/features/__test__/tips.test.d.ts +0 -1
- package/lib/table/pipeline/features/__test__/tips.test.js +0 -133
- package/lib/table/pipeline/features/__test__/treeMode.test.d.ts +0 -1
- package/lib/table/pipeline/features/__test__/treeMode.test.js +0 -208
- package/lib/table/pipeline/features/filter/__test__/Filter.test.d.ts +0 -1
- package/lib/table/pipeline/features/filter/__test__/Filter.test.js +0 -36
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
2
|
-
import { treeMode } from '../treeMode';
|
|
3
|
-
import { useTablePipeline } from '../../pipeline';
|
|
4
|
-
import { mount } from 'enzyme';
|
|
5
|
-
import { renderHook } from '@testing-library/react-hooks';
|
|
6
|
-
import { Classes } from '../../../base/styles';
|
|
7
|
-
|
|
8
|
-
function makeChildren(prefix) {
|
|
9
|
-
return [{
|
|
10
|
-
id: "".concat(prefix, "-1"),
|
|
11
|
-
title: '二级标题',
|
|
12
|
-
dept: '应用部',
|
|
13
|
-
dest: '云南大理',
|
|
14
|
-
guide: 'Douglas Lee',
|
|
15
|
-
children: [{
|
|
16
|
-
id: "".concat(prefix, "-1-1"),
|
|
17
|
-
title: '三级标题',
|
|
18
|
-
dept: '平台大前端-UED',
|
|
19
|
-
dest: '云南大理',
|
|
20
|
-
guide: 'Douglas Lee'
|
|
21
|
-
}, {
|
|
22
|
-
id: "".concat(prefix, "-1-2"),
|
|
23
|
-
title: '三级标题',
|
|
24
|
-
dept: '平台大前端-前端',
|
|
25
|
-
dest: '云南大理',
|
|
26
|
-
guide: 'Douglas Lee'
|
|
27
|
-
}]
|
|
28
|
-
}, {
|
|
29
|
-
id: "".concat(prefix, "-2"),
|
|
30
|
-
title: '二级标题',
|
|
31
|
-
dept: '应用部',
|
|
32
|
-
dest: '云南大理',
|
|
33
|
-
guide: 'Douglas Lee',
|
|
34
|
-
children: [{
|
|
35
|
-
id: "".concat(prefix, "-2-1"),
|
|
36
|
-
title: '三级标题',
|
|
37
|
-
dept: '平台大前端-UED',
|
|
38
|
-
dest: '云南大理',
|
|
39
|
-
guide: 'Douglas Lee'
|
|
40
|
-
}, {
|
|
41
|
-
id: "".concat(prefix, "-2-2"),
|
|
42
|
-
title: '三级标题',
|
|
43
|
-
dept: '平台大前端-前端',
|
|
44
|
-
dest: '云南大理',
|
|
45
|
-
guide: 'Douglas Lee'
|
|
46
|
-
}]
|
|
47
|
-
}, {
|
|
48
|
-
id: "".concat(prefix, "-3"),
|
|
49
|
-
title: '二级标题',
|
|
50
|
-
dept: '应用部',
|
|
51
|
-
dest: '云南大理',
|
|
52
|
-
guide: 'Douglas Lee'
|
|
53
|
-
}];
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
var dataSource = [{
|
|
57
|
-
id: '1',
|
|
58
|
-
title: '一级标题',
|
|
59
|
-
dept: '云苍穹-前端',
|
|
60
|
-
dest: 'South Maddison',
|
|
61
|
-
guide: 'Don Moreno',
|
|
62
|
-
children: makeChildren('1')
|
|
63
|
-
}, {
|
|
64
|
-
id: '2',
|
|
65
|
-
title: '一级标题',
|
|
66
|
-
dept: '云苍穹-模型',
|
|
67
|
-
dest: 'Emilhaven',
|
|
68
|
-
guide: 'Douglas Richards',
|
|
69
|
-
children: makeChildren('2')
|
|
70
|
-
}, {
|
|
71
|
-
id: '3',
|
|
72
|
-
title: '一级标题',
|
|
73
|
-
dept: '云苍穹-基础',
|
|
74
|
-
dest: '云南大理',
|
|
75
|
-
guide: 'Douglas Lee',
|
|
76
|
-
children: makeChildren('3')
|
|
77
|
-
}, {
|
|
78
|
-
id: '4',
|
|
79
|
-
title: '一级标题',
|
|
80
|
-
dept: '云苍穹-体验',
|
|
81
|
-
dest: '杭州千岛湖',
|
|
82
|
-
guide: 'Eric Castillo',
|
|
83
|
-
children: makeChildren('4')
|
|
84
|
-
}, {
|
|
85
|
-
id: '5',
|
|
86
|
-
title: '一级标题',
|
|
87
|
-
dept: '云苍穹-运营',
|
|
88
|
-
dest: 'East Karl',
|
|
89
|
-
guide: 'Herbert Patton'
|
|
90
|
-
}];
|
|
91
|
-
var columns = [{
|
|
92
|
-
code: 'title',
|
|
93
|
-
name: '标题',
|
|
94
|
-
width: 200,
|
|
95
|
-
getCellProps: function getCellProps() {
|
|
96
|
-
return {
|
|
97
|
-
style: {
|
|
98
|
-
background: 'red'
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
code: 'dept',
|
|
104
|
-
name: '部门名称',
|
|
105
|
-
width: 180
|
|
106
|
-
}, {
|
|
107
|
-
code: 'dest',
|
|
108
|
-
name: '团建目的地',
|
|
109
|
-
width: 160
|
|
110
|
-
}, {
|
|
111
|
-
code: 'guide',
|
|
112
|
-
name: '当地导游',
|
|
113
|
-
width: 160
|
|
114
|
-
}];
|
|
115
|
-
describe('treeMode 单元测试', function () {
|
|
116
|
-
var opts = {
|
|
117
|
-
openKeys: ['4', '4-2'],
|
|
118
|
-
clickArea: 'content',
|
|
119
|
-
onChangeOpenKeys: jest.fn()
|
|
120
|
-
};
|
|
121
|
-
var newPipeline = null;
|
|
122
|
-
beforeEach(function () {
|
|
123
|
-
var _renderHook = renderHook(function () {
|
|
124
|
-
return useTablePipeline({
|
|
125
|
-
primaryKey: 'id'
|
|
126
|
-
}).input({
|
|
127
|
-
dataSource: dataSource,
|
|
128
|
-
columns: columns
|
|
129
|
-
});
|
|
130
|
-
}),
|
|
131
|
-
result = _renderHook.result;
|
|
132
|
-
|
|
133
|
-
var tablePipeline = result.current;
|
|
134
|
-
newPipeline = treeMode(opts)(tablePipeline);
|
|
135
|
-
});
|
|
136
|
-
afterEach(function () {
|
|
137
|
-
newPipeline = null;
|
|
138
|
-
opts.onChangeOpenKeys.mockClear();
|
|
139
|
-
});
|
|
140
|
-
it('初始化展示', function () {
|
|
141
|
-
// 5 + 3 + 2
|
|
142
|
-
expect(newPipeline.getDataSource().length).toBe(10);
|
|
143
|
-
});
|
|
144
|
-
it('展开图标单元格渲染', function () {
|
|
145
|
-
var col = newPipeline.getColumns();
|
|
146
|
-
var wrapper = mount(col[0].render('一级标题', newPipeline.getDataSource()[0], 0));
|
|
147
|
-
expect(_findInstanceProperty(wrapper).call(wrapper, 'CaretRightIcon').length).toBe(1);
|
|
148
|
-
|
|
149
|
-
var div = _findInstanceProperty(wrapper).call(wrapper, 'div').at(0);
|
|
150
|
-
|
|
151
|
-
div.simulate('click');
|
|
152
|
-
expect(opts.onChangeOpenKeys).toHaveBeenCalled();
|
|
153
|
-
expect(opts.onChangeOpenKeys).toBeCalledWith(['4', '4-2', '1'], '1', 'expand');
|
|
154
|
-
opts.onChangeOpenKeys.mockClear(); // 展开列点击
|
|
155
|
-
|
|
156
|
-
var expandColWrapper = mount(col[0].render('一级标题', newPipeline.getDataSource()[3], 3));
|
|
157
|
-
|
|
158
|
-
var div1 = _findInstanceProperty(expandColWrapper).call(expandColWrapper, 'div').at(0);
|
|
159
|
-
|
|
160
|
-
div1.simulate('click');
|
|
161
|
-
expect(opts.onChangeOpenKeys).toBeCalledWith(['4-2'], '4', 'collapse'); // 叶子节点渲染
|
|
162
|
-
|
|
163
|
-
var leafWrapper = mount(col[0].render('一级标题', newPipeline.getDataSource()[9], 9));
|
|
164
|
-
expect(_findInstanceProperty(leafWrapper).call(leafWrapper, ".expansion-cell.".concat(Classes.leaf)).length).toBe(2);
|
|
165
|
-
});
|
|
166
|
-
it('getCellProps', function () {
|
|
167
|
-
var col = newPipeline.getColumns(); // clickArea: 'content' 取默认的cellProps
|
|
168
|
-
|
|
169
|
-
expect(col[0].getCellProps()).toEqual({
|
|
170
|
-
style: {
|
|
171
|
-
background: 'red'
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
it('clickArea 为cell', function () {
|
|
176
|
-
var _renderHook2 = renderHook(function () {
|
|
177
|
-
return useTablePipeline({
|
|
178
|
-
primaryKey: 'id'
|
|
179
|
-
}).input({
|
|
180
|
-
dataSource: dataSource,
|
|
181
|
-
columns: columns
|
|
182
|
-
});
|
|
183
|
-
}),
|
|
184
|
-
result = _renderHook2.result;
|
|
185
|
-
|
|
186
|
-
var tablePipeline = result.current;
|
|
187
|
-
opts.clickArea = 'cell';
|
|
188
|
-
var newPipeline = treeMode(opts)(tablePipeline);
|
|
189
|
-
var col = newPipeline.getColumns();
|
|
190
|
-
var cellProps = col[0].getCellProps('一级标题', newPipeline.getDataSource()[0], 0);
|
|
191
|
-
expect(cellProps.style).toEqual({
|
|
192
|
-
background: 'red',
|
|
193
|
-
cursor: 'pointer'
|
|
194
|
-
});
|
|
195
|
-
cellProps.onClick();
|
|
196
|
-
expect(opts.onChangeOpenKeys).toHaveBeenCalled(); // 叶子节点cellProps
|
|
197
|
-
|
|
198
|
-
var leafCellProps = col[0].getCellProps('一级标题', newPipeline.getDataSource()[9], 9);
|
|
199
|
-
expect(leafCellProps.style).toEqual({
|
|
200
|
-
background: 'red'
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { mount } from 'enzyme';
|
|
4
|
-
import { Classes } from '../../../../base/styles';
|
|
5
|
-
import Filter from '../Filter';
|
|
6
|
-
import DefaultFilterContent from '../DefaultFilterContent';
|
|
7
|
-
var NAME = 'Filter';
|
|
8
|
-
var setFilter = jest.fn();
|
|
9
|
-
var setFilterModel = jest.fn();
|
|
10
|
-
describe("".concat(NAME), function () {
|
|
11
|
-
it('render and test event', function () {
|
|
12
|
-
var wrapper = mount( /*#__PURE__*/React.createElement(Filter, {
|
|
13
|
-
setFilter: setFilter,
|
|
14
|
-
setFilterModel: setFilterModel,
|
|
15
|
-
filterModel: {
|
|
16
|
-
filter: []
|
|
17
|
-
},
|
|
18
|
-
stopClickEventPropagation: true,
|
|
19
|
-
isFilterActive: true
|
|
20
|
-
}));
|
|
21
|
-
|
|
22
|
-
_findInstanceProperty(wrapper).call(wrapper, ".".concat(Classes.filterIcon)).at(0).simulate('click');
|
|
23
|
-
|
|
24
|
-
_findInstanceProperty(wrapper).call(wrapper, 'div').at(0).simulate('mousedown');
|
|
25
|
-
|
|
26
|
-
expect(_findInstanceProperty(wrapper).call(wrapper, DefaultFilterContent).length).toBe(1);
|
|
27
|
-
wrapper.unmount();
|
|
28
|
-
});
|
|
29
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
6
|
-
|
|
7
|
-
var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
|
|
8
|
-
|
|
9
|
-
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
10
|
-
|
|
11
|
-
var _react = _interopRequireDefault(require("react"));
|
|
12
|
-
|
|
13
|
-
var _reactHooks = require("@testing-library/react-hooks");
|
|
14
|
-
|
|
15
|
-
var _enzyme = require("enzyme");
|
|
16
|
-
|
|
17
|
-
var _multiSelect2 = require("../multiSelect");
|
|
18
|
-
|
|
19
|
-
var _pipeline = require("../../pipeline");
|
|
20
|
-
|
|
21
|
-
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
22
|
-
var t = {};
|
|
23
|
-
|
|
24
|
-
for (var p in s) {
|
|
25
|
-
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
|
|
29
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
30
|
-
}
|
|
31
|
-
return t;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
var NAME = 'multiSelect';
|
|
35
|
-
|
|
36
|
-
var MockCheckbox = function MockCheckbox(_a) {
|
|
37
|
-
var indeterminate = _a.indeterminate,
|
|
38
|
-
props = __rest(_a, ["indeterminate"]);
|
|
39
|
-
|
|
40
|
-
return /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
|
|
41
|
-
type: 'checkbox',
|
|
42
|
-
className: 'checkbox'
|
|
43
|
-
}, props));
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
var ROWS = [{
|
|
47
|
-
id: '1'
|
|
48
|
-
}];
|
|
49
|
-
var INPUT_DATA = {
|
|
50
|
-
columns: [],
|
|
51
|
-
dataSource: ROWS
|
|
52
|
-
};
|
|
53
|
-
describe("".concat(NAME), function () {
|
|
54
|
-
it('not set Checkbox', function () {
|
|
55
|
-
var _renderHook = (0, _reactHooks.renderHook)(function () {
|
|
56
|
-
return (0, _pipeline.useTablePipeline)();
|
|
57
|
-
}),
|
|
58
|
-
result = _renderHook.result;
|
|
59
|
-
|
|
60
|
-
var _multiSelect = function _multiSelect() {
|
|
61
|
-
return (0, _multiSelect2.multiSelect)()(result.current);
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
expect(_multiSelect).toThrowError(/Checkbox/);
|
|
65
|
-
});
|
|
66
|
-
it('set require props,test checkboxColumn render, cell change and select all event', function () {
|
|
67
|
-
var _renderHook2 = (0, _reactHooks.renderHook)(function () {
|
|
68
|
-
return (0, _pipeline.useTablePipeline)({
|
|
69
|
-
components: {
|
|
70
|
-
Checkbox: MockCheckbox
|
|
71
|
-
}
|
|
72
|
-
}).input(INPUT_DATA).primaryKey('id');
|
|
73
|
-
}),
|
|
74
|
-
result = _renderHook2.result;
|
|
75
|
-
|
|
76
|
-
(0, _multiSelect2.multiSelect)({
|
|
77
|
-
stopClickEventPropagation: true // 阻止冒泡
|
|
78
|
-
|
|
79
|
-
})(result.current);
|
|
80
|
-
expect(result.current.getColumns().length).toBeGreaterThan(0);
|
|
81
|
-
var checkboxColumn = result.current.getColumns()[0];
|
|
82
|
-
var wrapper = (0, _enzyme.mount)(checkboxColumn.render({}, {
|
|
83
|
-
id: '1'
|
|
84
|
-
}, 0)); // 测试复选框行点击onChange
|
|
85
|
-
|
|
86
|
-
(0, _reactHooks.act)(function () {
|
|
87
|
-
(0, _find.default)(wrapper).call(wrapper, MockCheckbox).at(0).simulate('change', {
|
|
88
|
-
target: {},
|
|
89
|
-
nativeEvent: {
|
|
90
|
-
stopPropagation: jest.fn()
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
expect(result.current.getStateAtKey('multiSelect')).toMatchObject({
|
|
95
|
-
"lastKey": "1",
|
|
96
|
-
"value": ["1"]
|
|
97
|
-
});
|
|
98
|
-
var titleWrapper = (0, _enzyme.mount)(checkboxColumn.title); // 测试选择列表头全选
|
|
99
|
-
|
|
100
|
-
(0, _reactHooks.act)(function () {
|
|
101
|
-
(0, _find.default)(titleWrapper).call(titleWrapper, MockCheckbox).at(0).simulate('change');
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
it('set clickArea=cell, test getCellProps and cell click', function () {
|
|
105
|
-
var _renderHook3 = (0, _reactHooks.renderHook)(function () {
|
|
106
|
-
return (0, _pipeline.useTablePipeline)({
|
|
107
|
-
components: {
|
|
108
|
-
Checkbox: MockCheckbox
|
|
109
|
-
}
|
|
110
|
-
}).input(INPUT_DATA).primaryKey('id');
|
|
111
|
-
}),
|
|
112
|
-
result = _renderHook3.result;
|
|
113
|
-
|
|
114
|
-
(0, _multiSelect2.multiSelect)({
|
|
115
|
-
clickArea: 'cell'
|
|
116
|
-
})(result.current);
|
|
117
|
-
var checkboxColumn = result.current.getColumns()[0]; // 测试getCellProps
|
|
118
|
-
|
|
119
|
-
var cellProps = checkboxColumn.getCellProps('', ROWS[0], 0);
|
|
120
|
-
|
|
121
|
-
if (typeof cellProps.onClick === 'function') {
|
|
122
|
-
(0, _reactHooks.act)(function () {
|
|
123
|
-
var mockEvent = {};
|
|
124
|
-
cellProps.onClick(mockEvent);
|
|
125
|
-
});
|
|
126
|
-
expect(result.current.getStateAtKey('multiSelect')).toMatchObject({
|
|
127
|
-
"lastKey": "1",
|
|
128
|
-
"value": ["1"]
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
it('set clickArea=row, test appendRowPropsGetter fn', function () {
|
|
133
|
-
var _renderHook4 = (0, _reactHooks.renderHook)(function () {
|
|
134
|
-
return (0, _pipeline.useTablePipeline)({
|
|
135
|
-
components: {
|
|
136
|
-
Checkbox: MockCheckbox
|
|
137
|
-
}
|
|
138
|
-
}).input(INPUT_DATA).primaryKey('id');
|
|
139
|
-
}),
|
|
140
|
-
result = _renderHook4.result;
|
|
141
|
-
|
|
142
|
-
var pipeline = (0, _multiSelect2.multiSelect)({
|
|
143
|
-
lastKey: '1',
|
|
144
|
-
clickArea: 'row'
|
|
145
|
-
})(result.current); // 调用 appendRowPropsGetter 设置的函数
|
|
146
|
-
|
|
147
|
-
var props = pipeline.getProps();
|
|
148
|
-
var rowProps = props.getRowProps(ROWS[0], 0);
|
|
149
|
-
|
|
150
|
-
if (rowProps.onClick) {
|
|
151
|
-
(0, _reactHooks.act)(function () {
|
|
152
|
-
var mockEvent = {
|
|
153
|
-
shiftKey: true
|
|
154
|
-
};
|
|
155
|
-
rowProps.onClick(mockEvent);
|
|
156
|
-
});
|
|
157
|
-
expect(result.current.getStateAtKey('multiSelect')).toMatchObject({
|
|
158
|
-
"lastKey": "1",
|
|
159
|
-
"value": ["1"]
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
6
|
-
|
|
7
|
-
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
8
|
-
|
|
9
|
-
var _rowDetail = require("../rowDetail");
|
|
10
|
-
|
|
11
|
-
var _pipeline = require("../../pipeline");
|
|
12
|
-
|
|
13
|
-
var _enzyme = require("enzyme");
|
|
14
|
-
|
|
15
|
-
var _reactHooks = require("@testing-library/react-hooks");
|
|
16
|
-
|
|
17
|
-
var _testUtils = require("react-dom/test-utils");
|
|
18
|
-
|
|
19
|
-
var dataSource = [{
|
|
20
|
-
id: '1',
|
|
21
|
-
prov: '湖北省',
|
|
22
|
-
confirm: 54406,
|
|
23
|
-
cure: 4793,
|
|
24
|
-
dead: 1457,
|
|
25
|
-
t: '2020-02-15 19:52:02'
|
|
26
|
-
}, {
|
|
27
|
-
id: '2',
|
|
28
|
-
prov: '广东省',
|
|
29
|
-
confirm: 1294,
|
|
30
|
-
cure: 409,
|
|
31
|
-
dead: 2,
|
|
32
|
-
t: '2020-02-15 19:52:02'
|
|
33
|
-
}, {
|
|
34
|
-
id: '3',
|
|
35
|
-
prov: '河南省',
|
|
36
|
-
confirm: 1212,
|
|
37
|
-
cure: 390,
|
|
38
|
-
dead: 13,
|
|
39
|
-
t: '2020-02-15 19:52:02'
|
|
40
|
-
}, {
|
|
41
|
-
id: '4',
|
|
42
|
-
prov: '浙江省',
|
|
43
|
-
confirm: 1162,
|
|
44
|
-
cure: 428,
|
|
45
|
-
dead: 0,
|
|
46
|
-
t: '2020-02-15 19:52:02'
|
|
47
|
-
}, {
|
|
48
|
-
id: '5',
|
|
49
|
-
prov: '湖南省',
|
|
50
|
-
confirm: 1001,
|
|
51
|
-
cure: 417,
|
|
52
|
-
dead: 2,
|
|
53
|
-
t: '2020-02-15 19:52:02'
|
|
54
|
-
}];
|
|
55
|
-
var columns = [{
|
|
56
|
-
code: 'prov',
|
|
57
|
-
name: '省份',
|
|
58
|
-
width: 150,
|
|
59
|
-
features: {
|
|
60
|
-
sortable: true,
|
|
61
|
-
filterable: true
|
|
62
|
-
}
|
|
63
|
-
}, {
|
|
64
|
-
code: 'confirm',
|
|
65
|
-
name: '确诊',
|
|
66
|
-
width: 100,
|
|
67
|
-
align: 'right',
|
|
68
|
-
features: {
|
|
69
|
-
sortable: true,
|
|
70
|
-
filterable: true
|
|
71
|
-
}
|
|
72
|
-
}, {
|
|
73
|
-
code: 'cure',
|
|
74
|
-
name: '治愈',
|
|
75
|
-
width: 100,
|
|
76
|
-
align: 'right',
|
|
77
|
-
features: {
|
|
78
|
-
sortable: true,
|
|
79
|
-
filterable: true
|
|
80
|
-
}
|
|
81
|
-
}, {
|
|
82
|
-
code: 'dead',
|
|
83
|
-
name: '死亡',
|
|
84
|
-
width: 100,
|
|
85
|
-
align: 'right',
|
|
86
|
-
features: {
|
|
87
|
-
sortable: true,
|
|
88
|
-
filterable: true
|
|
89
|
-
}
|
|
90
|
-
}, {
|
|
91
|
-
code: 't',
|
|
92
|
-
name: '更新时间',
|
|
93
|
-
width: 180,
|
|
94
|
-
features: {
|
|
95
|
-
sortable: true,
|
|
96
|
-
filterable: true
|
|
97
|
-
}
|
|
98
|
-
}];
|
|
99
|
-
describe('rowDetail 单元测试', function () {
|
|
100
|
-
var opt = {
|
|
101
|
-
defaultOpenKeys: ['2'],
|
|
102
|
-
clickArea: 'content',
|
|
103
|
-
hasDetail: function hasDetail(row) {
|
|
104
|
-
var _context;
|
|
105
|
-
|
|
106
|
-
return (0, _includes.default)(_context = ['1', '2', '3']).call(_context, row.id);
|
|
107
|
-
},
|
|
108
|
-
renderDetail: jest.fn(),
|
|
109
|
-
onChangeOpenKeys: jest.fn()
|
|
110
|
-
};
|
|
111
|
-
it('初始化', function () {
|
|
112
|
-
var _renderHook = (0, _reactHooks.renderHook)(function () {
|
|
113
|
-
return (0, _pipeline.useTablePipeline)({
|
|
114
|
-
primaryKey: 'id'
|
|
115
|
-
}).input({
|
|
116
|
-
dataSource: dataSource,
|
|
117
|
-
columns: columns
|
|
118
|
-
});
|
|
119
|
-
}),
|
|
120
|
-
result = _renderHook.result;
|
|
121
|
-
|
|
122
|
-
var tablePipeline = result.current;
|
|
123
|
-
var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline); // 默认有1行展开,所以有6行
|
|
124
|
-
|
|
125
|
-
expect(newPipeline.getDataSource().length).toBe(6);
|
|
126
|
-
});
|
|
127
|
-
it('primaryKey不传', function () {
|
|
128
|
-
var _renderHook2 = (0, _reactHooks.renderHook)(function () {
|
|
129
|
-
return (0, _pipeline.useTablePipeline)().input({
|
|
130
|
-
dataSource: dataSource,
|
|
131
|
-
columns: columns
|
|
132
|
-
});
|
|
133
|
-
}),
|
|
134
|
-
result = _renderHook2.result;
|
|
135
|
-
|
|
136
|
-
var tablePipeline = result.current;
|
|
137
|
-
expect(function () {
|
|
138
|
-
return (0, _rowDetail.rowDetail)(opt)(tablePipeline);
|
|
139
|
-
}).toThrow(Error);
|
|
140
|
-
});
|
|
141
|
-
it('模拟行点击事件', function () {
|
|
142
|
-
var _renderHook3 = (0, _reactHooks.renderHook)(function () {
|
|
143
|
-
return (0, _pipeline.useTablePipeline)({
|
|
144
|
-
primaryKey: 'id'
|
|
145
|
-
}).input({
|
|
146
|
-
dataSource: dataSource,
|
|
147
|
-
columns: columns
|
|
148
|
-
});
|
|
149
|
-
}),
|
|
150
|
-
result = _renderHook3.result;
|
|
151
|
-
|
|
152
|
-
var tablePipeline = result.current;
|
|
153
|
-
var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline);
|
|
154
|
-
var newDataSource = newPipeline.getDataSource();
|
|
155
|
-
var col = newPipeline.getColumns();
|
|
156
|
-
var wrapper = (0, _enzyme.mount)(col[0].render('1', newDataSource[0], 0));
|
|
157
|
-
var div = (0, _find.default)(wrapper).call(wrapper, 'div').at(0);
|
|
158
|
-
expect(opt.onChangeOpenKeys).toHaveBeenCalledTimes(0);
|
|
159
|
-
(0, _testUtils.act)(function () {
|
|
160
|
-
div.simulate('click');
|
|
161
|
-
});
|
|
162
|
-
expect(opt.onChangeOpenKeys).toHaveBeenCalledTimes(1); // 点击没有展开行的行,不会触发onChange回调
|
|
163
|
-
|
|
164
|
-
var wrapper1 = (0, _enzyme.mount)(col[0].render('4', newDataSource[4], 4));
|
|
165
|
-
var div1 = (0, _find.default)(wrapper1).call(wrapper1, 'div').at(0);
|
|
166
|
-
(0, _testUtils.act)(function () {
|
|
167
|
-
div1.simulate('click');
|
|
168
|
-
});
|
|
169
|
-
expect(opt.onChangeOpenKeys).toHaveBeenCalledTimes(1);
|
|
170
|
-
});
|
|
171
|
-
it('设置指定列展开', function () {
|
|
172
|
-
var _renderHook4 = (0, _reactHooks.renderHook)(function () {
|
|
173
|
-
return (0, _pipeline.useTablePipeline)({
|
|
174
|
-
primaryKey: 'id'
|
|
175
|
-
}).input({
|
|
176
|
-
dataSource: dataSource,
|
|
177
|
-
columns: columns
|
|
178
|
-
});
|
|
179
|
-
}),
|
|
180
|
-
result = _renderHook4.result;
|
|
181
|
-
|
|
182
|
-
var tablePipeline = result.current;
|
|
183
|
-
opt.expandColumnCode = 'confirm';
|
|
184
|
-
var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline);
|
|
185
|
-
var col = newPipeline.getColumns();
|
|
186
|
-
var wrapper = (0, _enzyme.mount)(col[1].render('1', newPipeline.getDataSource()[0], 0)); // 不知道为啥是两个
|
|
187
|
-
|
|
188
|
-
expect((0, _find.default)(wrapper).call(wrapper, '.expansion-cell').length).toBe(2);
|
|
189
|
-
col[0].render('1', newPipeline.getDataSource()[2], 2);
|
|
190
|
-
expect(opt.renderDetail).toBeCalled();
|
|
191
|
-
var spanRect = col[0].getSpanRect('1', newPipeline.getDataSource()[2], 2);
|
|
192
|
-
expect(spanRect).toEqual({
|
|
193
|
-
top: 2,
|
|
194
|
-
bottom: 3,
|
|
195
|
-
left: 0,
|
|
196
|
-
right: 6
|
|
197
|
-
});
|
|
198
|
-
delete opt.expandColumnCode;
|
|
199
|
-
});
|
|
200
|
-
it('getCellProps 和getSpanRect', function () {
|
|
201
|
-
var _renderHook5 = (0, _reactHooks.renderHook)(function () {
|
|
202
|
-
return (0, _pipeline.useTablePipeline)({
|
|
203
|
-
primaryKey: 'id'
|
|
204
|
-
}).input({
|
|
205
|
-
dataSource: dataSource,
|
|
206
|
-
columns: columns
|
|
207
|
-
});
|
|
208
|
-
}),
|
|
209
|
-
result = _renderHook5.result;
|
|
210
|
-
|
|
211
|
-
var tablePipeline = result.current;
|
|
212
|
-
opt.clickArea = 'cell';
|
|
213
|
-
var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline);
|
|
214
|
-
var col = newPipeline.getColumns();
|
|
215
|
-
var cellProps = col[0].getCellProps('1', newPipeline.getDataSource()[0], 0);
|
|
216
|
-
expect(cellProps.style).toEqual({
|
|
217
|
-
cursor: 'pointer'
|
|
218
|
-
});
|
|
219
|
-
cellProps.onClick();
|
|
220
|
-
expect(opt.onChangeOpenKeys).toBeCalled(); // detail 总是成一行
|
|
221
|
-
|
|
222
|
-
var spanRect = col[0].getSpanRect('1', newPipeline.getDataSource()[2], 2);
|
|
223
|
-
expect(spanRect).toEqual({
|
|
224
|
-
top: 2,
|
|
225
|
-
bottom: 3,
|
|
226
|
-
left: 0,
|
|
227
|
-
right: 6
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|