@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
@@ -9,11 +9,46 @@ 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 { path, pick, propEq } from 'ramda';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
15
51
  import { Directions } from '@reltio/mdm-sdk';
16
- import { RelationTypeSelector } from '../RelationTypeSelector';
17
52
  import { ConnectionRelationTypeSelector } from './ConnectionRelationTypeSelector';
18
53
  var relationTypes = [
19
54
  {
@@ -21,37 +56,27 @@ var relationTypes = [
21
56
  label: 'supported by',
22
57
  startObject: {
23
58
  uri: 'configuration/relationTypes/AccountTeam/startObject',
24
- directionalContext: [
25
- {
26
- uri: 'configuration/relationTypes/AccountTeam/startObject/directionalContext',
27
- labelPattern: 'supported by'
28
- }
29
- ],
30
- objectTypeURI: 'configuration/entityTypes/Organization'
59
+ objectTypeURI: 'configuration/entityTypes/Organization',
60
+ objectType: {
61
+ uri: 'configuration/entityTypes/Organization',
62
+ label: 'Organization',
63
+ attributes: []
64
+ }
31
65
  },
32
66
  endObject: {
33
67
  uri: 'configuration/relationTypes/AccountTeam/endObject',
34
- directionalContext: [
35
- {
36
- uri: 'configuration/relationTypes/AccountTeam/endObject/directionalContext',
37
- labelPattern: 'supports'
38
- }
39
- ],
40
- objectTypeURI: 'configuration/entityTypes/Employee'
68
+ objectTypeURI: 'configuration/entityTypes/Employee',
69
+ objectType: {
70
+ uri: 'configuration/entityTypes/Employee',
71
+ label: 'Employee',
72
+ attributes: []
73
+ }
41
74
  },
42
75
  attributes: [
43
76
  {
44
77
  label: 'Role',
45
78
  name: 'Role',
46
79
  type: 'String',
47
- hidden: false,
48
- important: false,
49
- system: false,
50
- required: false,
51
- attributeOrdering: {
52
- orderType: 'ASC',
53
- orderingStrategy: 'LUD'
54
- },
55
80
  uri: 'configuration/relationTypes/AccountTeam/attributes/Role'
56
81
  }
57
82
  ],
@@ -62,115 +87,104 @@ var relationTypes = [
62
87
  label: 'knowledge',
63
88
  startObject: {
64
89
  uri: 'configuration/relationTypes/knowledge/startObject',
65
- directionalContext: [
66
- {
67
- uri: 'configuration/relationTypes/knowledge/startObject/directionalContext',
68
- labelPattern: ''
69
- }
70
- ],
71
- objectTypeURI: 'configuration/entityTypes/Topic'
90
+ objectTypeURI: 'configuration/entityTypes/Topic',
91
+ objectType: {
92
+ uri: 'configuration/entityTypes/Topic',
93
+ label: 'Topic',
94
+ attributes: []
95
+ }
72
96
  },
73
97
  endObject: {
74
98
  uri: 'configuration/relationTypes/knowledge/endObject',
75
- directionalContext: [
76
- {
77
- uri: 'configuration/relationTypes/knowledge/endObject/directionalContext',
78
- labelPattern: ''
79
- }
80
- ],
81
- objectTypeURI: 'configuration/entityTypes/Employee'
99
+ objectTypeURI: 'configuration/entityTypes/Employee',
100
+ objectType: {
101
+ uri: 'configuration/entityTypes/Employee',
102
+ label: 'Employee',
103
+ attributes: []
104
+ }
82
105
  },
83
106
  attributes: [
84
107
  {
85
108
  label: 'Role',
86
109
  name: 'Role',
87
110
  type: 'String',
88
- hidden: false,
89
- important: false,
90
- system: false,
91
- required: false,
92
- attributeOrdering: {
93
- orderType: 'ASC',
94
- orderingStrategy: 'LUD'
95
- },
96
111
  uri: 'configuration/relationTypes/knowledge/attributes/Role'
97
112
  }
98
113
  ],
99
114
  direction: 'directed'
100
115
  }
101
116
  ];
102
- // make useEffect work in shallow render
103
- jest.mock('react', function () { return (__assign(__assign({}, jest.requireActual('react')), { useEffect: jest.fn().mockImplementation(function (f) { return f(); }) })); });
104
- describe('ConnectionRelationTypeSelector tests', function () {
105
- var expectedOptions = [
106
- __assign({ label: relationTypes[1].label, value: "".concat(relationTypes[1].uri, ",").concat(Directions.IN) }, pick(['startObject', 'endObject'], relationTypes[1])),
107
- __assign({ label: path(['directionalContext', 0, 'labelPattern'], relationTypes[0].endObject), value: "".concat(relationTypes[0].uri, ",").concat(Directions.OUT) }, pick(['startObject', 'endObject'], relationTypes[0]))
108
- ];
109
- it('should render main parts', function () {
110
- var component = shallow(React.createElement(ConnectionRelationTypeSelector, null));
111
- var selector = component.find(RelationTypeSelector);
112
- expect(selector).toHaveLength(1);
113
- });
114
- it('should render correct props', function () {
115
- var relation = { relationType: 'configuration/relationTypes/AccountTeam', direction: Directions.OUT };
116
- var expectedValue = expectedOptions.find(propEq('value', "".concat(relation.relationType, ",").concat(relation.direction)));
117
- var onChange = jest.fn();
118
- var component = shallow(React.createElement(ConnectionRelationTypeSelector, { relation: relation, inRelationTypes: [relationTypes[1]], outRelationTypes: [relationTypes[0]], onChange: onChange }));
119
- var selector = component.find(RelationTypeSelector);
120
- expect(selector).toHaveLength(1);
121
- expect(selector.prop('options')).toStrictEqual(expectedOptions);
122
- expect(selector.prop('value')).toStrictEqual(expectedValue);
123
- expect(onChange).not.toHaveBeenCalled();
124
- });
125
- it('should call onChange when RelationTypeSelector onChange was called', function () {
126
- var expectedRelationType = {
127
- type: relationTypes[0],
128
- direction: Directions.OUT
129
- };
130
- var onChange = jest.fn();
131
- var component = shallow(React.createElement(ConnectionRelationTypeSelector, { inRelationTypes: [relationTypes[1]], outRelationTypes: [relationTypes[0]], onChange: onChange }));
132
- var selector = component.find(RelationTypeSelector);
133
- expect(selector).toHaveLength(1);
134
- selector.prop('onChange')(expectedOptions[1]);
135
- expect(onChange).toHaveBeenCalledWith(expectedRelationType);
136
- });
137
- it('should not fail when onChange prop is undefined', function () {
138
- var component = shallow(React.createElement(ConnectionRelationTypeSelector, { inRelationTypes: [relationTypes[1]], outRelationTypes: [relationTypes[0]] }));
139
- var selector = component.find(RelationTypeSelector);
140
- expect(selector).toHaveLength(1);
141
- selector.prop('onChange')(expectedOptions[1]);
117
+ var defaultProps = {
118
+ onChange: jest.fn(),
119
+ inRelationTypes: [relationTypes[1]],
120
+ outRelationTypes: [relationTypes[0]]
121
+ };
122
+ var setUp = function (props) {
123
+ if (props === void 0) { props = defaultProps; }
124
+ var user = userEvent.setup();
125
+ return __assign(__assign({}, render(React.createElement(ConnectionRelationTypeSelector, __assign({}, props)))), { user: user });
126
+ };
127
+ describe('Connection relation type selector tests', function () {
128
+ afterEach(function () {
129
+ jest.clearAllMocks();
142
130
  });
143
- it('should set first relation if applyFirstByDefault is true and Selector is empty', function () {
144
- var expectedRelation = {
145
- direction: Directions.IN,
146
- type: relationTypes[1]
147
- };
148
- var onChange = jest.fn();
149
- var component = shallow(React.createElement(ConnectionRelationTypeSelector, { inRelationTypes: [relationTypes[1]], outRelationTypes: [relationTypes[0]], applyFirstByDefault: true, onChange: onChange }));
150
- var selector = component.find(RelationTypeSelector);
151
- expect(selector).toHaveLength(1);
152
- expect(selector.prop('options')).toStrictEqual(expectedOptions);
153
- expect(onChange).toHaveBeenCalledWith(expectedRelation);
131
+ it('should render correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
132
+ var relation, props, user, options;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ relation = { relationType: 'configuration/relationTypes/AccountTeam', direction: Directions.OUT };
137
+ props = __assign(__assign({}, defaultProps), { relation: relation });
138
+ user = setUp(props).user;
139
+ screen.getByText('Select relationship type');
140
+ screen.getByText('supported by');
141
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
142
+ case 1:
143
+ _a.sent();
144
+ options = screen.getAllByRole('option');
145
+ expect(options).toHaveLength(2);
146
+ expect(options[0]).toHaveTextContent('knowledge');
147
+ expect(options[0]).toHaveTextContent('Topic ↔ Employee');
148
+ expect(options[1]).toHaveTextContent('supported by');
149
+ expect(options[1]).toHaveTextContent('Organization ↔ Employee');
150
+ return [2 /*return*/];
151
+ }
152
+ });
153
+ }); });
154
+ it('should call onChange on item click correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
155
+ var user;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0:
159
+ user = setUp().user;
160
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
161
+ case 1:
162
+ _a.sent();
163
+ return [4 /*yield*/, user.click(screen.getByText('supported by'))];
164
+ case 2:
165
+ _a.sent();
166
+ expect(defaultProps.onChange).toHaveBeenCalledWith({ type: relationTypes[0], direction: Directions.OUT });
167
+ return [2 /*return*/];
168
+ }
169
+ });
170
+ }); });
171
+ it('should set first relation if applyFirstByDefault is true and selector is empty', function () {
172
+ var props = __assign(__assign({}, defaultProps), { applyFirstByDefault: true });
173
+ setUp(props);
174
+ expect(props.onChange).toHaveBeenCalledWith({ direction: Directions.IN, type: relationTypes[1] });
154
175
  });
155
- it('should not set first relation if applyFirstByDefault is true and Selector is not empty', function () {
176
+ it('should not set first relation if applyFirstByDefault is true and selector is not empty', function () {
156
177
  var relation = {
157
178
  direction: Directions.OUT,
158
179
  relationUri: 'relations/uri123',
159
180
  relationType: relationTypes[0].uri
160
181
  };
161
- var onChange = jest.fn();
162
- var component = shallow(React.createElement(ConnectionRelationTypeSelector, { relation: relation, inRelationTypes: [relationTypes[1]], outRelationTypes: [relationTypes[0]], applyFirstByDefault: true, onChange: onChange }));
163
- var selector = component.find(RelationTypeSelector);
164
- expect(selector).toHaveLength(1);
165
- expect(selector.prop('options')).toStrictEqual(expectedOptions);
166
- expect(onChange).not.toHaveBeenCalled();
182
+ var props = __assign(__assign({}, defaultProps), { applyFirstByDefault: true, relation: relation });
183
+ setUp(props);
184
+ expect(props.onChange).not.toHaveBeenCalled();
167
185
  });
168
186
  it('should not set first relation if applyFirstByDefault is false', function () {
169
- var onChange = jest.fn();
170
- var component = shallow(React.createElement(ConnectionRelationTypeSelector, { inRelationTypes: [relationTypes[1]], outRelationTypes: [relationTypes[0]], applyFirstByDefault: false, onChange: onChange }));
171
- var selector = component.find(RelationTypeSelector);
172
- expect(selector).toHaveLength(1);
173
- expect(selector.prop('options')).toStrictEqual(expectedOptions);
174
- expect(onChange).not.toHaveBeenCalled();
187
+ setUp();
188
+ expect(defaultProps.onChange).not.toHaveBeenCalled();
175
189
  });
176
190
  });
@@ -9,72 +9,94 @@ 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 { mount, shallow } from 'enzyme';
14
- import { act } from 'react-dom/test-utils';
15
- import TextField from '@mui/material/TextField';
16
- import { SimpleDropDownSelector } from '../SimpleDropDownSelector';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
17
51
  import { DateIntervalSelector } from './DateIntervalSelector';
18
- describe('DateIntervalSelector tests', function () {
19
- var interval = [4, 'months'];
20
- var props = {
21
- interval: interval,
22
- onChange: jest.fn(),
23
- onFocus: jest.fn()
24
- };
25
- var options = [
26
- { value: 'minutes', label: 'Minutes' },
27
- { value: 'hours', label: 'Hours' },
28
- { value: 'days', label: 'Days' },
29
- { value: 'weeks', label: 'Weeks' },
30
- { value: 'months', label: 'Months' },
31
- { value: 'years', label: 'Years' }
32
- ];
33
- it('should render correct default state', function () {
34
- var wrapper = shallow(React.createElement(DateIntervalSelector, __assign({}, props)));
35
- var numberInput = wrapper.find(TextField).filterWhere(function (component) { return component.prop('type') === 'number'; });
36
- var unitInput = wrapper.find(SimpleDropDownSelector);
37
- expect(numberInput.length).toBe(1);
38
- expect(numberInput.prop('value')).toBe(4);
39
- expect(unitInput.length).toBe(1);
40
- expect(unitInput.prop('value')).toStrictEqual({ value: 'months', label: 'Months' });
41
- expect(unitInput.prop('options')).toStrictEqual(options);
42
- });
43
- it('should call props.onChange on number change', function () {
44
- var wrapper = shallow(React.createElement(DateIntervalSelector, __assign({}, props)));
45
- var numberInput = wrapper.find(TextField).filterWhere(function (component) { return component.prop('type') === 'number'; });
46
- act(function () {
47
- var changeEvent = { target: { value: '10' } };
48
- numberInput.prop('onChange')(changeEvent);
49
- });
50
- wrapper.update();
51
- expect(props.onChange).toHaveBeenCalledWith([10, 'months']);
52
- });
53
- it('should call props.onChange on unit change', function () {
54
- var wrapper = shallow(React.createElement(DateIntervalSelector, __assign({}, props)));
55
- var unitInput = wrapper.find(SimpleDropDownSelector);
56
- act(function () {
57
- unitInput.prop('onChange')({ value: 'hours', label: 'Hours' });
58
- });
59
- wrapper.update();
60
- expect(props.onChange).toHaveBeenCalledWith([4, 'hours']);
61
- });
62
- it('should call props.onFocus on focus number input', function () {
63
- var wrapper = mount(React.createElement(DateIntervalSelector, __assign({}, props)));
64
- var numberInput = wrapper.find('input[type="number"]');
65
- act(function () {
66
- numberInput.simulate('focus');
67
- });
68
- wrapper.update();
69
- expect(props.onFocus).toHaveBeenCalled();
70
- });
71
- it('should call props.onFocus on focus unit input', function () {
72
- var wrapper = mount(React.createElement(DateIntervalSelector, __assign({}, props)));
73
- var unitInput = wrapper.find('input[type="text"]');
74
- act(function () {
75
- unitInput.simulate('focus');
52
+ var defaultProps = {
53
+ interval: [4, 'months'],
54
+ onChange: jest.fn(),
55
+ onFocus: jest.fn()
56
+ };
57
+ var setUp = function (props) {
58
+ if (props === void 0) { props = defaultProps; }
59
+ var user = userEvent.setup();
60
+ return __assign(__assign({}, render(React.createElement(DateIntervalSelector, __assign({}, props)))), { user: user });
61
+ };
62
+ describe('Date interval selector tests', function () {
63
+ it('should work correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
64
+ var user, input, combobox, options;
65
+ return __generator(this, function (_a) {
66
+ switch (_a.label) {
67
+ case 0:
68
+ user = setUp().user;
69
+ input = screen.getByRole('spinbutton');
70
+ expect(input).toHaveAttribute('min', '1');
71
+ expect(input).toHaveValue(4);
72
+ return [4 /*yield*/, user.click(input)];
73
+ case 1:
74
+ _a.sent();
75
+ expect(defaultProps.onFocus).toHaveBeenCalledWith(expect.objectContaining({ type: 'focus', target: input }));
76
+ return [4 /*yield*/, user.type(input, '0')];
77
+ case 2:
78
+ _a.sent();
79
+ expect(defaultProps.onChange).toHaveBeenCalledWith([40, 'months']);
80
+ screen.getByText('Months');
81
+ combobox = screen.getByRole('combobox');
82
+ return [4 /*yield*/, user.click(combobox)];
83
+ case 3:
84
+ _a.sent();
85
+ expect(defaultProps.onFocus).toHaveBeenCalledWith(expect.objectContaining({ type: 'focus', target: combobox }));
86
+ options = screen.getAllByRole('option');
87
+ expect(options).toHaveLength(6);
88
+ expect(options[0]).toHaveTextContent('Minutes');
89
+ expect(options[1]).toHaveTextContent('Hours');
90
+ expect(options[2]).toHaveTextContent('Days');
91
+ expect(options[3]).toHaveTextContent('Weeks');
92
+ expect(options[4]).toHaveTextContent('Months');
93
+ expect(options[5]).toHaveTextContent('Years');
94
+ return [4 /*yield*/, user.click(options[0])];
95
+ case 4:
96
+ _a.sent();
97
+ expect(defaultProps.onChange).toHaveBeenCalledWith([4, 'minutes']);
98
+ return [2 /*return*/];
99
+ }
76
100
  });
77
- wrapper.update();
78
- expect(props.onFocus).toHaveBeenCalled();
79
- });
101
+ }); });
80
102
  });
@@ -25,7 +25,7 @@ export var DefaultCellValueRenderer = function (props) {
25
25
  default: {
26
26
  var dataTypeValue = React.createElement(DataTypeValue, { value: value, dataTypeDefinition: dataTypeDefinition });
27
27
  return (React.createElement(ExpandedValueTooltip, { value: dataTypeValue },
28
- React.createElement("div", { className: classnames(styles.defaultWrapper, className) }, dataTypeValue)));
28
+ React.createElement("div", { "data-reltio-id": "default-renderer", className: classnames(styles.defaultWrapper, className) }, dataTypeValue)));
29
29
  }
30
30
  }
31
31
  };
@@ -1,54 +1,24 @@
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
1
  import React from 'react';
13
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
14
3
  import { DataTypes } from '@reltio/mdm-sdk';
15
- import { DataTypeValue } from '../DataTypeValue';
16
4
  import { DefaultCellValueRenderer } from './DefaultCellValueRenderer';
17
- import { BlobRenderer } from '../BlobRenderer';
18
- describe('DefaultCellValueRenderer', function () {
19
- it('should render BlobRenderer if data type is "Blob"', function () {
20
- var props = {
21
- value: 'test',
22
- columnData: {
23
- id: 'test',
24
- label: 'Test',
25
- dataTypeDefinition: {
26
- type: DataTypes.TYPE_BLOB
27
- }
28
- }
5
+ describe('Default cell value renderer tests', function () {
6
+ it('should render blob renderer if data type is "Blob"', function () {
7
+ var columnData = {
8
+ id: 'test',
9
+ label: 'Test',
10
+ dataTypeDefinition: { type: DataTypes.TYPE_BLOB }
29
11
  };
30
- var wrapper = shallow(React.createElement(DefaultCellValueRenderer, __assign({}, props)));
31
- var blobRenderer = wrapper.find(BlobRenderer);
32
- expect(blobRenderer).toHaveLength(1);
33
- expect(blobRenderer.props()).toEqual(props);
12
+ render(React.createElement(DefaultCellValueRenderer, { value: "test", columnData: columnData }));
13
+ expect(screen.getByTestId('blob-renderer')).toHaveTextContent('test');
34
14
  });
35
- it('should render DataTypeValue if data type is not "Blob"', function () {
36
- var value = 123;
37
- var dataTypeDefinition = {
38
- type: DataTypes.TYPE_INT
15
+ it('should render data type value if data type is not "Blob"', function () {
16
+ var columnData = {
17
+ id: 'test',
18
+ label: 'Test',
19
+ dataTypeDefinition: { type: DataTypes.TYPE_INT }
39
20
  };
40
- var props = {
41
- value: value,
42
- columnData: {
43
- id: 'test',
44
- label: 'Test',
45
- dataTypeDefinition: dataTypeDefinition
46
- }
47
- };
48
- var wrapper = shallow(React.createElement(DefaultCellValueRenderer, __assign({}, props)));
49
- var dataValue = wrapper.find(DataTypeValue);
50
- expect(dataValue).toHaveLength(1);
51
- expect(dataValue.prop('value')).toEqual(value);
52
- expect(dataValue.prop('dataTypeDefinition')).toEqual(dataTypeDefinition);
21
+ render(React.createElement(DefaultCellValueRenderer, { value: 123, columnData: columnData }));
22
+ expect(screen.getByTestId('default-renderer')).toHaveTextContent('123');
53
23
  });
54
24
  });
@@ -1,20 +1,58 @@
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 DeleteIcon from '@mui/icons-material/Delete';
4
- import { SmallIconButtonWithTooltip } from '../SmallIconButton';
38
+ import { render, screen } from '@testing-library/react';
39
+ import userEvent from '@testing-library/user-event';
5
40
  import { DeleteButton } from './DeleteButton';
6
41
  describe('Delete button test', function () {
7
- var component, onClickFn;
8
- var getButton = function (component) { return component.find(SmallIconButtonWithTooltip); };
9
- beforeEach(function () {
10
- onClickFn = jest.fn();
11
- component = shallow(React.createElement(DeleteButton, { onClick: onClickFn }));
12
- });
13
- it('should render correctly', function () {
14
- expect(getButton(component).props()).toMatchObject({
15
- tooltipTitle: 'Delete',
16
- onClick: onClickFn,
17
- icon: DeleteIcon
42
+ it('should render and work correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
43
+ var user, onClick;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0:
47
+ user = userEvent.setup();
48
+ onClick = jest.fn();
49
+ render(React.createElement(DeleteButton, { onClick: onClick }));
50
+ return [4 /*yield*/, user.click(screen.getByLabelText('Delete'))];
51
+ case 1:
52
+ _a.sent();
53
+ expect(onClick).toHaveBeenCalled();
54
+ return [2 /*return*/];
55
+ }
18
56
  });
19
- });
57
+ }); });
20
58
  });