arrayMapper.spec.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import arrayMapper from 'handsontable/mixins/arrayMapper';
  2. describe('arrayMapper mixin', () => {
  3. describe('insertItems', () => {
  4. it('should add items to _arrayMap to the given place', () => {
  5. arrayMapper._arrayMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  6. arrayMapper.insertItems(1, 3);
  7. expect(arrayMapper._arrayMap.length).toBe(13);
  8. expect(arrayMapper._arrayMap).toEqual([0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
  9. arrayMapper._arrayMap = [1, 6, 3, 4, 5, 7, 8, 9, 0, 2];
  10. arrayMapper.insertItems(1, 3);
  11. expect(arrayMapper._arrayMap.length).toBe(13);
  12. expect(arrayMapper._arrayMap).toEqual([1, 10, 11, 12, 6, 3, 4, 5, 7, 8, 9, 0, 2]);
  13. });
  14. });
  15. describe('removeItems', () => {
  16. it('should remove items from _arrayMap and returns removed items', () => {
  17. arrayMapper._arrayMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  18. arrayMapper.removeItems(1, 3);
  19. expect(arrayMapper._arrayMap.length).toBe(7);
  20. expect(arrayMapper._arrayMap).toEqual([0, 4, 5, 6, 7, 8, 9]);
  21. arrayMapper._arrayMap = [1, 6, 3, 4, 5, 7, 8, 9, 0, 2];
  22. arrayMapper.removeItems(1, 3);
  23. expect(arrayMapper._arrayMap.length).toBe(7);
  24. expect(arrayMapper._arrayMap).toEqual([1, 5, 7, 8, 9, 0, 2]);
  25. });
  26. it('should remove an array of item indices from _arrayMap and return removed items', () => {
  27. arrayMapper._arrayMap = [1, 6, 3, 4, 5, 7, 8, 9, 0, 2];
  28. arrayMapper.removeItems([1, 3, 4, 7]);
  29. expect(arrayMapper._arrayMap.length).toBe(6);
  30. expect(arrayMapper._arrayMap).toEqual([1, 3, 7, 8, 0, 2]);
  31. });
  32. });
  33. describe('unshiftItems', () => {
  34. it('should remove items from _arrayMap', () => {
  35. arrayMapper._arrayMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  36. arrayMapper.unshiftItems(1, 3);
  37. expect(arrayMapper._arrayMap.length).toBe(7);
  38. expect(arrayMapper._arrayMap).toEqual([0, 1, 2, 3, 4, 5, 6]);
  39. arrayMapper._arrayMap = [1, 6, 3, 4, 5, 7, 8, 9, 0, 2];
  40. arrayMapper.unshiftItems(1, 3);
  41. expect(arrayMapper._arrayMap.length).toBe(7);
  42. expect(arrayMapper._arrayMap).toEqual([1, 3, 4, 5, 6, 0, 2]);
  43. });
  44. });
  45. describe('shiftItems', () => {
  46. it('should add items to _arrayMap', () => {
  47. arrayMapper._arrayMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  48. arrayMapper.shiftItems(1, 3);
  49. expect(arrayMapper._arrayMap.length).toBe(13);
  50. expect(arrayMapper._arrayMap).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]);
  51. arrayMapper._arrayMap = [1, 6, 3, 4, 5, 7, 8, 9, 0, 2];
  52. arrayMapper.shiftItems(1, 3);
  53. expect(arrayMapper._arrayMap.length).toBe(13);
  54. expect(arrayMapper._arrayMap).toEqual([4, 1, 2, 3, 9, 6, 7, 8, 10, 11, 12, 0, 5]);
  55. });
  56. });
  57. describe('Swap indexes', () => {
  58. it('should swap given indexes', () => {
  59. arrayMapper._arrayMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  60. arrayMapper.swapIndexes(8, 0);
  61. arrayMapper.swapIndexes(3, 1);
  62. arrayMapper.swapIndexes(5, 2);
  63. expect(arrayMapper._arrayMap.length).toBe(10);
  64. expect(arrayMapper._arrayMap).toEqual([8, 2, 4, 0, 1, 3, 5, 6, 7, 9]);
  65. });
  66. it('should return to their index', () => {
  67. arrayMapper._arrayMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  68. arrayMapper.swapIndexes(5, 0);
  69. arrayMapper.swapIndexes(8, 1);
  70. expect(arrayMapper._arrayMap.length).toBe(10);
  71. expect(arrayMapper._arrayMap).toEqual([5, 8, 0, 1, 2, 3, 4, 6, 7, 9]);
  72. arrayMapper.swapIndexes(1, 8);
  73. expect(arrayMapper._arrayMap.length).toBe(10);
  74. expect(arrayMapper._arrayMap).toEqual([5, 0, 1, 2, 3, 4, 6, 7, 8, 9]);
  75. arrayMapper.swapIndexes(0, 5);
  76. expect(arrayMapper._arrayMap.length).toBe(10);
  77. expect(arrayMapper._arrayMap).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
  78. });
  79. });
  80. describe('clearMap', () => {
  81. it('should clear _arrayMap', () => {
  82. arrayMapper._arrayMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  83. expect(arrayMapper._arrayMap.length).toBe(10);
  84. arrayMapper.clearMap();
  85. expect(arrayMapper._arrayMap.length).toBe(0);
  86. expect(arrayMapper._arrayMap).toEqual([]);
  87. });
  88. });
  89. });