@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.
@@ -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
- });