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