UNPKG

@emsipl/react-data-grid-addons

Version:

A set of addons for react-data-grid

62 lines (51 loc) 2.81 kB
import groupRows from '../RowGrouper'; import Immutable from 'immutable'; const rows = [{ colOne: 'v1', colTwo: 'b1' }, { colOne: 'v2', colTwo: 'b2' }, { colOne: 'v1', colTwo: 'b3' }]; const grpDetails = { oneCol: ['colOne'], expRows: {}, multiCol: ['colOne', 'colTwo'] }; describe('Row Grouper', () => { it('It can group an array of rows (one grouping column) - correct number of header elements', () => { const groupingResult = groupRows(rows, grpDetails.oneCol, grpDetails.expRows); expect((groupingResult.filter(x => x.__metaData)).length).toBe(2); }); it('It can group an array of rows (one grouping column) - correct total of elements', () => { const groupingResult = groupRows(rows, grpDetails.oneCol, grpDetails.expRows); // we should have 5 elements -> 2 group headers + all of the original ones expect(groupingResult.length).toBe(5); }); it('It can group an immutable js list of rows (one grouping column)', () => { const immutableList = Immutable.fromJS(rows); const groupingResult = groupRows(immutableList, grpDetails.oneCol, grpDetails.expRows); expect(groupingResult.size).toBe(5); }); it('It can group an array of rows (two grouping columns) - correct number of first nested header elements', () => { const groupingResult = groupRows(rows, grpDetails.multiCol, grpDetails.expRows); expect(groupingResult .slice(0, grpDetails.multiCol.length) .every(x => x.__metaData)).toBe(true); }); it('It can group an array of rows (two grouping columns) - correct total of elements', () => { const groupingResult = groupRows(rows, grpDetails.multiCol, grpDetails.expRows); expect(groupingResult.length).toBe(8); }); it('It can group an immutable js list of rows (two grouping columns)', () => { const immutableList = Immutable.fromJS(rows); const groupingResult = groupRows(immutableList, grpDetails.multiCol, grpDetails.expRows); expect(groupingResult.size).toBe(8); }); it('It can group an immutable js list of rows (two grouping columns) - correct number of first nested header elements', () => { const immutableList = Immutable.fromJS(rows); const groupingResult = groupRows(immutableList, grpDetails.multiCol, grpDetails.expRows); expect(groupingResult .slice(0, grpDetails.multiCol.length) .every(x => x.__metaData)).toBe(true); }); it('It can group an Immutable List (not list of immutable maps)', () => { const immutableList = Immutable.List(rows); // eslint-disable-line new-cap const groupingResult = groupRows(immutableList, grpDetails.multiCol, grpDetails.expRows); expect(groupingResult .slice(0, grpDetails.multiCol.length) .every(x => x.__metaData)).toBe(true); }); });