@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
@@ -1,30 +1,19 @@
1
1
  import React from 'react';
2
- import { shallow, mount } from 'enzyme';
3
- import { act } from 'react-dom/test-utils';
2
+ import { render, screen, act } from '@testing-library/react';
4
3
  import { Drawer } from './Drawer';
5
- describe('Drawer', function () {
6
- it('renders children when open', function () {
7
- var wrapper = shallow(React.createElement(Drawer, { open: true, variant: "persistent" },
8
- React.createElement("div", { className: "SOME_INNER_CONTENTS" })));
9
- expect(wrapper.find('.SOME_INNER_CONTENTS')).toHaveLength(1);
10
- });
11
- it('not renders children when open === false', function () {
12
- var wrapper = shallow(React.createElement(Drawer, { open: false, variant: "persistent" },
13
- React.createElement("div", { className: "SOME_INNER_CONTENTS" })));
14
- expect(wrapper.find('.SOME_INNER_CONTENTS')).toHaveLength(0);
15
- });
4
+ describe('Drawer tests', function () {
16
5
  it('unmounts children only after timeout', function () {
17
6
  jest.useFakeTimers();
18
- var wrapper = mount(React.createElement(Drawer, { open: true, variant: "persistent" },
19
- React.createElement("div", { className: "SOME_INNER_CONTENTS" })));
20
- expect(wrapper.find('.SOME_INNER_CONTENTS')).toHaveLength(1);
21
- wrapper.setProps({ open: false });
22
- expect(wrapper.find('.SOME_INNER_CONTENTS')).toHaveLength(1);
7
+ var rerender = render(React.createElement(Drawer, { open: true },
8
+ React.createElement("div", null, "Content"))).rerender;
9
+ screen.getByText('Content');
10
+ rerender(React.createElement(Drawer, { open: false },
11
+ React.createElement("div", null, "Content")));
12
+ screen.getByText('Content');
23
13
  act(function () {
24
14
  jest.runAllTimers();
25
- wrapper.update();
26
- expect(wrapper.find('.SOME_INNER_CONTENTS')).toHaveLength(0);
27
15
  });
16
+ expect(screen.queryByText('Content')).not.toBeInTheDocument();
28
17
  jest.useRealTimers();
29
18
  });
30
19
  });
@@ -1,33 +1,85 @@
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 { shallow } from 'enzyme/build';
3
- import MenuItem from '@mui/material/MenuItem';
4
- import { MultipliableSelect } from '../MultipliableSelect';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
5
51
  import { DropDownEditor } from './DropDownEditor';
6
- describe('DropDownEditor', function () {
7
- it('should render MultipliableSelect with entries as options', function () {
8
- var entries = [
9
- { value: 'Enum1', label: '1' },
10
- { value: 'Enum2', label: '2' },
11
- { value: 'Enum3', label: '3' }
12
- ];
13
- var value = 'Enum2';
14
- var wrapper = shallow(React.createElement(DropDownEditor, { value: value, entries: entries, classes: { menuItem: 'menuItemClassName' } }));
15
- expect(wrapper.find(MultipliableSelect).prop('value')).toBe(value);
16
- wrapper.find(MenuItem).forEach(function (n, i) {
17
- expect(n.prop('value')).toBe(entries[i].value);
18
- expect(n.prop('children')).toBe(entries[i].label);
19
- expect(n.prop('className')).toBe('menuItemClassName');
52
+ describe('Dropdown editor tests', function () {
53
+ it('should render and work correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
54
+ var user, props, options;
55
+ return __generator(this, function (_a) {
56
+ switch (_a.label) {
57
+ case 0:
58
+ user = userEvent.setup();
59
+ props = {
60
+ entries: [
61
+ { value: 'value1', label: 'first value' },
62
+ { value: 'value2', label: 'second value' },
63
+ { value: 'value3' }
64
+ ],
65
+ value: 'value2',
66
+ onChange: jest.fn()
67
+ };
68
+ render(React.createElement(DropDownEditor, __assign({}, props)));
69
+ return [4 /*yield*/, user.click(screen.getByText('second value'))];
70
+ case 1:
71
+ _a.sent();
72
+ options = screen.getAllByRole('option');
73
+ expect(options).toHaveLength(3);
74
+ expect(options[0]).toHaveTextContent('first value');
75
+ expect(options[1]).toHaveTextContent('second value');
76
+ expect(options[2]).toHaveTextContent('value3');
77
+ return [4 /*yield*/, user.click(options[0])];
78
+ case 2:
79
+ _a.sent();
80
+ expect(props.onChange).toHaveBeenCalledWith('value1');
81
+ return [2 /*return*/];
82
+ }
20
83
  });
21
- });
22
- it('should call props.onChange with new value', function () {
23
- var entries = [
24
- { value: 'Enum1', label: '1' },
25
- { value: 'Enum2', label: '2' },
26
- { value: 'Enum3', label: '3' }
27
- ];
28
- var onChange = jest.fn(), value = 'Enum2';
29
- var wrapper = shallow(React.createElement(DropDownEditor, { onChange: onChange, entries: entries }));
30
- wrapper.find(MultipliableSelect).simulate('change', value);
31
- expect(onChange).toHaveBeenCalledWith(value);
32
- });
84
+ }); });
33
85
  });
@@ -1,76 +1,107 @@
1
- import React from 'react';
2
- import { shallow, mount } from 'enzyme';
3
- import Menu from '@mui/material/Menu';
4
- import { act } from 'react-dom/test-utils';
5
- import Button from '@mui/material/Button';
6
- import MenuItem from '@mui/material/MenuItem';
7
- import { DropDownMenuButton } from '../DropDownMenuButton';
8
- describe('DropDownMenuButton test', function () {
9
- var menuItems = [
10
- {
11
- text: 'Disabled custom action',
12
- disabled: true,
13
- tooltip: 'Disabled custom tooltip',
14
- onClick: jest.fn()
15
- },
16
- {
17
- text: 'Custom action',
18
- disabled: false,
19
- tooltip: 'Custom tooltip',
20
- onClick: jest.fn()
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];
21
7
  }
22
- ];
23
- var getMenuItems = function (component, wantedItems) {
24
- return component.find(MenuItem).filterWhere(function (element) { return wantedItems.includes(element.children().text()); });
8
+ return t;
25
9
  };
26
- it('should render all components', function () {
27
- var component = shallow(React.createElement(DropDownMenuButton, { menuId: 'test', buttonContent: 'test', menuItems: menuItems }));
28
- expect(component.find(Button)).toHaveLength(1);
29
- expect(component.find(Menu)).toHaveLength(1);
30
- expect(component.find('DefaultMenuItemRenderer')).toHaveLength(2);
31
- });
32
- it('should open/close menu after click on button', function () {
33
- var component = shallow(React.createElement(DropDownMenuButton, { menuId: 'test', buttonContent: 'test' }));
34
- expect(component.find(Menu).prop('open')).toBeFalsy();
35
- act(function () {
36
- component.find(Button).simulate('click');
37
- });
38
- component.update();
39
- expect(component.find(Menu).prop('open')).toBeTruthy();
40
- act(function () {
41
- component.find(Button).simulate('click');
42
- });
43
- component.update();
44
- expect(component.find(Menu).prop('open')).toBeFalsy();
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());
45
19
  });
46
- it('should call onMenuOpen/onMenuClose props after click on button', function () {
47
- var onMenuOpen = jest.fn();
48
- var onMenuClose = jest.fn();
49
- var component = mount(React.createElement(DropDownMenuButton, { menuId: 'test', buttonContent: 'test', onMenuOpen: onMenuOpen, onMenuClose: onMenuClose }));
50
- expect(onMenuOpen).not.toHaveBeenCalled();
51
- expect(onMenuClose).not.toHaveBeenCalled();
52
- act(function () {
53
- component.find(Button).find('button').simulate('click');
54
- });
55
- expect(onMenuOpen).toHaveBeenCalled();
56
- expect(onMenuClose).not.toHaveBeenCalled();
57
- act(function () {
58
- component.find(Button).find('button').simulate('click');
59
- });
60
- expect(onMenuClose).toHaveBeenCalled();
61
- });
62
- it('should call onMenuClose when click on menu item', function () {
63
- var onMenuClose = jest.fn();
64
- var component = mount(React.createElement(DropDownMenuButton, { menuId: 'test', buttonContent: 'test', menuItems: menuItems, onMenuClose: onMenuClose }));
65
- act(function () {
66
- component.find(Button).find('button').simulate('click');
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
+ };
48
+ import React from 'react';
49
+ import { render, screen, within } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
51
+ import { DropDownMenuButton } from '../DropDownMenuButton';
52
+ var menuItems = [
53
+ { text: 'Disabled custom action', disabled: true, tooltip: 'Disabled custom tooltip', onClick: jest.fn() },
54
+ { text: 'Custom action', disabled: false, tooltip: 'Custom tooltip', onClick: jest.fn() }
55
+ ];
56
+ var defaultProps = { menuId: 'test', buttonContent: 'content', menuItems: menuItems };
57
+ var setUp = function (props) {
58
+ if (props === void 0) { props = defaultProps; }
59
+ var user = userEvent.setup();
60
+ return __assign(__assign({}, render(React.createElement(DropDownMenuButton, __assign({}, props)))), { user: user });
61
+ };
62
+ describe('Dropdown menu button tests', function () {
63
+ it('should open and close dropdown menu correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
64
+ var props, user, popover, items;
65
+ return __generator(this, function (_a) {
66
+ switch (_a.label) {
67
+ case 0:
68
+ props = __assign(__assign({}, defaultProps), { onMenuOpen: jest.fn(), onMenuClose: jest.fn() });
69
+ user = setUp(props).user;
70
+ expect(screen.queryByRole('presentation')).not.toBeInTheDocument();
71
+ return [4 /*yield*/, user.click(screen.getByText('content'))];
72
+ case 1:
73
+ _a.sent();
74
+ expect(props.onMenuOpen).toHaveBeenCalled();
75
+ popover = screen.getByRole('presentation');
76
+ items = within(popover).getAllByRole('menuitem');
77
+ expect(items).toHaveLength(2);
78
+ expect(items[0]).toHaveTextContent('Disabled custom action');
79
+ expect(items[1]).toHaveTextContent('Custom action');
80
+ return [4 /*yield*/, user.click(screen.getByText('content'))];
81
+ case 2:
82
+ _a.sent();
83
+ expect(props.onMenuClose).toHaveBeenCalled();
84
+ expect(popover).not.toBeInTheDocument();
85
+ return [2 /*return*/];
86
+ }
67
87
  });
68
- component.update();
69
- var customMenuItem = getMenuItems(component, ['Custom action']);
70
- act(function () {
71
- customMenuItem.find('li').at(0).simulate('click');
88
+ }); });
89
+ it('should close dropdown menu correctly on menu item click', function () { return __awaiter(void 0, void 0, void 0, function () {
90
+ var user, popover;
91
+ return __generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0:
94
+ user = setUp().user;
95
+ return [4 /*yield*/, user.click(screen.getByText('content'))];
96
+ case 1:
97
+ _a.sent();
98
+ popover = screen.getByRole('presentation');
99
+ return [4 /*yield*/, user.click(screen.getByText('Custom action'))];
100
+ case 2:
101
+ _a.sent();
102
+ expect(popover).not.toBeInTheDocument();
103
+ return [2 /*return*/];
104
+ }
72
105
  });
73
- component.update();
74
- expect(onMenuClose).toHaveBeenCalled();
75
- });
106
+ }); });
76
107
  });
@@ -1,33 +1,162 @@
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 { shallow } from 'enzyme';
3
- import { ReactSelect } from '../ReactSelect';
4
- import { AsyncReactSelect } from '../AsyncReactSelect';
49
+ import { render, screen, within } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
5
51
  import { DropDownSelector } from './DropDownSelector';
6
- describe('DropDownSelector', function () {
7
- it('should contain Menu by default', function () {
8
- var wrapper = shallow(React.createElement(DropDownSelector, { label: 'label' }));
9
- expect(wrapper.prop('components').Menu.name).not.toEqual('EmptyStub');
10
- });
11
- it('should not contain ClearIndicator and IndicatorSeparator by default', function () {
12
- var wrapper = shallow(React.createElement(DropDownSelector, { label: 'label' }));
13
- expect(wrapper.prop('components').IndicatorSeparator.name).toEqual('EmptyStub');
14
- expect(wrapper.prop('components').ClearIndicator.name).toEqual('EmptyStub');
15
- });
16
- it('should render AsyncSelect if "getOptions" prop is provided', function () {
17
- var wrapper = shallow(React.createElement(DropDownSelector, { getOptions: function () { }, label: 'label' }));
18
- expect(wrapper.find(ReactSelect).length).toBe(0);
19
- expect(wrapper.find(AsyncReactSelect).length).toBe(1);
20
- expect(wrapper.find(AsyncReactSelect).prop('onCreate')).toBe(undefined);
21
- });
22
- it('should render Select if "getOptions" prop is not provided', function () {
23
- var wrapper = shallow(React.createElement(DropDownSelector, { label: 'label' }));
24
- expect(wrapper.find(ReactSelect).length).toBe(1);
25
- expect(wrapper.find(ReactSelect).prop('onCreate')).toBe(undefined);
26
- expect(wrapper.find(AsyncReactSelect).length).toBe(0);
27
- });
28
- it('should provide "onCreate" prop to Select component if "onCreate" prop is specified', function () {
29
- var wrapper = shallow(React.createElement(DropDownSelector, { label: 'label', onCreate: function () { } }));
30
- expect(wrapper.find(ReactSelect).length).toBe(1);
31
- expect(wrapper.find(ReactSelect).prop('onCreate')).toEqual(expect.any(Function));
32
- });
52
+ var defaultOptions = [
53
+ { label: 'First option', value: 'option1' },
54
+ { label: 'Second option', value: 'option2' },
55
+ { label: 'Third option', value: 'option3' }
56
+ ];
57
+ var defaultProps = {
58
+ label: 'Label',
59
+ options: defaultOptions
60
+ };
61
+ var setUp = function (props) {
62
+ if (props === void 0) { props = defaultProps; }
63
+ var user = userEvent.setup();
64
+ return __assign(__assign({}, render(React.createElement(DropDownSelector, __assign({}, props)))), { user: user });
65
+ };
66
+ describe('Dropdown selector tests', function () {
67
+ it('should render correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
68
+ var user, popper, items;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ user = setUp().user;
73
+ expect(screen.queryByRole('tooltip')).not.toBeInTheDocument();
74
+ screen.getByText('Label');
75
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
76
+ case 1:
77
+ _a.sent();
78
+ popper = screen.getByRole('tooltip');
79
+ items = within(popper).getAllByRole('option');
80
+ expect(items).toHaveLength(3);
81
+ expect(items[0]).toHaveTextContent('First option');
82
+ expect(items[1]).toHaveTextContent('Second option');
83
+ expect(items[2]).toHaveTextContent('Third option');
84
+ return [4 /*yield*/, user.keyboard('{Escape}')];
85
+ case 2:
86
+ _a.sent();
87
+ expect(popper).not.toBeInTheDocument();
88
+ return [2 /*return*/];
89
+ }
90
+ });
91
+ }); });
92
+ it('should render async selector correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
93
+ var getOptions, props, user, items;
94
+ return __generator(this, function (_a) {
95
+ switch (_a.label) {
96
+ case 0:
97
+ getOptions = function () { return Promise.resolve(defaultOptions); };
98
+ props = __assign(__assign({}, defaultProps), { options: undefined, getOptions: getOptions });
99
+ user = setUp(props).user;
100
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
101
+ case 1:
102
+ _a.sent();
103
+ items = screen.getAllByRole('option');
104
+ expect(items).toHaveLength(3);
105
+ expect(items[0]).toHaveTextContent('First option');
106
+ expect(items[1]).toHaveTextContent('Second option');
107
+ expect(items[2]).toHaveTextContent('Third option');
108
+ return [2 /*return*/];
109
+ }
110
+ });
111
+ }); });
112
+ it('should handle onCreate callback correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
113
+ var Group, props, user, popper;
114
+ return __generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0:
117
+ Group = function (_a) {
118
+ var children = _a.children, onCreate = _a.selectProps.onCreate;
119
+ return (React.createElement("div", null,
120
+ React.createElement("button", { onClick: onCreate }, "Create button"),
121
+ children));
122
+ };
123
+ props = __assign(__assign({}, defaultProps), { components: { Group: Group }, onCreate: jest.fn(), options: [{ options: defaultOptions }] });
124
+ user = setUp(props).user;
125
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
126
+ case 1:
127
+ _a.sent();
128
+ popper = screen.getByRole('tooltip');
129
+ return [4 /*yield*/, user.click(screen.getByText('Create button'))];
130
+ case 2:
131
+ _a.sent();
132
+ expect(props.onCreate).toHaveBeenCalled();
133
+ expect(popper).not.toBeInTheDocument();
134
+ return [2 /*return*/];
135
+ }
136
+ });
137
+ }); });
138
+ it('should not fail if onCreate is not passed', function () { return __awaiter(void 0, void 0, void 0, function () {
139
+ var Group, props, user;
140
+ return __generator(this, function (_a) {
141
+ switch (_a.label) {
142
+ case 0:
143
+ Group = function (_a) {
144
+ var children = _a.children, onCreate = _a.selectProps.onCreate;
145
+ return (React.createElement("div", null,
146
+ React.createElement("button", { onClick: onCreate }, "Create button"),
147
+ children));
148
+ };
149
+ props = __assign(__assign({}, defaultProps), { components: { Group: Group }, options: [{ options: defaultOptions }] });
150
+ user = setUp(props).user;
151
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
152
+ case 1:
153
+ _a.sent();
154
+ return [4 /*yield*/, user.click(screen.getByText('Create button'))];
155
+ case 2:
156
+ _a.sent();
157
+ screen.getByRole('tooltip');
158
+ return [2 /*return*/];
159
+ }
160
+ });
161
+ }); });
33
162
  });