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