@kineticdata/react 6.0.3 → 6.0.5
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/CHANGELOG.md +8 -0
- package/lib/apis/core/authentication.js +1 -1
- package/lib/apis/task/index.js +4 -2
- package/lib/components/core/kapp/KappForm.js +38 -62
- package/lib/components/core/space/SpaceForm.js +94 -89
- package/lib/components/task/builder/TreeBuilder.js +9 -3
- package/lib/components/task/builder/builder.redux.js +127 -58
- package/lib/components/task/builder/models.js +4 -3
- package/lib/components/task/category/TaskCategoryForm.js +6 -3
- package/lib/components/task/workflows/WorkflowForm.js +3 -2
- package/package.json +3 -3
- package/lib/components/table/Table.redux.test.js +0 -162
- package/lib/components/table/Table.test.js +0 -700
|
@@ -1,700 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
5
|
-
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
|
|
6
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
7
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _index = require("../../index");
|
|
10
|
-
var _store = require("../../store");
|
|
11
|
-
var _enzyme = require("enzyme");
|
|
12
|
-
var _immutable = require("immutable");
|
|
13
|
-
var _fixtures = require("../../../tests/fixtures");
|
|
14
|
-
var _defaults = require("./defaults");
|
|
15
|
-
var _Table = require("./Table");
|
|
16
|
-
var _excluded = ["dataSource", "filters", "filterDataSources", "columns", "tableOptions", "tableKey", "TableView"];
|
|
17
|
-
var buildProps = function buildProps(props) {
|
|
18
|
-
props.columnComponents = (0, _Table.extractColumnComponents)(props.columns);
|
|
19
|
-
return props;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// Things passed in from generateTables
|
|
23
|
-
// tableOptions, columns, dataSource, sortable
|
|
24
|
-
|
|
25
|
-
var TABLE_KEY = 'mock-table-key';
|
|
26
|
-
var TableViewMock = function TableViewMock(props) {
|
|
27
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, props.table, props.pagination, props.filter);
|
|
28
|
-
};
|
|
29
|
-
var mountTable = function mountTable(_ref) {
|
|
30
|
-
var dataSource = _ref.dataSource,
|
|
31
|
-
filters = _ref.filters,
|
|
32
|
-
filterDataSources = _ref.filterDataSources,
|
|
33
|
-
_ref$columns = _ref.columns,
|
|
34
|
-
columns = _ref$columns === void 0 ? [] : _ref$columns,
|
|
35
|
-
_ref$tableOptions = _ref.tableOptions,
|
|
36
|
-
tableOptions = _ref$tableOptions === void 0 ? {} : _ref$tableOptions,
|
|
37
|
-
_ref$tableKey = _ref.tableKey,
|
|
38
|
-
tableKey = _ref$tableKey === void 0 ? TABLE_KEY : _ref$tableKey,
|
|
39
|
-
_ref$TableView = _ref.TableView,
|
|
40
|
-
TableView = _ref$TableView === void 0 ? TableViewMock : _ref$TableView,
|
|
41
|
-
tableProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
42
|
-
// Generate a new Table type using the options.
|
|
43
|
-
var Table = (0, _Table.generateTable)({
|
|
44
|
-
dataSource: dataSource,
|
|
45
|
-
columns: columns,
|
|
46
|
-
filters: filters,
|
|
47
|
-
filterDataSources: filterDataSources,
|
|
48
|
-
tableOptions: Object.keys(tableOptions)
|
|
49
|
-
});
|
|
50
|
-
return new Promise(function (resolve) {
|
|
51
|
-
var result = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement(Table, Object.assign({
|
|
52
|
-
tableKey: tableKey,
|
|
53
|
-
uncontrolled: true
|
|
54
|
-
}, tableProps, tableOptions), function (props) {
|
|
55
|
-
return /*#__PURE__*/_react["default"].createElement(TableView, props);
|
|
56
|
-
})));
|
|
57
|
-
var ready = function ready() {
|
|
58
|
-
return !(_store.store.getState().getIn(['tables', tableKey, 'loading'], true) || _store.store.getState().getIn(['tables', tableKey, 'initializing'], true));
|
|
59
|
-
};
|
|
60
|
-
if (ready()) {
|
|
61
|
-
result.update();
|
|
62
|
-
resolve(result);
|
|
63
|
-
} else {
|
|
64
|
-
var unsub = _store.store.subscribe(function () {
|
|
65
|
-
if (ready()) {
|
|
66
|
-
result.update();
|
|
67
|
-
resolve(result);
|
|
68
|
-
// Remove the store listener since we're done.
|
|
69
|
-
unsub();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
/*
|
|
77
|
-
|
|
78
|
-
* Repeat for: server-side, server-side w/client sort and paginate, client-side
|
|
79
|
-
* test sorting by column
|
|
80
|
-
* test sorting changing direction
|
|
81
|
-
* test default sort parameters
|
|
82
|
-
|
|
83
|
-
* test pure-client-side (data prop passed)
|
|
84
|
-
|
|
85
|
-
* test overriding default components for whole table
|
|
86
|
-
* test altering columns
|
|
87
|
-
** changing component
|
|
88
|
-
** What else *can* be changed???
|
|
89
|
-
* test adding columns
|
|
90
|
-
* test valueTransform
|
|
91
|
-
* test columnSet
|
|
92
|
-
* test pageSize
|
|
93
|
-
* test sortable
|
|
94
|
-
* test omit header
|
|
95
|
-
* test include footer
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
describe('<Table />', function () {
|
|
101
|
-
describe('render', function () {
|
|
102
|
-
var data, columns, wrapper, dataSourceFn;
|
|
103
|
-
beforeEach(function () {
|
|
104
|
-
data = {
|
|
105
|
-
mockData: [{
|
|
106
|
-
name: 'test',
|
|
107
|
-
status: 'active'
|
|
108
|
-
}]
|
|
109
|
-
};
|
|
110
|
-
columns = [{
|
|
111
|
-
value: 'name',
|
|
112
|
-
title: 'Name',
|
|
113
|
-
sortable: true,
|
|
114
|
-
filter: 'startsWith',
|
|
115
|
-
type: 'text'
|
|
116
|
-
}, {
|
|
117
|
-
value: 'status',
|
|
118
|
-
title: 'Status',
|
|
119
|
-
sortable: true,
|
|
120
|
-
filter: 'equals',
|
|
121
|
-
type: 'text',
|
|
122
|
-
options: function options() {
|
|
123
|
-
return [{
|
|
124
|
-
label: 'Active',
|
|
125
|
-
value: 'active'
|
|
126
|
-
}, {
|
|
127
|
-
label: 'Inactive',
|
|
128
|
-
value: 'inactive'
|
|
129
|
-
}];
|
|
130
|
-
}
|
|
131
|
-
}];
|
|
132
|
-
dataSourceFn = jest.fn(function () {
|
|
133
|
-
return Promise.resolve(data);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
afterEach(function () {
|
|
137
|
-
if (wrapper) {
|
|
138
|
-
wrapper.unmount();
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
test('kitchen sink', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee() {
|
|
142
|
-
var ActionCell, addColumns;
|
|
143
|
-
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
|
|
144
|
-
while (1) switch (_context.prev = _context.next) {
|
|
145
|
-
case 0:
|
|
146
|
-
ActionCell = function ActionCell(props) {
|
|
147
|
-
return /*#__PURE__*/_react["default"].createElement("td", null, props.value);
|
|
148
|
-
};
|
|
149
|
-
addColumns = [{
|
|
150
|
-
value: '_action',
|
|
151
|
-
label: 'Actions',
|
|
152
|
-
components: {
|
|
153
|
-
BodyCell: ActionCell
|
|
154
|
-
}
|
|
155
|
-
}];
|
|
156
|
-
_context.next = 4;
|
|
157
|
-
return mountTable({
|
|
158
|
-
columns: columns,
|
|
159
|
-
addColumns: addColumns,
|
|
160
|
-
dataSource: function dataSource(_tableOptions) {
|
|
161
|
-
return {
|
|
162
|
-
fn: dataSourceFn,
|
|
163
|
-
params: function params(_paramData) {
|
|
164
|
-
return [];
|
|
165
|
-
},
|
|
166
|
-
transform: function transform(result) {
|
|
167
|
-
return {
|
|
168
|
-
data: result.mockData
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
case 4:
|
|
175
|
-
wrapper = _context.sent;
|
|
176
|
-
expect(wrapper).toMatchSnapshot();
|
|
177
|
-
case 6:
|
|
178
|
-
case "end":
|
|
179
|
-
return _context.stop();
|
|
180
|
-
}
|
|
181
|
-
}, _callee);
|
|
182
|
-
})));
|
|
183
|
-
describe('filters', function () {
|
|
184
|
-
test('legacy filters', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2() {
|
|
185
|
-
var filterLayout;
|
|
186
|
-
return (0, _regeneratorRuntime2["default"])().wrap(function _callee2$(_context2) {
|
|
187
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
188
|
-
case 0:
|
|
189
|
-
_context2.next = 2;
|
|
190
|
-
return mountTable({
|
|
191
|
-
dataSource: function dataSource(_tableOptions) {
|
|
192
|
-
return {
|
|
193
|
-
fn: dataSourceFn,
|
|
194
|
-
params: function params(_paramData) {
|
|
195
|
-
return [];
|
|
196
|
-
},
|
|
197
|
-
transform: function transform(result) {
|
|
198
|
-
return {
|
|
199
|
-
data: result.mockData
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
case 2:
|
|
206
|
-
wrapper = _context2.sent;
|
|
207
|
-
filterLayout = wrapper.find('FilterLayout');
|
|
208
|
-
expect(filterLayout).toBeDefined();
|
|
209
|
-
expect(filterLayout).toMatchSnapshot();
|
|
210
|
-
case 6:
|
|
211
|
-
case "end":
|
|
212
|
-
return _context2.stop();
|
|
213
|
-
}
|
|
214
|
-
}, _callee2);
|
|
215
|
-
})));
|
|
216
|
-
test('filter form', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee3() {
|
|
217
|
-
var filterForm;
|
|
218
|
-
return (0, _regeneratorRuntime2["default"])().wrap(function _callee3$(_context3) {
|
|
219
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
220
|
-
case 0:
|
|
221
|
-
_context3.next = 2;
|
|
222
|
-
return mountTable({
|
|
223
|
-
filters: function filters() {
|
|
224
|
-
return function () {
|
|
225
|
-
return [{
|
|
226
|
-
name: 'name',
|
|
227
|
-
label: 'Name',
|
|
228
|
-
type: 'text'
|
|
229
|
-
}, {
|
|
230
|
-
name: 'status',
|
|
231
|
-
label: 'Status',
|
|
232
|
-
type: 'text'
|
|
233
|
-
}];
|
|
234
|
-
};
|
|
235
|
-
},
|
|
236
|
-
dataSource: function dataSource(_tableOptions) {
|
|
237
|
-
return {
|
|
238
|
-
fn: dataSourceFn,
|
|
239
|
-
params: function params(_paramData) {
|
|
240
|
-
return [];
|
|
241
|
-
},
|
|
242
|
-
transform: function transform(result) {
|
|
243
|
-
return {
|
|
244
|
-
data: result.mockData
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
case 2:
|
|
251
|
-
wrapper = _context3.sent;
|
|
252
|
-
filterForm = wrapper.find('FilterForm');
|
|
253
|
-
expect(filterForm).toBeDefined();
|
|
254
|
-
expect(filterForm).toMatchSnapshot();
|
|
255
|
-
case 6:
|
|
256
|
-
case "end":
|
|
257
|
-
return _context3.stop();
|
|
258
|
-
}
|
|
259
|
-
}, _callee3);
|
|
260
|
-
})));
|
|
261
|
-
});
|
|
262
|
-
describe('dataSource', function () {
|
|
263
|
-
test('dataSource resolves', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee4() {
|
|
264
|
-
return (0, _regeneratorRuntime2["default"])().wrap(function _callee4$(_context4) {
|
|
265
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
266
|
-
case 0:
|
|
267
|
-
_context4.next = 2;
|
|
268
|
-
return mountTable({
|
|
269
|
-
dataSource: function dataSource(_tableOptions) {
|
|
270
|
-
return {
|
|
271
|
-
fn: dataSourceFn,
|
|
272
|
-
params: function params(_paramData) {
|
|
273
|
-
return [];
|
|
274
|
-
},
|
|
275
|
-
transform: function transform(result) {
|
|
276
|
-
return {
|
|
277
|
-
data: result.mockData
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
});
|
|
283
|
-
case 2:
|
|
284
|
-
wrapper = _context4.sent;
|
|
285
|
-
expect(wrapper).toMatchSnapshot();
|
|
286
|
-
expect(dataSourceFn.mock.calls).toMatchSnapshot();
|
|
287
|
-
case 5:
|
|
288
|
-
case "end":
|
|
289
|
-
return _context4.stop();
|
|
290
|
-
}
|
|
291
|
-
}, _callee4);
|
|
292
|
-
})));
|
|
293
|
-
});
|
|
294
|
-
});
|
|
295
|
-
describe('build methods', function () {
|
|
296
|
-
var props;
|
|
297
|
-
var data = [];
|
|
298
|
-
var columns = (0, _immutable.List)([]);
|
|
299
|
-
var columnSet = (0, _immutable.List)([]);
|
|
300
|
-
beforeEach(function () {
|
|
301
|
-
data = (0, _fixtures.users)(2);
|
|
302
|
-
columns = (0, _immutable.List)([(0, _immutable.Map)({
|
|
303
|
-
value: 'username',
|
|
304
|
-
title: 'Username'
|
|
305
|
-
})]);
|
|
306
|
-
columnSet = (0, _immutable.List)(['username']);
|
|
307
|
-
props = {
|
|
308
|
-
// Spread in the default components since the method tests will not be getting
|
|
309
|
-
// any components from the context since we're bypassing the top level `Table`
|
|
310
|
-
// component for testing.
|
|
311
|
-
components: (0, _objectSpread2["default"])({}, _defaults.DefaultTableConfig.toJS()),
|
|
312
|
-
data: data,
|
|
313
|
-
columns: columns,
|
|
314
|
-
columnSet: columnSet,
|
|
315
|
-
rows: (0, _immutable.List)(data).map(function (r) {
|
|
316
|
-
return (0, _immutable.Map)(r);
|
|
317
|
-
})
|
|
318
|
-
};
|
|
319
|
-
});
|
|
320
|
-
describe('#buildTable', function () {
|
|
321
|
-
test('it renders normally', function () {
|
|
322
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTable)(buildProps(props))));
|
|
323
|
-
expect(wrapper.is('table')).toBeTruthy();
|
|
324
|
-
expect(wrapper.is('table.custom-table')).toBeFalsy();
|
|
325
|
-
});
|
|
326
|
-
test('it renders a custom table', function () {
|
|
327
|
-
var TableLayout = function TableLayout() {
|
|
328
|
-
return /*#__PURE__*/_react["default"].createElement("table", {
|
|
329
|
-
className: "custom-table"
|
|
330
|
-
});
|
|
331
|
-
};
|
|
332
|
-
props.components.TableLayout = TableLayout;
|
|
333
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTable)(buildProps(props))));
|
|
334
|
-
expect(wrapper.is('table.custom-table')).toBeTruthy();
|
|
335
|
-
});
|
|
336
|
-
});
|
|
337
|
-
describe('#buildTableHeader', function () {
|
|
338
|
-
test('it renders normally', function () {
|
|
339
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeader)(buildProps(props))));
|
|
340
|
-
expect(wrapper.is('thead')).toBeTruthy();
|
|
341
|
-
expect(wrapper.is('thead.custom-thead')).toBeFalsy();
|
|
342
|
-
});
|
|
343
|
-
test('it does not render when omitHeader is set', function () {
|
|
344
|
-
props.omitHeader = true;
|
|
345
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeader)(buildProps(props))));
|
|
346
|
-
expect(wrapper.is('thead')).toBeFalsy();
|
|
347
|
-
});
|
|
348
|
-
test('it renders a custom thead', function () {
|
|
349
|
-
var Header = function Header() {
|
|
350
|
-
return /*#__PURE__*/_react["default"].createElement("thead", {
|
|
351
|
-
className: "custom-thead"
|
|
352
|
-
});
|
|
353
|
-
};
|
|
354
|
-
props.components.Header = Header;
|
|
355
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeader)(buildProps(props))));
|
|
356
|
-
expect(wrapper.is('thead.custom-thead')).toBeTruthy();
|
|
357
|
-
});
|
|
358
|
-
});
|
|
359
|
-
describe('#buildTableHeaderRow', function () {
|
|
360
|
-
test('it renders normally', function () {
|
|
361
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeaderRow)(buildProps(props))));
|
|
362
|
-
expect(wrapper.is('tr')).toBeTruthy();
|
|
363
|
-
expect(wrapper.is('tr.custom-tr')).toBeFalsy();
|
|
364
|
-
});
|
|
365
|
-
test('it renders a custom thead', function () {
|
|
366
|
-
var HeaderRow = function HeaderRow() {
|
|
367
|
-
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
368
|
-
className: "custom-tr"
|
|
369
|
-
});
|
|
370
|
-
};
|
|
371
|
-
props.components.HeaderRow = HeaderRow;
|
|
372
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeaderRow)(buildProps(props))));
|
|
373
|
-
expect(wrapper.is('tr.custom-tr')).toBeTruthy();
|
|
374
|
-
});
|
|
375
|
-
});
|
|
376
|
-
describe('#buildTableHeaderCell', function () {
|
|
377
|
-
test('it renders normally', function () {
|
|
378
|
-
var column = columns.first();
|
|
379
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeaderCell)(buildProps(props))(column, 0)));
|
|
380
|
-
expect(wrapper.is('th')).toBeTruthy();
|
|
381
|
-
expect(wrapper.is('td.custom-td')).toBeFalsy();
|
|
382
|
-
});
|
|
383
|
-
test('it renders a custom th', function () {
|
|
384
|
-
var column = columns.first();
|
|
385
|
-
var HeaderCell = function HeaderCell() {
|
|
386
|
-
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
387
|
-
className: "custom-th"
|
|
388
|
-
});
|
|
389
|
-
};
|
|
390
|
-
props.components.HeaderCell = HeaderCell;
|
|
391
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeaderCell)(buildProps(props))(column, 0)));
|
|
392
|
-
expect(wrapper.is('th.custom-th')).toBeTruthy();
|
|
393
|
-
});
|
|
394
|
-
test('it renders a custom th for a specific column', function () {
|
|
395
|
-
var HeaderCell = function HeaderCell() {
|
|
396
|
-
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
397
|
-
className: "custom-cell-th"
|
|
398
|
-
});
|
|
399
|
-
};
|
|
400
|
-
props.columns = props.columns.push((0, _immutable.Map)({
|
|
401
|
-
value: 'displayName',
|
|
402
|
-
title: 'DisplayName',
|
|
403
|
-
components: {
|
|
404
|
-
HeaderCell: HeaderCell
|
|
405
|
-
}
|
|
406
|
-
}));
|
|
407
|
-
props.columnSet = props.columnSet.push('displayName');
|
|
408
|
-
var column = props.columns.last();
|
|
409
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeaderCell)(buildProps(props))(column, 0)));
|
|
410
|
-
expect(wrapper.hasClass('custom-cell-th')).toBeTruthy();
|
|
411
|
-
});
|
|
412
|
-
});
|
|
413
|
-
describe('#buildTableBody', function () {
|
|
414
|
-
test('it renders normally', function () {
|
|
415
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableBody)(buildProps(props))));
|
|
416
|
-
expect(wrapper.is('tbody')).toBeTruthy();
|
|
417
|
-
expect(wrapper.is('tbody.custom-tbody')).toBeFalsy();
|
|
418
|
-
});
|
|
419
|
-
test('it renders a custom tbody', function () {
|
|
420
|
-
var Header = function Header() {
|
|
421
|
-
return /*#__PURE__*/_react["default"].createElement("tbody", {
|
|
422
|
-
className: "custom-tbody"
|
|
423
|
-
});
|
|
424
|
-
};
|
|
425
|
-
props.components.Header = Header;
|
|
426
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableHeader)(buildProps(props))));
|
|
427
|
-
expect(wrapper.is('tbody.custom-tbody')).toBeTruthy();
|
|
428
|
-
});
|
|
429
|
-
});
|
|
430
|
-
describe('#buildTableBodyRows', function () {
|
|
431
|
-
test('it renders rows normally', function () {
|
|
432
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, (0, _Table.buildTableBodyRows)(buildProps(props))))));
|
|
433
|
-
expect(wrapper.find('tr')).toHaveLength(props.rows.size);
|
|
434
|
-
expect(wrapper.find('tr').first().hasClass('custom-tr')).toBeFalsy();
|
|
435
|
-
});
|
|
436
|
-
test('it renders custom rows', function () {
|
|
437
|
-
var BodyRow = function BodyRow() {
|
|
438
|
-
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
439
|
-
className: "custom-tr"
|
|
440
|
-
});
|
|
441
|
-
};
|
|
442
|
-
props.components.BodyRow = BodyRow;
|
|
443
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, (0, _Table.buildTableBodyRows)(buildProps(props))))));
|
|
444
|
-
expect(wrapper.find('tr')).toHaveLength(props.rows.size);
|
|
445
|
-
expect(wrapper.find('tr').first().hasClass('custom-tr')).toBeTruthy();
|
|
446
|
-
});
|
|
447
|
-
test('it renders default empty row', function () {
|
|
448
|
-
props.rows = (0, _immutable.List)([]);
|
|
449
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, (0, _Table.buildTableBodyRows)(buildProps(props))))));
|
|
450
|
-
expect(wrapper.find('tr')).toHaveLength(1);
|
|
451
|
-
expect(wrapper.find('tr').first().hasClass('custom-empty-tr')).toBeFalsy();
|
|
452
|
-
});
|
|
453
|
-
test('it renders custom empty row', function () {
|
|
454
|
-
var EmptyBodyRow = function EmptyBodyRow() {
|
|
455
|
-
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
456
|
-
className: "custom-empty-tr"
|
|
457
|
-
});
|
|
458
|
-
};
|
|
459
|
-
props.rows = (0, _immutable.List)([]);
|
|
460
|
-
props.components.EmptyBodyRow = EmptyBodyRow;
|
|
461
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, (0, _Table.buildTableBodyRows)(buildProps(props))))));
|
|
462
|
-
expect(wrapper.find('tr')).toHaveLength(1);
|
|
463
|
-
expect(wrapper.find('tr').hasClass('custom-empty-tr')).toBeTruthy();
|
|
464
|
-
});
|
|
465
|
-
});
|
|
466
|
-
describe('#buildTableBodyCells', function () {
|
|
467
|
-
test('it renders cells normally', function () {
|
|
468
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, (0, _Table.buildTableBodyCells)(buildProps(props), props.rows.first(), 0))))));
|
|
469
|
-
expect(wrapper.find('tr td')).toHaveLength(1);
|
|
470
|
-
expect(wrapper.find('tr td').first().hasClass('custom-td')).toBeFalsy();
|
|
471
|
-
});
|
|
472
|
-
test('it renders custom cells', function () {
|
|
473
|
-
var BodyCell = function BodyCell() {
|
|
474
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
475
|
-
className: "custom-td"
|
|
476
|
-
});
|
|
477
|
-
};
|
|
478
|
-
props.components.BodyCell = BodyCell;
|
|
479
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, (0, _Table.buildTableBodyCells)(buildProps(props), props.rows.first(), 0))))));
|
|
480
|
-
expect(wrapper.find('tr td')).toHaveLength(props.columnSet.size);
|
|
481
|
-
expect(wrapper.find('tr td').first().hasClass('custom-td')).toBeTruthy();
|
|
482
|
-
});
|
|
483
|
-
test('it renders custom column cells', function () {
|
|
484
|
-
var BodyCell = function BodyCell() {
|
|
485
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
486
|
-
className: "custom-td"
|
|
487
|
-
});
|
|
488
|
-
};
|
|
489
|
-
props.columns = props.columns.push((0, _immutable.Map)({
|
|
490
|
-
value: 'displayName',
|
|
491
|
-
title: 'DisplayName',
|
|
492
|
-
components: {
|
|
493
|
-
BodyCell: BodyCell
|
|
494
|
-
}
|
|
495
|
-
}));
|
|
496
|
-
props.columnSet = props.columnSet.push('displayName');
|
|
497
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, (0, _Table.buildTableBodyCells)(buildProps(props), props.rows.first(), 0))))));
|
|
498
|
-
expect(wrapper.find('tr td')).toHaveLength(props.columns.size);
|
|
499
|
-
expect(wrapper.find('tr td').first().hasClass('custom-td')).toBeFalsy();
|
|
500
|
-
expect(wrapper.find('tr td').last().hasClass('custom-td')).toBeTruthy();
|
|
501
|
-
});
|
|
502
|
-
});
|
|
503
|
-
describe('#buildTableFooter', function () {
|
|
504
|
-
test('it does not render normally', function () {
|
|
505
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableFooter)(buildProps(props))));
|
|
506
|
-
expect(wrapper.is('tfoot')).toBeFalsy();
|
|
507
|
-
});
|
|
508
|
-
test('it renders with includeFooter', function () {
|
|
509
|
-
props.includeFooter = true;
|
|
510
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableFooter)(buildProps(props))));
|
|
511
|
-
expect(wrapper.is('tfoot')).toBeTruthy();
|
|
512
|
-
expect(wrapper.is('tfoot.custom-tfoot')).toBeFalsy();
|
|
513
|
-
});
|
|
514
|
-
test('it renders a custom tfoot', function () {
|
|
515
|
-
var Footer = function Footer() {
|
|
516
|
-
return /*#__PURE__*/_react["default"].createElement("tfoot", {
|
|
517
|
-
className: "custom-tfoot"
|
|
518
|
-
});
|
|
519
|
-
};
|
|
520
|
-
props.includeFooter = true;
|
|
521
|
-
props.components.Footer = Footer;
|
|
522
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableFooter)(buildProps(props))));
|
|
523
|
-
expect(wrapper.is('tfoot.custom-tfoot')).toBeTruthy();
|
|
524
|
-
});
|
|
525
|
-
});
|
|
526
|
-
describe('#buildTableFooterRow', function () {
|
|
527
|
-
test('it renders normally', function () {
|
|
528
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableFooterRow)(buildProps(props))));
|
|
529
|
-
expect(wrapper.is('tr')).toBeTruthy();
|
|
530
|
-
expect(wrapper.is('tr.custom-tr')).toBeFalsy();
|
|
531
|
-
});
|
|
532
|
-
test('it renders a custom tr', function () {
|
|
533
|
-
var FooterRow = function FooterRow() {
|
|
534
|
-
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
535
|
-
className: "custom-tr"
|
|
536
|
-
});
|
|
537
|
-
};
|
|
538
|
-
props.components.FooterRow = FooterRow;
|
|
539
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableFooterRow)(buildProps(props))));
|
|
540
|
-
expect(wrapper.is('tr.custom-tr')).toBeTruthy();
|
|
541
|
-
});
|
|
542
|
-
});
|
|
543
|
-
describe('#buildTableFooterCells', function () {
|
|
544
|
-
test('it renders normally', function () {
|
|
545
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableFooterCells)(buildProps(props))));
|
|
546
|
-
expect(wrapper.first().is('td')).toBeTruthy();
|
|
547
|
-
expect(wrapper.first().is('td.custom-td')).toBeFalsy();
|
|
548
|
-
});
|
|
549
|
-
test('it renders a custom td', function () {
|
|
550
|
-
var FooterCell = function FooterCell() {
|
|
551
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
552
|
-
className: "custom-td"
|
|
553
|
-
});
|
|
554
|
-
};
|
|
555
|
-
props.components.FooterCell = FooterCell;
|
|
556
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, (0, _Table.buildTableFooterCells)(buildProps(props))));
|
|
557
|
-
expect(wrapper.is('td.custom-td')).toBeTruthy();
|
|
558
|
-
});
|
|
559
|
-
test('it renders a custom td for a specific column', function () {
|
|
560
|
-
var FooterCell = function FooterCell() {
|
|
561
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
562
|
-
className: "custom-td"
|
|
563
|
-
});
|
|
564
|
-
};
|
|
565
|
-
props.columns = props.columns.push((0, _immutable.Map)({
|
|
566
|
-
value: 'displayName',
|
|
567
|
-
title: 'DisplayName',
|
|
568
|
-
components: {
|
|
569
|
-
FooterCell: FooterCell
|
|
570
|
-
}
|
|
571
|
-
}));
|
|
572
|
-
props.columnSet = props.columnSet.push('displayName');
|
|
573
|
-
var wrapper = (0, _enzyme.render)( /*#__PURE__*/_react["default"].createElement(_index.KineticLib, null, /*#__PURE__*/_react["default"].createElement("tfoot", null, /*#__PURE__*/_react["default"].createElement("tr", null, (0, _Table.buildTableFooterCells)(buildProps(props))))));
|
|
574
|
-
expect(wrapper.find('td')).toHaveLength(props.columns.size);
|
|
575
|
-
expect(wrapper.find('td').first().hasClass('custom-td')).toBeFalsy();
|
|
576
|
-
expect(wrapper.find('td').last().hasClass('custom-td')).toBeTruthy();
|
|
577
|
-
});
|
|
578
|
-
});
|
|
579
|
-
});
|
|
580
|
-
describe('data manipulators', function () {
|
|
581
|
-
describe('#generateColumns', function () {
|
|
582
|
-
var columns;
|
|
583
|
-
var addColumns;
|
|
584
|
-
var alterColumns;
|
|
585
|
-
beforeEach(function () {
|
|
586
|
-
columns = [{
|
|
587
|
-
value: 'a',
|
|
588
|
-
title: 'A'
|
|
589
|
-
}];
|
|
590
|
-
addColumns = [{
|
|
591
|
-
value: 'b',
|
|
592
|
-
title: 'B'
|
|
593
|
-
}];
|
|
594
|
-
alterColumns = {};
|
|
595
|
-
});
|
|
596
|
-
test('combines the column config and additional columns', function () {
|
|
597
|
-
var total = columns.length + addColumns.length;
|
|
598
|
-
expect((0, _Table.generateColumns)(columns, addColumns, alterColumns).size).toBe(total);
|
|
599
|
-
});
|
|
600
|
-
test('alters columns with config', function () {
|
|
601
|
-
alterColumns.a = {
|
|
602
|
-
sortable: true
|
|
603
|
-
};
|
|
604
|
-
var columnConfig = (0, _Table.generateColumns)(columns, addColumns, alterColumns);
|
|
605
|
-
var column = columnConfig.find(function (c) {
|
|
606
|
-
return c.get('value') === columns[0].value;
|
|
607
|
-
});
|
|
608
|
-
expect(column.get('sortable')).toBeTruthy();
|
|
609
|
-
});
|
|
610
|
-
test('alters columns does not change value key', function () {
|
|
611
|
-
alterColumns.a = {
|
|
612
|
-
value: 'c'
|
|
613
|
-
};
|
|
614
|
-
var columnConfig = (0, _Table.generateColumns)(columns, addColumns, alterColumns);
|
|
615
|
-
var column = columnConfig.find(function (c) {
|
|
616
|
-
return c.get('value') === 'a';
|
|
617
|
-
});
|
|
618
|
-
expect(column).not.toBeUndefined();
|
|
619
|
-
});
|
|
620
|
-
});
|
|
621
|
-
describe('#sortColumns', function () {
|
|
622
|
-
test('sort columns returns expected sort order', function () {
|
|
623
|
-
var columns = (0, _immutable.List)([(0, _immutable.Map)({
|
|
624
|
-
value: 'a',
|
|
625
|
-
title: 'A'
|
|
626
|
-
}), (0, _immutable.Map)({
|
|
627
|
-
value: 'b',
|
|
628
|
-
title: 'B'
|
|
629
|
-
}), (0, _immutable.Map)({
|
|
630
|
-
value: 'c',
|
|
631
|
-
title: 'C'
|
|
632
|
-
})]);
|
|
633
|
-
var columnSet = (0, _immutable.List)(['b', 'a']);
|
|
634
|
-
expect((0, _Table.sortColumns)(columns, columnSet).toJS().map(function (c) {
|
|
635
|
-
return c.value;
|
|
636
|
-
}).join('')).toBe('bca');
|
|
637
|
-
});
|
|
638
|
-
});
|
|
639
|
-
describe('#getToggleableColumns', function () {
|
|
640
|
-
test('toggleable columns list is correct', function () {
|
|
641
|
-
var columns = (0, _immutable.List)([(0, _immutable.Map)({
|
|
642
|
-
value: 'a',
|
|
643
|
-
title: 'A',
|
|
644
|
-
toggleable: true
|
|
645
|
-
}), (0, _immutable.Map)({
|
|
646
|
-
value: 'b',
|
|
647
|
-
title: 'B'
|
|
648
|
-
}), (0, _immutable.Map)({
|
|
649
|
-
value: 'c',
|
|
650
|
-
title: 'C'
|
|
651
|
-
}), (0, _immutable.Map)({
|
|
652
|
-
value: 'd'
|
|
653
|
-
})]);
|
|
654
|
-
var columnSet = (0, _immutable.List)(['a', 'b', 'd']);
|
|
655
|
-
expect((0, _Table.getToggleableColumns)(columns, columnSet, 'table-key').toJS().map(function (c) {
|
|
656
|
-
return c.value;
|
|
657
|
-
}).join('')).toBe('ab');
|
|
658
|
-
});
|
|
659
|
-
});
|
|
660
|
-
xdescribe('#extractColumnComponents', function () {
|
|
661
|
-
var columns, addColumns, alterColumns;
|
|
662
|
-
beforeEach(function () {
|
|
663
|
-
columns = [{
|
|
664
|
-
value: 'first'
|
|
665
|
-
}, {
|
|
666
|
-
value: 'second',
|
|
667
|
-
components: {
|
|
668
|
-
BodyCell: 'two'
|
|
669
|
-
}
|
|
670
|
-
}, {
|
|
671
|
-
value: 'third'
|
|
672
|
-
}];
|
|
673
|
-
addColumns = [{
|
|
674
|
-
value: 'fourth'
|
|
675
|
-
}, {
|
|
676
|
-
value: 'fifth',
|
|
677
|
-
components: {
|
|
678
|
-
BodyCell: 'five'
|
|
679
|
-
}
|
|
680
|
-
}];
|
|
681
|
-
alterColumns = {
|
|
682
|
-
third: {
|
|
683
|
-
components: {
|
|
684
|
-
BodyCell: 'three'
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
};
|
|
688
|
-
});
|
|
689
|
-
xtest('returns a map of components with overrides', function () {
|
|
690
|
-
var result = (0, _Table.extractColumnComponents)({
|
|
691
|
-
columns: columns,
|
|
692
|
-
addColumns: addColumns,
|
|
693
|
-
alterColumns: alterColumns
|
|
694
|
-
});
|
|
695
|
-
console.log(columns);
|
|
696
|
-
expect(result.toJS()).toBe([]);
|
|
697
|
-
});
|
|
698
|
-
});
|
|
699
|
-
});
|
|
700
|
-
});
|