UNPKG

@quantlab/handsontable

Version:

Spreadsheet-like data grid editor that provides copy/paste functionality compatible with Excel/Google Docs

67 lines (50 loc) 1.91 kB
import RowsMapper from 'handsontable/plugins/manualRowMove/rowsMapper'; describe('manualRowMove', () => { describe('rowsMapper', () => { it('should set manualRowMove plugin while constructing', () => { var manualRowMoveMock = {}; var mapper = new RowsMapper(manualRowMoveMock); expect(mapper.manualRowMove).toBe(manualRowMoveMock); }); it('should be mixed with arrayMapper object', () => { expect(RowsMapper.MIXINS).toEqual(['arrayMapper']); }); it('should destroy array after calling destroy method', () => { var mapper = new RowsMapper(); expect(mapper._arrayMap).toEqual([]); mapper.destroy(); expect(mapper._arrayMap).toBe(null); ; }); it('should create map with pairs index->value', () => { var mapper = new RowsMapper(); mapper.createMap(6); expect(mapper._arrayMap[0]).toBe(0); expect(mapper._arrayMap[1]).toBe(1); expect(mapper._arrayMap[2]).toBe(2); expect(mapper._arrayMap[3]).toBe(3); expect(mapper._arrayMap[4]).toBe(4); expect(mapper._arrayMap[5]).toBe(5); }); it('should change order after move action', () => { var mapper = new RowsMapper(); mapper.createMap(6); mapper.moveRow(1, 0); mapper.clearNull(); expect(mapper._arrayMap[0]).toBe(1); expect(mapper._arrayMap[1]).toBe(0); expect(mapper._arrayMap[2]).toBe(2); expect(mapper._arrayMap[3]).toBe(3); expect(mapper._arrayMap[4]).toBe(4); expect(mapper._arrayMap[5]).toBe(5); }); it('should clean from null values', () => { var mapper = new RowsMapper(); mapper.createMap(6); mapper.moveRow(1, 6); mapper.moveRow(2, 7); mapper.moveRow(4, 8); mapper.clearNull(); expect(mapper._arrayMap.length).toBe(6); }); }); });