UNPKG

react-virtualized

Version:

React components for efficiently rendering large, scrollable lists and tabular data

121 lines (120 loc) 2.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _SectionManager = _interopRequireDefault(require("./SectionManager")); var _TestData = require("./TestData"); function initSectionManager() { var sectionManager = new _SectionManager["default"](_TestData.SECTION_SIZE); _TestData.CELLS.forEach(function (cellMetadatum, index) { sectionManager.registerCell({ cellMetadatum: cellMetadatum, index: index }); }); return sectionManager; } function verifySections(sectionManager, sizeAndPosition, expectedSizeAndPositionInfos) { var sections = sectionManager.getSections(sizeAndPosition); expect(sections.length).toEqual(expectedSizeAndPositionInfos.length); expectedSizeAndPositionInfos.forEach(function (sizeAndPosition) { var match = sections.find(function (section) { return section.x === sizeAndPosition.x && section.y === sizeAndPosition.y; }); expect(!!match).toEqual(true); }); } describe('SectionManager', function () { it('creates the appropriate number of Sections', function () { var sectionManager = initSectionManager(); expect(sectionManager.getTotalSectionCount()).toEqual(6); }); it('returns the proper Sections based on the specified area', function () { var sectionManager = initSectionManager(); verifySections(sectionManager, { x: 0, y: 0, width: 1, height: 1 }, [{ x: 0, y: 0 }]); verifySections(sectionManager, { x: 1, y: 1, width: 1, height: 1 }, [{ x: 0, y: 0 }]); verifySections(sectionManager, { x: 0, y: 0, width: 4, height: 4 }, [{ x: 0, y: 0 }, { x: 2, y: 0 }, { x: 0, y: 2 }, { x: 2, y: 2 }]); verifySections(sectionManager, { x: 4, y: 0, width: 2, height: 3 }, [{ x: 4, y: 0 }, { x: 4, y: 2 }]); }); it('assigns cells to the appropriate sections', function () { var sectionManager = initSectionManager(); expect(sectionManager.getCellIndices({ x: 0, y: 0, width: 2, height: 2 })).toEqual([0]); expect(sectionManager.getCellIndices({ x: 2, y: 0, width: 2, height: 2 })).toEqual([1, 2, 3]); expect(sectionManager.getCellIndices({ x: 4, y: 0, width: 2, height: 2 })).toEqual([6]); expect(sectionManager.getCellIndices({ x: 0, y: 2, width: 2, height: 2 })).toEqual([4]); expect(sectionManager.getCellIndices({ x: 2, y: 2, width: 2, height: 2 })).toEqual([3, 4, 5]); expect(sectionManager.getCellIndices({ x: 4, y: 2, width: 2, height: 2 })).toEqual([7, 8, 9]); }); });