getSelectedLast.spec.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. describe('Core.getSelectedLast', () => {
  2. beforeEach(function() {
  3. this.$container = $('<div id="testContainer"></div>').appendTo('body');
  4. });
  5. afterEach(function() {
  6. if (this.$container) {
  7. destroy();
  8. this.$container.remove();
  9. }
  10. });
  11. it('should return valid coordinates', () => {
  12. handsontable({
  13. data: Handsontable.helper.createSpreadsheetObjectData(10, 10),
  14. selectionMode: 'multiple',
  15. });
  16. const snapshot = [
  17. [5, 4, 1, 1],
  18. [2, 2, 7, 2],
  19. [2, 4, 2, 4],
  20. [7, 6, 8, 7],
  21. ];
  22. $(getCell(5, 4)).simulate('mousedown');
  23. $(getCell(1, 1)).simulate('mouseover');
  24. $(getCell(1, 1)).simulate('mouseup');
  25. expect(getSelectedLast()).toEqual(snapshot[0]);
  26. keyDown('ctrl');
  27. $(getCell(2, 2)).simulate('mousedown');
  28. $(getCell(7, 2)).simulate('mouseover');
  29. $(getCell(7, 2)).simulate('mouseup');
  30. expect(getSelectedLast()).toEqual(snapshot[1]);
  31. $(getCell(2, 4)).simulate('mousedown');
  32. $(getCell(2, 4)).simulate('mouseover');
  33. $(getCell(2, 4)).simulate('mouseup');
  34. expect(getSelectedLast()).toEqual(snapshot[2]);
  35. $(getCell(7, 6)).simulate('mousedown');
  36. $(getCell(8, 7)).simulate('mouseover');
  37. $(getCell(8, 7)).simulate('mouseup');
  38. expect(getSelectedLast()).toEqual(snapshot[3]);
  39. });
  40. it('should return valid coordinates when `.getSelectedRange` and `.getSelectedRangeLast` is called', () => {
  41. handsontable({
  42. data: Handsontable.helper.createSpreadsheetObjectData(10, 10),
  43. selectionMode: 'multiple',
  44. });
  45. const snapshot = [
  46. { from: { row: 5, col: 4 }, to: { row: 1, col: 1 } },
  47. { from: { row: 2, col: 2 }, to: { row: 7, col: 2 } },
  48. { from: { row: 2, col: 4 }, to: { row: 2, col: 4 } },
  49. { from: { row: 7, col: 6 }, to: { row: 8, col: 7 } },
  50. ];
  51. $(getCell(5, 4)).simulate('mousedown');
  52. $(getCell(1, 1)).simulate('mouseover');
  53. $(getCell(1, 1)).simulate('mouseup');
  54. expect(getSelectedRangeLast().toObject()).toEqual(snapshot[0]);
  55. expect(getSelectedRange().map(cellRange => cellRange.toObject())).toEqual([snapshot[0]]);
  56. keyDown('ctrl');
  57. $(getCell(2, 2)).simulate('mousedown');
  58. $(getCell(7, 2)).simulate('mouseover');
  59. $(getCell(7, 2)).simulate('mouseup');
  60. expect(getSelectedRangeLast().toObject()).toEqual(snapshot[1]);
  61. expect(getSelectedRange().map(cellRange => cellRange.toObject())).toEqual([snapshot[0], snapshot[1]]);
  62. $(getCell(2, 4)).simulate('mousedown');
  63. $(getCell(2, 4)).simulate('mouseover');
  64. $(getCell(2, 4)).simulate('mouseup');
  65. expect(getSelectedRangeLast().toObject()).toEqual(snapshot[2]);
  66. expect(getSelectedRange().map(cellRange => cellRange.toObject())).toEqual([snapshot[0], snapshot[1], snapshot[2]]);
  67. $(getCell(7, 6)).simulate('mousedown');
  68. $(getCell(8, 7)).simulate('mouseover');
  69. $(getCell(8, 7)).simulate('mouseup');
  70. const selectedRange = getSelectedRange().map(cellRange => cellRange.toObject());
  71. expect(getSelectedRangeLast().toObject()).toEqual(snapshot[3]);
  72. expect(selectedRange).toEqual(snapshot);
  73. });
  74. });