@reltio/components 1.4.2045 → 1.4.2047

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
  2. package/BasicTable/BasicTable.test.js +232 -278
  3. package/BlobRenderer/BlobRenderer.js +1 -1
  4. package/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
  5. package/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
  6. package/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  7. package/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
  8. package/DeleteButton/DeleteButton.spec.js +53 -15
  9. package/DependentLookupEditor/DependentLookupEditor.test.js +555 -807
  10. package/Drawer/Drawer.test.js +9 -20
  11. package/DropDownEditor/DropDownEditor.test.js +81 -29
  12. package/DropDownMenuButton/DropDownMenuButton.spec.js +101 -70
  13. package/DropDownSelector/DropDownSelector.test.js +159 -30
  14. package/EditModeAttributesFactory/EditModeAttributesFactory.test.js +143 -0
  15. package/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
  16. package/EditModeAttributesList/attributes.test-data.d.ts +0 -11
  17. package/EditModeAttributesList/attributes.test-data.js +1 -1
  18. package/EditModeAttributesPager/EditModeAttributesPager.test.js +698 -234
  19. package/EditModeAttributesPager/helpers.test.js +2 -12
  20. package/EditModeAttributesView/EditModeAttributesView.test.js +263 -157
  21. package/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
  22. package/EditModeComplexAttribute/EditModeComplexAttribute.test.js +313 -298
  23. package/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
  24. package/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
  25. package/EmptyState/EmptyState.test.js +99 -38
  26. package/EntityCreator/EntityCreator.test.js +68 -35
  27. package/EntitySelector/EntitySelector.js +1 -1
  28. package/EntitySelector/EntitySelector.test.js +275 -422
  29. package/EntityTypeIcon/EntityTypeIcon.test.js +16 -16
  30. package/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
  31. package/ErrorBoundary/ErrorBoundary.test.js +19 -17
  32. package/ErrorMessage/ErrorMessage.js +1 -1
  33. package/ErrorPopup/ErrorPopup.test.js +72 -25
  34. package/ErrorWrapper/ErrorWrapper.test.js +10 -9
  35. package/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
  36. package/FileTypeEditor/FileTypeEditor.test.js +95 -64
  37. package/FilterValueEditor/FilterValueEditor.test.js +183 -157
  38. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
  39. package/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
  40. package/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
  41. package/InlineSimpleAttribute/InlineSimpleAttribute.js +4 -1
  42. package/OvIcon/OvIcon.js +2 -2
  43. package/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  44. package/ShowLess/ShowLess.js +1 -1
  45. package/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  46. package/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  47. package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
  48. package/cjs/BasicTable/BasicTable.test.js +230 -299
  49. package/cjs/BlobRenderer/BlobRenderer.js +1 -1
  50. package/cjs/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
  51. package/cjs/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
  52. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  53. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
  54. package/cjs/DeleteButton/DeleteButton.spec.js +53 -15
  55. package/cjs/DependentLookupEditor/DependentLookupEditor.test.js +569 -821
  56. package/cjs/Drawer/Drawer.test.js +10 -21
  57. package/cjs/DropDownEditor/DropDownEditor.test.js +81 -29
  58. package/cjs/DropDownMenuButton/DropDownMenuButton.spec.js +102 -71
  59. package/cjs/DropDownSelector/DropDownSelector.test.js +159 -30
  60. package/cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.js +148 -0
  61. package/cjs/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
  62. package/cjs/EditModeAttributesList/attributes.test-data.d.ts +0 -11
  63. package/cjs/EditModeAttributesList/attributes.test-data.js +1 -1
  64. package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +696 -232
  65. package/cjs/EditModeAttributesPager/helpers.test.js +2 -12
  66. package/cjs/EditModeAttributesView/EditModeAttributesView.test.js +262 -156
  67. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
  68. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.test.js +312 -297
  69. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
  70. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
  71. package/cjs/EmptyState/EmptyState.test.js +98 -37
  72. package/cjs/EntityCreator/EntityCreator.test.js +69 -36
  73. package/cjs/EntitySelector/EntitySelector.js +1 -1
  74. package/cjs/EntitySelector/EntitySelector.test.js +274 -421
  75. package/cjs/EntityTypeIcon/EntityTypeIcon.test.js +17 -17
  76. package/cjs/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
  77. package/cjs/ErrorBoundary/ErrorBoundary.test.js +19 -17
  78. package/cjs/ErrorMessage/ErrorMessage.js +1 -1
  79. package/cjs/ErrorPopup/ErrorPopup.test.js +71 -24
  80. package/cjs/ErrorWrapper/ErrorWrapper.test.js +10 -9
  81. package/cjs/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
  82. package/cjs/FileTypeEditor/FileTypeEditor.test.js +95 -64
  83. package/cjs/FilterValueEditor/FilterValueEditor.test.js +182 -156
  84. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
  85. package/cjs/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
  86. package/cjs/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
  87. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.js +4 -1
  88. package/cjs/OvIcon/OvIcon.js +2 -2
  89. package/cjs/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  90. package/cjs/ShowLess/ShowLess.js +1 -1
  91. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  92. package/cjs/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  93. package/cjs/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  94. package/cjs/contexts/MdmModuleContext/hooks.d.ts +2 -2
  95. package/cjs/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -53
  96. package/cjs/features/crosswalks/CrosswalkRow/CrosswalkRow.js +1 -1
  97. package/cjs/features/crosswalks/CrosswalkRow/styles.js +4 -1
  98. package/cjs/test-utils/TestStylesProvider.js +6 -5
  99. package/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  100. package/contexts/MdmModuleContext/hooks.d.ts +2 -2
  101. package/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -30
  102. package/features/crosswalks/CrosswalkRow/CrosswalkRow.js +1 -1
  103. package/features/crosswalks/CrosswalkRow/styles.js +4 -1
  104. package/package.json +1 -1
  105. package/test-utils/TestStylesProvider.js +3 -2
  106. package/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -101
  107. package/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -106
  108. package/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  109. package/BasicTable/IntegrationBasicTable.test.js +0 -203
  110. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  111. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -137
  112. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  113. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -32
  114. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  115. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -106
  116. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  117. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -338
  118. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  119. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -225
  120. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  121. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -47
  122. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  123. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -204
  124. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  125. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -246
  126. package/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  127. package/EditModeAttributesView/metadata.test-data.js +0 -119
  128. package/EntityCreator/entityType.test-data.d.ts +0 -52
  129. package/EntityCreator/entityType.test-data.js +0 -188
  130. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  131. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -27
  132. package/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  133. package/EntitySelector/components/EntityOption/EntityOption.test.js +0 -79
  134. package/EntitySelector/components/Group/Group.test.d.ts +0 -1
  135. package/EntitySelector/components/Group/Group.test.js +0 -65
  136. package/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  137. package/EntitySelector/components/SingleValue/SingleValue.test.js +0 -78
  138. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  139. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -76
  140. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts +0 -1
  141. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -106
  142. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts +0 -1
  143. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -111
  144. package/cjs/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  145. package/cjs/BasicTable/IntegrationBasicTable.test.js +0 -208
  146. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  147. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -142
  148. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  149. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -37
  150. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  151. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -111
  152. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  153. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -343
  154. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  155. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -230
  156. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  157. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -52
  158. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  159. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -209
  160. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  161. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -251
  162. package/cjs/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  163. package/cjs/EditModeAttributesView/metadata.test-data.js +0 -123
  164. package/cjs/EntityCreator/entityType.test-data.d.ts +0 -52
  165. package/cjs/EntityCreator/entityType.test-data.js +0 -191
  166. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  167. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -32
  168. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  169. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.js +0 -84
  170. package/cjs/EntitySelector/components/Group/Group.test.d.ts +0 -1
  171. package/cjs/EntitySelector/components/Group/Group.test.js +0 -70
  172. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  173. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.js +0 -83
  174. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  175. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -81
  176. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  177. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -104
  178. package/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  179. package/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -99
  180. /package/{AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts → EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
  181. /package/{AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts → cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
@@ -9,290 +9,244 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  import React from 'react';
13
- import { shallow } from 'enzyme';
14
- import Table from 'react-components/dist/Table/Table';
15
- import * as dataHelpers from './helpers';
49
+ import { screen, render, within, fireEvent, act } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
51
+ import { CollapseRowButton } from '../CollapseRowButton';
52
+ import { mockBasicTableSizing } from '../test-utils';
16
53
  import { BasicTable } from './BasicTable';
17
- import { defaultRenderRowCell, defaultGetRowCellHeight } from '../helpers/basicTable';
18
- import { BasicTableContext } from '../contexts/BasicTableContext';
19
- import { useCollapsibleTableRows } from '../hooks/useCollapsibleTableRows';
20
- import { RowCollapseContext } from '../contexts/RowCollapseContext';
21
- jest.mock('../hooks/useCollapsibleTableRows', function () { return ({
22
- useCollapsibleTableRows: jest.fn()
23
- }); });
24
- describe('BasicTable', function () {
25
- var headData = [
26
- {
27
- id: 'id1',
28
- label: 'label1',
29
- sortable: true,
30
- resizable: true
31
- },
32
- {
33
- id: 'id2',
34
- label: 'label2',
35
- sortable: false,
36
- resizable: true
37
- },
38
- {
39
- id: 'id3',
40
- label: 'label3',
41
- sortable: true,
42
- resizable: false
43
- },
44
- {
45
- id: 'id4',
46
- label: 'label4',
47
- sortable: false,
48
- resizable: false,
49
- className: 'className3'
50
- },
51
- {
52
- id: 'id5',
53
- label: 'label5',
54
- sortable: false,
55
- resizable: false
56
- },
57
- {
58
- id: 'id6',
59
- label: 'label6',
60
- sortable: false,
61
- resizable: false
62
- }
63
- ];
64
- var rowsData = [
65
- {
66
- data: {
67
- id1: [{ values: 'test0', rowSpan: 4 }],
68
- id2: [
69
- { values: 'test1-1', rowSpan: 2 },
70
- { values: 'test1-2', rowSpan: 2 }
71
- ],
72
- id3: [
73
- { values: null, rowSpan: 1 },
74
- { values: ['test0-1-0'], rowSpan: 1 },
75
- { values: ['test0-2-0'], rowSpan: 1 },
76
- { values: null, rowSpan: 1 }
77
- ],
78
- id4: [
79
- { values: null, rowSpan: 2 },
80
- { values: ['test1-1-0', 'test1-1-1'], rowSpan: 1 },
81
- { values: ['test1-2-0', 'test1-2-1'], rowSpan: 1 }
82
- ],
83
- id5: [
84
- { values: ['test2-0-0', 'test2-0-1'], rowSpan: 1 },
85
- { values: ['test2-1-0', 'test2-1-1', 'test2-1-2'], rowSpan: 1 },
86
- { values: ['test2-2-0', 'test2-2-1', 'test2-2-2', 'test2-2-3'], rowSpan: 2 }
87
- ],
88
- id6: [
89
- { values: ['test3-0-0', 'test3-0-1'], rowSpan: 1 },
90
- { values: ['test3-1-0', 'test3-1-1', 'test3-1-2'], rowSpan: 2 },
91
- {
92
- values: [
93
- React.createElement("div", { key: "test3-2-0" }, "test3-2-0"),
94
- React.createElement("div", { key: "test3-2-1" }, "test3-2-1"),
95
- React.createElement("div", { key: "test3-2-2" }, "test3-2-2"),
96
- React.createElement("div", { key: "test3-2-3" }, "test3-2-3"),
97
- React.createElement("div", { key: "test3-2-4" }, "test3-2-4")
98
- ],
99
- rowSpan: 1
100
- }
101
- ]
102
- },
103
- rowHeight: 48
104
- },
105
- {
106
- data: {
107
- id1: [{ values: 'test1', rowSpan: 1 }],
108
- id2: [{ values: 'test1-1', rowSpan: 1 }],
109
- id3: [{ values: null, rowSpan: 1 }],
110
- id4: [{ values: null, rowSpan: 1 }],
111
- id5: [{ values: ['test2-0-0', 'test2-0-1'], rowSpan: 1 }],
112
- id6: [{ values: ['test3-0-0', 'test3-0-1'], rowSpan: 1 }]
113
- },
114
- rowHeight: 48
115
- },
116
- {
117
- data: {
118
- id1: [{ values: 'test2', rowSpan: 1 }],
119
- id2: [{ values: 'test1-1', rowSpan: 1 }],
120
- id3: [{ values: null, rowSpan: 1 }],
121
- id4: [{ values: null, rowSpan: 1 }],
122
- id5: [{ values: ['test2-0-0', React.createElement("div", { key: "test2-0-1" }, "test2-0-1")], rowSpan: 1 }],
123
- id6: [{ values: ['test3-0-0', React.createElement("div", { key: "test3-0-1" }, "test3-0-1")], rowSpan: 1 }]
124
- },
125
- rowHeight: 48
126
- }
127
- ];
128
- var collapseContextValue = {};
129
- beforeAll(function () {
130
- useCollapsibleTableRows.mockReturnValue({
131
- tableRowsData: rowsData,
132
- collapseContextValue: collapseContextValue
133
- });
134
- });
135
- beforeEach(function () {
136
- jest.spyOn(dataHelpers, 'getTableHeadData').mockReturnValue(headData);
54
+ var getRowByIndex = function (index) {
55
+ var fixHeadAndFirstColumnContainer = screen.queryByTestId('fix-head-and-fix-column-container');
56
+ return within(fixHeadAndFirstColumnContainer).queryAllByTestId("base-cell-".concat(index));
57
+ };
58
+ var getCellByIndexes = function (rowIndex, columnIndex) {
59
+ var row = getRowByIndex(rowIndex);
60
+ return row[columnIndex];
61
+ };
62
+ var FirstColumnRenderer = function (_a) {
63
+ var value = _a.value, rowValue = _a.rowValue, rowIndex = _a.rowIndex, draggableProps = _a.draggableProps;
64
+ return (React.createElement("div", null,
65
+ React.createElement(CollapseRowButton, { rowIndex: rowIndex, rowValue: rowValue }),
66
+ React.createElement("div", __assign({}, draggableProps), "drag el"),
67
+ React.createElement("div", null, value.name)));
68
+ };
69
+ var SecondColumnRenderer = function (_a) {
70
+ var value = _a.value;
71
+ return React.createElement("div", null, value.value);
72
+ };
73
+ var getRowCellRenderer = function (id) {
74
+ switch (id) {
75
+ case 'id1':
76
+ return FirstColumnRenderer;
77
+ case 'id2':
78
+ return SecondColumnRenderer;
79
+ default:
80
+ return function () { return null; };
81
+ }
82
+ };
83
+ var onHeadClickFn = jest.fn();
84
+ var HeadCellRenderer = function (_a) {
85
+ var headCellData = _a.headCellData;
86
+ return (React.createElement("div", null,
87
+ React.createElement("button", { onClick: onHeadClickFn }, headCellData.label)));
88
+ };
89
+ var columnsData = [
90
+ {
91
+ autoResize: false,
92
+ headCellRenderer: HeadCellRenderer,
93
+ id: 'id1',
94
+ initialWidth: 300,
95
+ label: 'column 1',
96
+ minWidth: 250,
97
+ resizable: true,
98
+ draggable: true,
99
+ rowCellValueRenderer: getRowCellRenderer('id1'),
100
+ sortable: false
101
+ },
102
+ {
103
+ autoResize: false,
104
+ headCellRenderer: function () { return 'second column'; },
105
+ id: 'id2',
106
+ initialWidth: 300,
107
+ label: 'column 2',
108
+ minWidth: 250,
109
+ resizable: true,
110
+ rowCellValueRenderer: getRowCellRenderer('id2'),
111
+ sortable: false
112
+ }
113
+ ];
114
+ var rowsData = [
115
+ { id1: { name: 'row 1' }, id2: [{ value: 'row 1 value 1' }, { value: 'row 1 value 2' }, { value: 'row 1 value 3' }] },
116
+ { id1: { name: 'row 2' }, id2: [{ value: 'row 2 value 1' }, { value: 'row 2 value 2' }] }
117
+ ];
118
+ var defaultProps = {
119
+ fixFirstColumn: true,
120
+ columnsData: columnsData,
121
+ rowsData: rowsData,
122
+ headRowHeight: 48,
123
+ defaultColumnWidth: 250,
124
+ defaultColumnMinWidth: 200,
125
+ dndColumnReorderingEnabled: true,
126
+ dndColumnReorderingHandler: function () { },
127
+ dndRowReorderingEnabled: true,
128
+ dndRowReorderingHandler: function () { },
129
+ getIdFromRowValue: function (rowValue) { return rowValue.id1.name; },
130
+ getRowCellHeight: function () { return 48; },
131
+ maxRowValuesCount: 1,
132
+ context: {}
133
+ };
134
+ var setUp = function (props) {
135
+ if (props === void 0) { props = defaultProps; }
136
+ var user = userEvent.setup();
137
+ return __assign(__assign({}, render(React.createElement(BasicTable, __assign({}, props)))), { user: user });
138
+ };
139
+ describe('basic table tests', function () {
140
+ afterEach(function () {
137
141
  jest.clearAllMocks();
138
142
  });
139
- it('should render Table with correct props', function () {
140
- var props = {
141
- defaultColumnWidth: 100,
142
- defaultColumnMinWidth: 100,
143
- headRowHeight: 48,
144
- columnsData: [],
145
- filters: null,
146
- onFilter: jest.fn(),
147
- rowsData: [],
148
- sorting: { field: 'column', order: 'asc' },
149
- onSort: jest.fn(),
150
- renderRowCell: jest.fn(),
151
- getRowCellHeight: jest.fn(),
152
- maxRowValuesCount: 3
153
- };
154
- var wrapper = shallow(React.createElement(BasicTable, __assign({}, props)));
155
- expect(wrapper.find(Table).props()).toMatchObject({
156
- fixHead: true,
157
- headData: headData,
158
- rowsData: rowsData,
159
- sortField: props.sorting.field,
160
- sortOrder: props.sorting.order,
161
- onSort: props.onSort
162
- });
163
- expect(dataHelpers.getTableHeadData).toHaveBeenCalledWith(props.columnsData, props.filters, props.onFilter);
164
- expect(useCollapsibleTableRows).toHaveBeenCalledWith({
165
- rowsData: props.rowsData,
166
- columnsData: props.columnsData,
167
- renderRowCell: props.renderRowCell,
168
- getRowCellHeight: props.getRowCellHeight,
169
- maxRowValuesCount: props.maxRowValuesCount
170
- });
171
- var collapseContextProvider = wrapper.find(RowCollapseContext.Provider);
172
- expect(collapseContextProvider.prop('value')).toBe(collapseContextValue);
173
- expect(collapseContextProvider.childAt(0).find(Table).exists()).toBe(true);
174
- });
175
- it('should provide Table with context', function () {
176
- var props = {
177
- defaultColumnWidth: 100,
178
- defaultColumnMinWidth: 100,
179
- headRowHeight: 48,
180
- columnsData: [],
181
- filters: null,
182
- onFilter: jest.fn(),
183
- rowsData: [],
184
- sorting: { field: 'column', order: 'asc' },
185
- onSort: jest.fn(),
186
- renderRowCell: jest.fn(),
187
- getRowCellHeight: jest.fn(),
188
- context: { someKey: 'someValue' }
189
- };
190
- var wrapper = shallow(React.createElement(BasicTable, __assign({}, props)));
191
- var contextProvider = wrapper.find(BasicTableContext.Provider);
192
- expect(contextProvider.prop('value')).toBe(props.context);
193
- expect(contextProvider.childAt(0)).toEqual(wrapper.find(Table));
194
- });
195
- it('should render Table without fixed head if row data is empty', function () {
196
- var props = {
197
- defaultColumnWidth: 100,
198
- defaultColumnMinWidth: 100,
199
- headRowHeight: 48,
200
- columnsData: [],
201
- filters: null,
202
- onFilter: jest.fn(),
203
- rowsData: [],
204
- sorting: { field: 'column', order: 'asc' },
205
- onSort: jest.fn(),
206
- renderRowCell: jest.fn(),
207
- getRowCellHeight: jest.fn()
208
- };
209
- useCollapsibleTableRows.mockReturnValueOnce({
210
- tableRowsData: [],
211
- collapseContextValue: collapseContextValue
212
- });
213
- var wrapper = shallow(React.createElement(BasicTable, __assign({}, props)));
214
- expect(wrapper.find(Table).prop('fixHead')).toBe(false);
143
+ it('should not render Table when columnsData is empty array', function () {
144
+ var props = __assign(__assign({}, defaultProps), { columnsData: [] });
145
+ var container = setUp(props).container;
146
+ expect(container).toBeEmptyDOMElement();
215
147
  });
216
- it('should use default row cell renderer if it is not provided in props', function () {
217
- var props = {
218
- defaultColumnWidth: 100,
219
- defaultColumnMinWidth: 100,
220
- headRowHeight: 48,
221
- columnsData: [],
222
- rowsData: [],
223
- sorting: { field: 'column', order: 'asc' },
224
- onSort: jest.fn(),
225
- getRowCellHeight: jest.fn(),
226
- maxRowValuesCount: 3
227
- };
228
- shallow(React.createElement(BasicTable, __assign({}, props)));
229
- expect(useCollapsibleTableRows).toHaveBeenCalledWith({
230
- rowsData: props.rowsData,
231
- columnsData: props.columnsData,
232
- renderRowCell: defaultRenderRowCell,
233
- getRowCellHeight: props.getRowCellHeight,
234
- maxRowValuesCount: props.maxRowValuesCount
148
+ it('should render correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
149
+ var unmockTableSizing, user;
150
+ return __generator(this, function (_a) {
151
+ switch (_a.label) {
152
+ case 0:
153
+ unmockTableSizing = mockBasicTableSizing();
154
+ user = setUp().user;
155
+ screen.getByText('column 1');
156
+ screen.getByText('second column');
157
+ screen.getByText('row 1');
158
+ screen.getByText('row 1 value 1');
159
+ expect(screen.queryByText('row 1 value 2')).not.toBeInTheDocument();
160
+ expect(screen.queryByText('row 1 value 3')).not.toBeInTheDocument();
161
+ screen.getByText('row 2');
162
+ screen.getByText('row 2 value 1');
163
+ expect(screen.queryByText('row 2 value 2')).not.toBeInTheDocument();
164
+ return [4 /*yield*/, user.click(within(getCellByIndexes(0, 0)).queryByTestId('collapse-button'))];
165
+ case 1:
166
+ _a.sent();
167
+ screen.getByText('row 1 value 2');
168
+ screen.getByText('row 1 value 3');
169
+ return [4 /*yield*/, user.click(within(getCellByIndexes(1, 0)).queryByTestId('collapse-button'))];
170
+ case 2:
171
+ _a.sent();
172
+ screen.getByText('row 2 value 2');
173
+ return [4 /*yield*/, user.click(within(getCellByIndexes(0, 0)).queryByTestId('collapse-button'))];
174
+ case 3:
175
+ _a.sent();
176
+ expect(screen.queryByText('row 1 value 2')).not.toBeInTheDocument();
177
+ expect(screen.queryByText('row 1 value 3')).not.toBeInTheDocument();
178
+ return [4 /*yield*/, user.click(within(getCellByIndexes(1, 0)).queryByTestId('collapse-button'))];
179
+ case 4:
180
+ _a.sent();
181
+ expect(screen.queryByText('row 2 value 2')).not.toBeInTheDocument();
182
+ unmockTableSizing();
183
+ return [2 /*return*/];
184
+ }
235
185
  });
236
- });
237
- it('should use default getRowCellHeight if it is not provided in props', function () {
238
- var props = {
239
- defaultColumnWidth: 100,
240
- defaultColumnMinWidth: 100,
241
- headRowHeight: 48,
242
- columnsData: [],
243
- rowsData: [],
244
- sorting: { field: 'column', order: 'asc' },
245
- onSort: jest.fn(),
246
- renderRowCell: jest.fn(),
247
- maxRowValuesCount: 3
248
- };
249
- shallow(React.createElement(BasicTable, __assign({}, props)));
250
- expect(useCollapsibleTableRows).toHaveBeenCalledWith({
251
- rowsData: props.rowsData,
252
- columnsData: props.columnsData,
253
- renderRowCell: props.renderRowCell,
254
- getRowCellHeight: defaultGetRowCellHeight,
255
- maxRowValuesCount: props.maxRowValuesCount
186
+ }); });
187
+ it('should collapse all rows after start dragging', function () { return __awaiter(void 0, void 0, void 0, function () {
188
+ var unmockTableSizing, mouse, user, dragIndicator;
189
+ return __generator(this, function (_a) {
190
+ switch (_a.label) {
191
+ case 0:
192
+ unmockTableSizing = mockBasicTableSizing();
193
+ mouse = [
194
+ { clientX: 0, clientY: 0 },
195
+ { clientX: 20, clientY: 20 }
196
+ ];
197
+ user = setUp().user;
198
+ return [4 /*yield*/, user.click(within(getCellByIndexes(0, 0)).queryByTestId('collapse-button'))];
199
+ case 1:
200
+ _a.sent();
201
+ return [4 /*yield*/, user.click(within(getCellByIndexes(1, 0)).queryByTestId('collapse-button'))];
202
+ case 2:
203
+ _a.sent();
204
+ expect(within(getCellByIndexes(0, 1)).queryByText('row 1 value 1')).toBeInTheDocument();
205
+ expect(within(getCellByIndexes(0, 1)).queryByText('row 1 value 2')).toBeInTheDocument();
206
+ expect(within(getCellByIndexes(0, 1)).queryByText('row 1 value 3')).toBeInTheDocument();
207
+ expect(within(getCellByIndexes(1, 1)).queryByText('row 2 value 1')).toBeInTheDocument();
208
+ expect(within(getCellByIndexes(1, 1)).queryByText('row 2 value 2')).toBeInTheDocument();
209
+ dragIndicator = within(getCellByIndexes(1, 0)).getByRole('button', { name: 'drag el' });
210
+ return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
211
+ return __generator(this, function (_a) {
212
+ fireEvent.mouseDown(dragIndicator, mouse[0]);
213
+ fireEvent.mouseMove(dragIndicator, mouse[1]);
214
+ return [2 /*return*/];
215
+ });
216
+ }); })];
217
+ case 3:
218
+ _a.sent();
219
+ expect(within(getCellByIndexes(0, 1)).queryByText('row 1 value 1')).toBeInTheDocument();
220
+ expect(within(getCellByIndexes(0, 1)).queryByText('row 1 value 2')).not.toBeInTheDocument();
221
+ expect(within(getCellByIndexes(0, 1)).queryByText('row 1 value 3')).not.toBeInTheDocument();
222
+ expect(within(getCellByIndexes(1, 1)).queryByText('row 2 value 1')).toBeInTheDocument();
223
+ expect(within(getCellByIndexes(1, 1)).queryByText('row 2 value 2')).not.toBeInTheDocument();
224
+ return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
225
+ return __generator(this, function (_a) {
226
+ fireEvent.mouseUp(dragIndicator);
227
+ return [2 /*return*/];
228
+ });
229
+ }); })];
230
+ case 4:
231
+ _a.sent();
232
+ unmockTableSizing();
233
+ return [2 /*return*/];
234
+ }
256
235
  });
257
- });
258
- it('should use Infinity as maxRowValuesCount if it is not provided in props', function () {
259
- var props = {
260
- defaultColumnWidth: 100,
261
- defaultColumnMinWidth: 100,
262
- headRowHeight: 48,
263
- columnsData: [],
264
- rowsData: [],
265
- sorting: { field: 'column', order: 'asc' },
266
- onSort: jest.fn(),
267
- renderRowCell: jest.fn(),
268
- getRowCellHeight: jest.fn()
269
- };
270
- shallow(React.createElement(BasicTable, __assign({}, props)));
271
- expect(useCollapsibleTableRows).toHaveBeenCalledWith({
272
- rowsData: props.rowsData,
273
- columnsData: props.columnsData,
274
- renderRowCell: props.renderRowCell,
275
- getRowCellHeight: props.getRowCellHeight,
276
- maxRowValuesCount: Infinity
236
+ }); });
237
+ it('should able to click on buttons in table head', function () { return __awaiter(void 0, void 0, void 0, function () {
238
+ var user;
239
+ return __generator(this, function (_a) {
240
+ switch (_a.label) {
241
+ case 0:
242
+ user = setUp().user;
243
+ expect(onHeadClickFn).not.toHaveBeenCalled();
244
+ return [4 /*yield*/, user.click(screen.getAllByRole('button', { name: columnsData[0].label })[1])];
245
+ case 1:
246
+ _a.sent();
247
+ expect(onHeadClickFn).toHaveBeenCalled();
248
+ return [2 /*return*/];
249
+ }
277
250
  });
278
- });
279
- it('should not render Table when columnsData is empty array', function () {
280
- jest.spyOn(dataHelpers, 'getTableHeadData').mockReturnValue([]);
281
- var props = {
282
- defaultColumnWidth: 100,
283
- defaultColumnMinWidth: 100,
284
- headRowHeight: 48,
285
- columnsData: [],
286
- filters: null,
287
- onFilter: jest.fn(),
288
- rowsData: [],
289
- sorting: { field: 'column', order: 'asc' },
290
- onSort: jest.fn(),
291
- renderRowCell: jest.fn(),
292
- getRowCellHeight: jest.fn(),
293
- context: { someKey: 'someValue' }
294
- };
295
- var wrapper = shallow(React.createElement(BasicTable, __assign({}, props)));
296
- expect(wrapper.isEmptyRender()).toBe(true);
297
- });
251
+ }); });
298
252
  });
@@ -3,5 +3,5 @@ import { useStyles } from './styles';
3
3
  export var BlobRenderer = function (_a) {
4
4
  var value = _a.value;
5
5
  var styles = useStyles();
6
- return (React.createElement("div", { className: styles.blobWrapper, onScroll: function (e) { return e.stopPropagation(); } }, value));
6
+ return (React.createElement("div", { "data-reltio-id": "blob-renderer", className: styles.blobWrapper, onScroll: function (e) { return e.stopPropagation(); } }, value));
7
7
  };