@reltio/components 1.4.2044 → 1.4.2046

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 (175) 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/OvIcon/OvIcon.js +2 -2
  42. package/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  43. package/ShowLess/ShowLess.js +1 -1
  44. package/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  45. package/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  46. package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
  47. package/cjs/BasicTable/BasicTable.test.js +230 -299
  48. package/cjs/BlobRenderer/BlobRenderer.js +1 -1
  49. package/cjs/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
  50. package/cjs/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
  51. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  52. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
  53. package/cjs/DeleteButton/DeleteButton.spec.js +53 -15
  54. package/cjs/DependentLookupEditor/DependentLookupEditor.test.js +569 -821
  55. package/cjs/Drawer/Drawer.test.js +10 -21
  56. package/cjs/DropDownEditor/DropDownEditor.test.js +81 -29
  57. package/cjs/DropDownMenuButton/DropDownMenuButton.spec.js +102 -71
  58. package/cjs/DropDownSelector/DropDownSelector.test.js +159 -30
  59. package/cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.js +148 -0
  60. package/cjs/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
  61. package/cjs/EditModeAttributesList/attributes.test-data.d.ts +0 -11
  62. package/cjs/EditModeAttributesList/attributes.test-data.js +1 -1
  63. package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +696 -232
  64. package/cjs/EditModeAttributesPager/helpers.test.js +2 -12
  65. package/cjs/EditModeAttributesView/EditModeAttributesView.test.js +262 -156
  66. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
  67. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.test.js +312 -297
  68. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
  69. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
  70. package/cjs/EmptyState/EmptyState.test.js +98 -37
  71. package/cjs/EntityCreator/EntityCreator.test.js +69 -36
  72. package/cjs/EntitySelector/EntitySelector.js +1 -1
  73. package/cjs/EntitySelector/EntitySelector.test.js +274 -421
  74. package/cjs/EntityTypeIcon/EntityTypeIcon.test.js +17 -17
  75. package/cjs/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
  76. package/cjs/ErrorBoundary/ErrorBoundary.test.js +19 -17
  77. package/cjs/ErrorMessage/ErrorMessage.js +1 -1
  78. package/cjs/ErrorPopup/ErrorPopup.test.js +71 -24
  79. package/cjs/ErrorWrapper/ErrorWrapper.test.js +10 -9
  80. package/cjs/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
  81. package/cjs/FileTypeEditor/FileTypeEditor.test.js +95 -64
  82. package/cjs/FilterValueEditor/FilterValueEditor.test.js +182 -156
  83. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
  84. package/cjs/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
  85. package/cjs/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
  86. package/cjs/OvIcon/OvIcon.js +2 -2
  87. package/cjs/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  88. package/cjs/ShowLess/ShowLess.js +1 -1
  89. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  90. package/cjs/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  91. package/cjs/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  92. package/cjs/contexts/MdmModuleContext/hooks.d.ts +2 -2
  93. package/cjs/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -53
  94. package/cjs/test-utils/TestStylesProvider.js +6 -5
  95. package/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  96. package/contexts/MdmModuleContext/hooks.d.ts +2 -2
  97. package/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -30
  98. package/package.json +2 -2
  99. package/test-utils/TestStylesProvider.js +3 -2
  100. package/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -101
  101. package/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -106
  102. package/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  103. package/BasicTable/IntegrationBasicTable.test.js +0 -203
  104. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  105. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -137
  106. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  107. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -32
  108. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  109. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -106
  110. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  111. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -338
  112. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  113. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -225
  114. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  115. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -47
  116. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  117. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -204
  118. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  119. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -246
  120. package/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  121. package/EditModeAttributesView/metadata.test-data.js +0 -119
  122. package/EntityCreator/entityType.test-data.d.ts +0 -52
  123. package/EntityCreator/entityType.test-data.js +0 -188
  124. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  125. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -27
  126. package/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  127. package/EntitySelector/components/EntityOption/EntityOption.test.js +0 -79
  128. package/EntitySelector/components/Group/Group.test.d.ts +0 -1
  129. package/EntitySelector/components/Group/Group.test.js +0 -65
  130. package/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  131. package/EntitySelector/components/SingleValue/SingleValue.test.js +0 -78
  132. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  133. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -76
  134. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts +0 -1
  135. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -106
  136. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts +0 -1
  137. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -111
  138. package/cjs/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  139. package/cjs/BasicTable/IntegrationBasicTable.test.js +0 -208
  140. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  141. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -142
  142. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  143. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -37
  144. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  145. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -111
  146. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  147. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -343
  148. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  149. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -230
  150. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  151. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -52
  152. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  153. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -209
  154. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  155. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -251
  156. package/cjs/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  157. package/cjs/EditModeAttributesView/metadata.test-data.js +0 -123
  158. package/cjs/EntityCreator/entityType.test-data.d.ts +0 -52
  159. package/cjs/EntityCreator/entityType.test-data.js +0 -191
  160. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  161. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -32
  162. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  163. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.js +0 -84
  164. package/cjs/EntitySelector/components/Group/Group.test.d.ts +0 -1
  165. package/cjs/EntitySelector/components/Group/Group.test.js +0 -70
  166. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  167. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.js +0 -83
  168. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  169. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -81
  170. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  171. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -104
  172. package/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  173. package/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -99
  174. /package/{AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts → EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
  175. /package/{AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts → cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
@@ -10,29 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import React from 'react';
13
- import { mount } from 'enzyme';
14
- import RC_EntityTypeIcon from 'react-components/dist/EntityTypeIcon/EntityTypeIcon';
13
+ import { render, screen } from '@testing-library/react';
15
14
  import { MdmModuleProvider } from '../contexts/MdmModuleContext';
16
15
  import { EntityTypeIcon } from './EntityTypeIcon';
17
- var setUp = function (props, imagePath) {
18
- return mount(React.createElement(MdmModuleProvider, { values: { absoluteImagePath: imagePath } },
19
- React.createElement(EntityTypeIcon, __assign({}, props))));
16
+ var defaultProps = {
17
+ entityType: { uri: 'configuration/entityTypes/HCP', typeIcon: 'entity_icons/individual.svg' }
20
18
  };
21
- describe('EntityTypeIcon tests', function () {
19
+ var setUp = function (_a) {
20
+ var _b = _a.props, props = _b === void 0 ? defaultProps : _b, imagePath = _a.imagePath;
21
+ var Providers = function (_a) {
22
+ var children = _a.children;
23
+ return (React.createElement(MdmModuleProvider, { values: { absoluteImagePath: imagePath } }, children));
24
+ };
25
+ return render(React.createElement(EntityTypeIcon, __assign({}, props)), { wrapper: Providers });
26
+ };
27
+ describe('Entity type icon tests', function () {
22
28
  it('should render EntityTypeIcon from react-components with storagePath from store', function () {
23
- var props = {
24
- entityType: {
25
- uri: 'configuration/entityTypes/1'
26
- },
27
- className: 'className'
28
- };
29
29
  var imagePath = '/some/image/path/';
30
- var wrapper = setUp(props, imagePath);
31
- expect(wrapper.find(RC_EntityTypeIcon).props()).toEqual(__assign(__assign({}, props), { storagePath: imagePath }));
30
+ setUp({ imagePath: imagePath });
31
+ expect(screen.getByRole('img')).toHaveAttribute('src', '/some/image/path/entity_icons/individual.svg');
32
32
  });
33
33
  it('should ensure slash ending for storagePath', function () {
34
34
  var imagePath = '/some/image/path';
35
- var wrapper = setUp({}, imagePath);
36
- expect(wrapper.find(RC_EntityTypeIcon).prop('storagePath')).toBe(imagePath + '/');
35
+ setUp({ imagePath: imagePath });
36
+ expect(screen.getByRole('img')).toHaveAttribute('src', '/some/image/path/entity_icons/individual.svg');
37
37
  });
38
38
  });
@@ -1,25 +1,66 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ 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);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ 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;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
1
37
  import React from 'react';
2
- import { shallow } from 'enzyme';
3
- import { MetadataTypesSelector } from '../MetadataTypesSelector';
38
+ import { render, screen } from '@testing-library/react';
39
+ import userEvent from '@testing-library/user-event';
4
40
  import { EntityTypesSelector } from './EntityTypesSelector';
5
- describe('EntityTypesSelector tests', function () {
6
- it('should filter items correctly', function () {
7
- var entityTypes = [
8
- {
9
- uri: 'configuration/entityTypes/HCP',
10
- label: 'HCP Label',
11
- attributes: []
12
- },
13
- {
14
- uri: 'configuration/entityTypes/HCA',
15
- abstract: true,
16
- attributes: [],
17
- label: 'HCA Label',
18
- analyticsAttributes: []
41
+ describe('Entity types selector tests', function () {
42
+ it('should filter items correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
43
+ var user, entityTypes, onChange, items;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0:
47
+ user = userEvent.setup();
48
+ entityTypes = [
49
+ { uri: 'configuration/entityTypes/HCP', label: 'HCP Label', attributes: [] },
50
+ { uri: 'configuration/entityTypes/HCA', abstract: true, attributes: [], label: 'HCA Label' }
51
+ ];
52
+ onChange = jest.fn();
53
+ render(React.createElement(EntityTypesSelector, { entityTypes: entityTypes, selectedEntityTypes: [], onChange: onChange }));
54
+ screen.getByText('Entity type');
55
+ return [4 /*yield*/, user.click(screen.getByRole('textbox'))];
56
+ case 1:
57
+ _a.sent();
58
+ screen.getByText('Select entity types');
59
+ items = screen.getAllByRole('menuitem');
60
+ expect(items).toHaveLength(1);
61
+ expect(items[0]).toHaveTextContent('HCP Label');
62
+ return [2 /*return*/];
19
63
  }
20
- ];
21
- var onChange = jest.fn();
22
- var component = shallow(React.createElement(EntityTypesSelector, { entityTypes: entityTypes, selectedEntityTypes: [], onChange: onChange }));
23
- expect(component.find(MetadataTypesSelector).prop('items')).toEqual([entityTypes[0]]);
24
- });
64
+ });
65
+ }); });
25
66
  });
@@ -1,22 +1,24 @@
1
1
  import React from 'react';
2
- import { mount } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
  import { ErrorBoundary } from './ErrorBoundary';
4
- describe('ErrorBoundary test', function () {
5
- var Children = function () { return React.createElement("div", { className: 'children' }); };
6
- var errorComponent = React.createElement("div", { className: 'error' }, "error");
7
- it('should be render children', function () {
8
- var wrapper = mount(React.createElement(ErrorBoundary, { error: errorComponent },
9
- React.createElement(Children, null)));
10
- expect(wrapper.find('.children').length).toBe(1);
4
+ describe('Error boundary tests', function () {
5
+ beforeEach(function () {
6
+ jest.spyOn(console, 'error').mockImplementation(function () { });
11
7
  });
12
- it('should be render error component after click', function () {
13
- jest.spyOn(console, 'error').mockReturnValue();
14
- var wrapper = mount(React.createElement(ErrorBoundary, { error: errorComponent },
15
- React.createElement(Children, null)));
16
- var error = new Error('error');
17
- wrapper.find(Children).simulateError(error);
18
- wrapper.update();
19
- expect(wrapper.find('.error').length).toBe(1);
20
- expect(console.error).toHaveBeenCalledWith(error);
8
+ afterEach(function () {
9
+ jest.clearAllMocks();
10
+ });
11
+ it('should render children when no error occurs', function () {
12
+ render(React.createElement(ErrorBoundary, { error: React.createElement("div", null, "Something went wrong") }, "Child component"));
13
+ screen.getByText('Child component');
14
+ expect(screen.queryByText('Something went wrong')).not.toBeInTheDocument();
15
+ });
16
+ it('should render the error component when an error occurs', function () {
17
+ var ThrowError = function () {
18
+ throw new Error('Test error');
19
+ };
20
+ render(React.createElement(ErrorBoundary, { error: React.createElement("div", null, "Something went wrong") },
21
+ React.createElement(ThrowError, null)));
22
+ screen.getByText('Something went wrong');
21
23
  });
22
24
  });
@@ -8,5 +8,5 @@ export var ErrorMessage = function (_a) {
8
8
  if (!message) {
9
9
  return null;
10
10
  }
11
- return (React.createElement(Typography, { variant: "caption", className: classnames(styles.caption, className) }, message));
11
+ return (React.createElement(Typography, { "data-reltio-id": "error-message", variant: "caption", className: classnames(styles.caption, className) }, message));
12
12
  };
@@ -9,41 +9,88 @@ 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, mount } from 'enzyme';
14
- import Portal from '@mui/material/Portal';
49
+ import { render } from '@testing-library/react';
15
50
  import { ThemeProvider } from '@mui/styles';
16
51
  import { createTheme } from '@mui/material/styles';
17
52
  import RCErrorPopup from 'react-components/dist/ErrorPopup/ErrorPopup';
18
53
  import { theme } from '../constants';
19
- import { useMdmAction, useMdmAutoCloseInterval, useMdmUiError } from '../contexts/MdmModuleContext';
54
+ import { MdmModuleProvider } from '../contexts/MdmModuleContext';
20
55
  import { ErrorPopup } from './ErrorPopup';
21
- jest.mock('../contexts/MdmModuleContext', function () { return (__assign(__assign({}, jest.requireActual('../contexts/MdmModuleContext')), { useMdmAction: jest.fn(), useMdmAutoCloseInterval: jest.fn(), useMdmUiError: jest.fn() })); });
22
- describe('ErrorPopup', function () {
23
- var actions = { errorSet: jest.fn() };
24
- beforeAll(function () {
25
- useMdmAutoCloseInterval.mockReturnValue(3);
26
- useMdmUiError.mockReturnValue(null);
27
- useMdmAction.mockImplementation(function (action) { return actions[action]; });
28
- });
29
- it('should render RCErrorPopup inside Portal', function () {
30
- var component = shallow(React.createElement(ErrorPopup, null));
31
- var portal = component.find(Portal);
32
- expect(portal.length).toBe(1);
33
- expect(portal.find(RCErrorPopup).length).toBe(1);
56
+ var defaultProps = { showErrorFromStore: true };
57
+ var defaultMdmValues = { autoCloseInterval: 1000, uiError: 'Something went wrong' };
58
+ var defaultMdmActions = { errorSet: jest.fn() };
59
+ var setUp = function (_a) {
60
+ var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d, _e = _b.mdmActions, mdmActions = _e === void 0 ? defaultMdmActions : _e;
61
+ var Providers = function (_a) {
62
+ var children = _a.children;
63
+ return (React.createElement(MdmModuleProvider, { actions: mdmActions, values: mdmValues },
64
+ React.createElement(ThemeProvider, { theme: createTheme(theme) }, children)));
65
+ };
66
+ return render(React.createElement(ErrorPopup, __assign({}, props)), { wrapper: Providers });
67
+ };
68
+ describe('Error popup tests', function () {
69
+ afterEach(function () {
70
+ jest.clearAllMocks();
34
71
  });
35
72
  it('should have static method addError', function () {
36
73
  expect(ErrorPopup.addError).toBe(RCErrorPopup.addError);
37
74
  });
38
- it('should call addError method if uiError and showErrorFromStore prop are exist', function () {
39
- ErrorPopup.addError = jest.fn();
40
- useMdmUiError.mockReturnValue('error');
41
- mount(React.createElement(ThemeProvider, { theme: createTheme(theme) },
42
- React.createElement(ErrorPopup, { showErrorFromStore: true })));
43
- expect(ErrorPopup.addError).toHaveBeenCalledWith({
44
- title: 'Error',
45
- message: 'error'
75
+ it('should call addError method if uiError and showErrorFromStore prop are exist', function () { return __awaiter(void 0, void 0, void 0, function () {
76
+ return __generator(this, function (_a) {
77
+ ErrorPopup.addError = jest.fn();
78
+ setUp();
79
+ expect(ErrorPopup.addError).toHaveBeenCalledWith({ title: 'Error', message: 'Something went wrong' });
80
+ expect(defaultMdmActions.errorSet).toHaveBeenCalledWith(null);
81
+ return [2 /*return*/];
46
82
  });
47
- expect(actions.errorSet).toHaveBeenCalledWith(null);
83
+ }); });
84
+ it('should not call addError method if showErrorFromStore prop is false', function () {
85
+ ErrorPopup.addError = jest.fn();
86
+ setUp({ props: { showErrorFromStore: false } });
87
+ expect(ErrorPopup.addError).not.toHaveBeenCalled();
88
+ expect(defaultMdmActions.errorSet).not.toHaveBeenCalled();
89
+ });
90
+ it('should not call addError method if uiError prop is null', function () {
91
+ ErrorPopup.addError = jest.fn();
92
+ setUp({ mdmValues: __assign(__assign({}, defaultMdmValues), { uiError: null }) });
93
+ expect(ErrorPopup.addError).not.toHaveBeenCalled();
94
+ expect(defaultMdmActions.errorSet).not.toHaveBeenCalled();
48
95
  });
49
96
  });
@@ -1,16 +1,17 @@
1
1
  import React from 'react';
2
- import { mount } from 'enzyme';
3
- import { ErrorMessage } from '../ErrorMessage';
2
+ import { render, screen } from '@testing-library/react';
4
3
  import { ErrorWrapper } from './ErrorWrapper';
5
- describe('ErrorWrapper', function () {
4
+ describe('Error wrapper tests', function () {
6
5
  it('should render children and error message', function () {
7
- var errorWrapper = mount(React.createElement(ErrorWrapper, { errorMessage: 'Some error message' },
8
- React.createElement("div", null, 'some content')));
9
- expect(errorWrapper.find(ErrorMessage).text()).toBe('Some error message');
6
+ render(React.createElement(ErrorWrapper, { errorMessage: "Some error message" },
7
+ React.createElement("div", null, "Some content")));
8
+ screen.getByText('Some content');
9
+ screen.getByText('Some error message');
10
10
  });
11
11
  it('should render children without error message', function () {
12
- var errorWrapper = mount(React.createElement(ErrorWrapper, null, 'some content'));
13
- expect(errorWrapper.text()).toBe('some content');
14
- expect(errorWrapper.find(ErrorMessage).exists()).toBe(false);
12
+ render(React.createElement(ErrorWrapper, null,
13
+ React.createElement("div", null, "Some content")));
14
+ screen.getByText('Some content');
15
+ expect(screen.queryByTestId('error-message')).not.toBeInTheDocument();
15
16
  });
16
17
  });
@@ -1,42 +1,116 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
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
+ };
1
48
  import React from 'react';
2
- import ReactResizeDetector from 'react-resize-detector';
3
- import { mount } from 'enzyme';
4
- import { act } from 'react-dom/test-utils';
5
- import Tooltip from '@mui/material/Tooltip';
49
+ import { mockResizeObserver } from 'jsdom-testing-mocks';
50
+ import userEvent from '@testing-library/user-event';
51
+ import { render, screen, within, act } from '@testing-library/react';
6
52
  import { ExpandedValueTooltip } from './ExpandedValueTooltip';
7
- describe('ExpandedValueTooltip', function () {
8
- it('should render Tooltip over children with empty value if it overflows and expanded value otherwise', function () {
9
- var expandedValue = '123456789';
10
- var children = React.createElement("div", null, "children");
11
- var wrapper = mount(React.createElement(ExpandedValueTooltip, { value: expandedValue }, children));
12
- var tooltip = wrapper.find(Tooltip);
13
- expect(tooltip.prop('title')).toEqual('');
14
- expect(tooltip.prop('children')).toEqual(children);
15
- wrapper.find(Tooltip).getElement().ref.current = {
16
- clientWidth: 50,
17
- scrollWidth: 100
18
- };
19
- act(function () {
20
- wrapper.find(ReactResizeDetector).prop('onResize')();
53
+ var setUp = function (props) {
54
+ var user = userEvent.setup();
55
+ var result = __assign(__assign({}, render(React.createElement(ExpandedValueTooltip, { value: props.value }, props.children))), { user: user });
56
+ var rerender = function (props) {
57
+ result.rerender(React.createElement(ExpandedValueTooltip, { value: props.value }, props.children));
58
+ };
59
+ return __assign(__assign({}, result), { rerender: rerender });
60
+ };
61
+ describe('Expanded value tooltip tests', function () {
62
+ var resizeObserver = mockResizeObserver();
63
+ it('should render correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
64
+ var props, _a, user, container, children;
65
+ return __generator(this, function (_b) {
66
+ switch (_b.label) {
67
+ case 0:
68
+ props = { value: 'Test value', children: React.createElement("div", null, "Test value") };
69
+ _a = setUp(props), user = _a.user, container = _a.container;
70
+ children = screen.getByText('Test value');
71
+ return [4 /*yield*/, user.hover(children)];
72
+ case 1:
73
+ _b.sent();
74
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument();
75
+ Object.defineProperties(children, { scrollWidth: { value: 200 }, clientWidth: { value: 100 } });
76
+ resizeObserver.mockElementSize(container, { contentBoxSize: { blockSize: 100, inlineSize: 100 } });
77
+ act(function () {
78
+ resizeObserver.resize();
79
+ });
80
+ return [4 /*yield*/, screen.findByLabelText('Test value')];
81
+ case 2:
82
+ _b.sent();
83
+ return [4 /*yield*/, user.hover(children)];
84
+ case 3:
85
+ _b.sent();
86
+ within(screen.getByRole('tooltip')).getByText('Test value');
87
+ return [2 /*return*/];
88
+ }
21
89
  });
22
- wrapper.update();
23
- expect(wrapper.find(Tooltip).prop('title')).toEqual(expandedValue);
24
- });
25
- it('should update Tooltip on expanded value change', function () {
26
- var children = React.createElement("div", null, "children");
27
- var wrapper = mount(React.createElement(ExpandedValueTooltip, { value: 123 }, children));
28
- var tooltip = wrapper.find(Tooltip);
29
- expect(tooltip.prop('title')).toEqual('');
30
- expect(tooltip.prop('children')).toEqual(children);
31
- wrapper.find(Tooltip).getElement().ref.current = {
32
- clientWidth: 50,
33
- scrollWidth: 100
34
- };
35
- var newValue = '123456789';
36
- wrapper.setProps({
37
- value: newValue
90
+ }); });
91
+ it('should update overflow state on expanded value change', function () { return __awaiter(void 0, void 0, void 0, function () {
92
+ var props, _a, user, rerender, children;
93
+ return __generator(this, function (_b) {
94
+ switch (_b.label) {
95
+ case 0:
96
+ props = { value: 'Test value', children: React.createElement("div", null, "Test value") };
97
+ _a = setUp(props), user = _a.user, rerender = _a.rerender;
98
+ children = screen.getByText('Test value');
99
+ Object.defineProperties(children, { scrollWidth: { value: 200 }, clientWidth: { value: 100 } });
100
+ return [4 /*yield*/, user.hover(children)];
101
+ case 1:
102
+ _b.sent();
103
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument();
104
+ return [4 /*yield*/, user.unhover(children)];
105
+ case 2:
106
+ _b.sent();
107
+ rerender(__assign(__assign({}, props), { value: 'Updated test value' }));
108
+ return [4 /*yield*/, user.hover(children)];
109
+ case 3:
110
+ _b.sent();
111
+ within(screen.getByRole('tooltip')).getByText('Updated test value');
112
+ return [2 /*return*/];
113
+ }
38
114
  });
39
- wrapper.update();
40
- expect(wrapper.find(Tooltip).prop('title')).toEqual(newValue);
41
- });
115
+ }); });
42
116
  });