maxRows.spec.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. describe('settings', () => {
  2. describe('maxRows', () => {
  3. const id = 'testContainer';
  4. beforeEach(function() {
  5. this.$container = $(`<div id="${id}"></div>`).appendTo('body');
  6. });
  7. afterEach(function() {
  8. if (this.$container) {
  9. destroy();
  10. this.$container.remove();
  11. }
  12. });
  13. describe('works on init', () => {
  14. it('should show data properly when `maxRows` is set to 0', () => {
  15. handsontable({
  16. data: Handsontable.helper.createSpreadsheetData(10, 10),
  17. maxRows: 0
  18. });
  19. expect(getSourceDataAtCol(0).length).toEqual(10);
  20. expect(countSourceRows()).toEqual(10);
  21. expect(getData().length).toEqual(0);
  22. expect(getDataAtCol(0)).toEqual([]);
  23. expect(countRows()).toEqual(0);
  24. expect(countEmptyRows()).toEqual(0);
  25. expect(getDataAtRow(0)).toEqual([]);
  26. expect(getDataAtRow(1)).toEqual([]);
  27. });
  28. it('should show data properly when `maxRows` is set to value > 0', () => {
  29. handsontable({
  30. data: Handsontable.helper.createSpreadsheetData(10, 10),
  31. maxRows: 5
  32. });
  33. expect(getSourceDataAtCol(0).length).toEqual(10);
  34. expect(countSourceRows()).toEqual(10);
  35. expect(getData().length).toEqual(5);
  36. expect(getDataAtCol(0).length).toEqual(5);
  37. expect(countRows()).toEqual(5);
  38. expect(countEmptyRows()).toEqual(0);
  39. expect(getDataAtRow(6)).toEqual([]);
  40. });
  41. it('should show data properly when `maxRows` is set to infinity value', () => {
  42. handsontable({
  43. data: Handsontable.helper.createSpreadsheetData(10, 10),
  44. maxRows: Infinity
  45. });
  46. expect(getSourceDataAtCol(0).length).toEqual(10);
  47. expect(countSourceRows()).toEqual(10);
  48. expect(getData().length).toEqual(10);
  49. expect(getDataAtCol(0).length).toEqual(10);
  50. expect(countRows()).toEqual(10);
  51. expect(countEmptyRows()).toEqual(0);
  52. expect(getDataAtRow(0)).toEqual(['A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1', 'J1']);
  53. });
  54. });
  55. describe('update settings works', () => {
  56. it('should show data properly after maxRows is updated to 0', () => {
  57. handsontable({
  58. data: Handsontable.helper.createSpreadsheetData(10, 10)
  59. });
  60. updateSettings({
  61. maxRows: 0
  62. });
  63. expect(getSourceDataAtCol(0).length).toEqual(10);
  64. expect(countSourceRows()).toEqual(10);
  65. expect(getData().length).toEqual(0);
  66. expect(getDataAtCol(0)).toEqual([]);
  67. expect(countRows()).toEqual(0);
  68. expect(countEmptyRows()).toEqual(0);
  69. expect(getDataAtRow(0)).toEqual([]);
  70. expect(getDataAtRow(1)).toEqual([]);
  71. });
  72. it('should show data properly after maxRows is updated to value > 0 -> test no. 1', () => {
  73. handsontable({
  74. data: Handsontable.helper.createSpreadsheetData(10, 10)
  75. });
  76. updateSettings({
  77. maxRows: 2
  78. });
  79. expect(getSourceDataAtCol(0).length).toEqual(10);
  80. expect(countSourceRows()).toEqual(10);
  81. expect(getData().length).toEqual(2);
  82. expect(getDataAtCol(0).length).toEqual(2);
  83. expect(countRows()).toEqual(2);
  84. expect(countEmptyRows()).toEqual(0);
  85. expect(getDataAtRow(3)).toEqual([]);
  86. });
  87. it('should show data properly after maxRows is updated to value > 0 -> test no. 2', () => {
  88. handsontable({
  89. data: Handsontable.helper.createSpreadsheetData(10, 10),
  90. maxRows: 5
  91. });
  92. updateSettings({
  93. maxRows: 2
  94. });
  95. expect(getSourceDataAtCol(0).length).toEqual(10);
  96. expect(countSourceRows()).toEqual(10);
  97. expect(getData().length).toEqual(2);
  98. expect(getDataAtCol(0).length).toEqual(2);
  99. expect(countRows()).toEqual(2);
  100. expect(countEmptyRows()).toEqual(0);
  101. expect(getDataAtRow(3)).toEqual([]);
  102. });
  103. it('should show data properly after maxRows is updated to value > 0 -> test no. 3', () => {
  104. handsontable({
  105. data: Handsontable.helper.createSpreadsheetData(10, 10),
  106. maxRows: 2
  107. });
  108. updateSettings({
  109. maxRows: 5
  110. });
  111. expect(getSourceDataAtCol(0).length).toEqual(10);
  112. expect(countSourceRows()).toEqual(10);
  113. expect(getData().length).toEqual(5);
  114. expect(getDataAtCol(0).length).toEqual(5);
  115. expect(countRows()).toEqual(5);
  116. expect(countEmptyRows()).toEqual(0);
  117. expect(getDataAtRow(6)).toEqual([]);
  118. });
  119. it('should show data properly after maxRows is updated to infinity value -> test no. 1', () => {
  120. handsontable({
  121. data: Handsontable.helper.createSpreadsheetData(10, 10)
  122. });
  123. updateSettings({
  124. maxRows: Infinity
  125. });
  126. expect(getSourceDataAtCol(0).length).toEqual(10);
  127. expect(countSourceRows()).toEqual(10);
  128. expect(getData().length).toEqual(10);
  129. expect(getDataAtCol(0).length).toEqual(10);
  130. expect(countRows()).toEqual(10);
  131. expect(countEmptyRows()).toEqual(0);
  132. expect(getDataAtRow(0)).toEqual(['A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1', 'J1']);
  133. });
  134. it('should show data properly after maxRows is updated to infinity value -> test no. 2', () => {
  135. handsontable({
  136. data: Handsontable.helper.createSpreadsheetData(10, 10),
  137. maxRows: 2
  138. });
  139. updateSettings({
  140. maxRows: Infinity
  141. });
  142. expect(getSourceDataAtCol(0).length).toEqual(10);
  143. expect(countSourceRows()).toEqual(10);
  144. expect(getData().length).toEqual(10);
  145. expect(getDataAtCol(0).length).toEqual(10);
  146. expect(countRows()).toEqual(10);
  147. expect(countEmptyRows()).toEqual(0);
  148. expect(getDataAtRow(0)).toEqual(['A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1', 'J1']);
  149. });
  150. });
  151. });
  152. });