@reltio/components 1.4.2070 → 1.4.2071

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 (159) hide show
  1. package/FacetViewHeader/FacetViewHeader.js +1 -1
  2. package/ImageAttributesLine/imageAttributeValues.test-data.js +8 -0
  3. package/ImageAttributesLine/index.d.ts +1 -1
  4. package/ImageAttributesLine/index.js +1 -1
  5. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +1 -1
  6. package/MergeButton/MergeButton.spec.js +55 -124
  7. package/MetadataTypesSelector/MetadataTypesSelector.js +1 -1
  8. package/MetadataTypesSelector/MetadataTypesSelector.test.js +193 -190
  9. package/MoreAttributesButton/MoreAttributesButton.test.js +173 -166
  10. package/MultiValueSelector/MultiValueSelector.test.js +78 -38
  11. package/MultipliableSelect/MultipliableSelect.test.js +111 -47
  12. package/NestedAttribute/NestedAttribute.test.js +121 -42
  13. package/NestedAttributeEditor/NestedAttributeEditor.test.js +95 -41
  14. package/NotMatchButton/NotMatchButton.spec.js +51 -100
  15. package/PieChart/PieChart.test.js +130 -114
  16. package/PinButton/PinButton.spec.js +89 -22
  17. package/PivotingTooltip/PivotingTooltip.test.js +338 -174
  18. package/PotentialMatchReviewCard/PotentialMatchReviewCard.spec.js +94 -29
  19. package/ProfileBand/ProfileBand.spec.js +60 -53
  20. package/ProfileCard/ProfileCard.test.js +109 -27
  21. package/ProfilesList/ProfilesList.d.ts +1 -3
  22. package/ProfilesList/ProfilesList.js +1 -1
  23. package/ProfilesList/ProfilesList.spec.js +226 -211
  24. package/QueryBuilderRow/QueryBuilderRow.spec.js +83 -90
  25. package/QueryBuilderRowsGroup/QueryBuilderRowsGroup.spec.js +195 -86
  26. package/ReactSelectLoadMoreButton/ReactSelectLoadMoreButton.test.js +73 -15
  27. package/ReactSelectMenuWithPopper/ReactSelectMenuWithPopper.test.js +71 -117
  28. package/ReadOnlyAttributeValuesBlock/ReadOnlyAttributeValuesBlock.test.js +128 -61
  29. package/ReadOnlyAttributesFactory/components/ReadOnlyAttribute/ReadOnlyAttribute.test.js +179 -44
  30. package/ReadOnlyAttributesList/ReadOnlyAttributesList.test.js +254 -211
  31. package/ReadOnlyAttributesList/attributes.test-data.js +4 -4
  32. package/ReadOnlyAttributesPager/ReadOnlyAttributesPager.test.js +75 -18
  33. package/ReadOnlyAttributesView/ReadOnlyAttributesView.test.js +187 -312
  34. package/ReadOnlyComplexAttribute/ReadOnlyComplexAttribute.test.js +210 -219
  35. package/ReadOnlyImageAttributesLine/ReadOnlyImageAttributesLine.test.js +89 -89
  36. package/ReferenceAttributeEditor/ReferenceAttributeEditor.test.js +556 -602
  37. package/ReferenceAttributeEditor/metadata.test-data.d.ts +13 -13
  38. package/ReferenceAttributeEditor/metadata.test-data.js +2 -2
  39. package/ReferenceAttributeEditor/styles.d.ts +1 -1
  40. package/RelationEditor/RelationEditor.test.js +1448 -1392
  41. package/RelationTypeSelector/RelationTypeSelector.test.js +99 -17
  42. package/RelationTypesSelector/RelationTypesSelector.test.js +73 -22
  43. package/ReltioMap/ReltioMap.spec.js +51 -25
  44. package/Roles/Roles.test.js +54 -10
  45. package/ScreenProfileBand/ScreenProfileBand.test.js +142 -72
  46. package/cjs/FacetViewHeader/FacetViewHeader.js +1 -1
  47. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.js +8 -0
  48. package/cjs/ImageAttributesLine/index.d.ts +1 -1
  49. package/cjs/ImageAttributesLine/index.js +2 -1
  50. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +1 -1
  51. package/cjs/MergeButton/MergeButton.spec.js +55 -124
  52. package/cjs/MetadataTypesSelector/MetadataTypesSelector.js +1 -1
  53. package/cjs/MetadataTypesSelector/MetadataTypesSelector.test.js +193 -190
  54. package/cjs/MoreAttributesButton/MoreAttributesButton.test.js +172 -165
  55. package/cjs/MultiValueSelector/MultiValueSelector.test.js +78 -38
  56. package/cjs/MultipliableSelect/MultipliableSelect.test.js +111 -47
  57. package/cjs/NestedAttribute/NestedAttribute.test.js +121 -42
  58. package/cjs/NestedAttributeEditor/NestedAttributeEditor.test.js +94 -40
  59. package/cjs/NotMatchButton/NotMatchButton.spec.js +51 -100
  60. package/cjs/PieChart/PieChart.test.js +130 -114
  61. package/cjs/PinButton/PinButton.spec.js +89 -22
  62. package/cjs/PivotingTooltip/PivotingTooltip.test.js +338 -174
  63. package/cjs/PotentialMatchReviewCard/PotentialMatchReviewCard.spec.js +94 -29
  64. package/cjs/ProfileBand/ProfileBand.spec.js +60 -53
  65. package/cjs/ProfileCard/ProfileCard.test.js +109 -27
  66. package/cjs/ProfilesList/ProfilesList.d.ts +1 -3
  67. package/cjs/ProfilesList/ProfilesList.js +1 -1
  68. package/cjs/ProfilesList/ProfilesList.spec.js +226 -211
  69. package/cjs/QueryBuilderRow/QueryBuilderRow.spec.js +83 -90
  70. package/cjs/QueryBuilderRowsGroup/QueryBuilderRowsGroup.spec.js +195 -86
  71. package/cjs/ReactSelectLoadMoreButton/ReactSelectLoadMoreButton.test.js +73 -15
  72. package/cjs/ReactSelectMenuWithPopper/ReactSelectMenuWithPopper.test.js +71 -117
  73. package/cjs/ReadOnlyAttributeValuesBlock/ReadOnlyAttributeValuesBlock.test.js +128 -61
  74. package/cjs/ReadOnlyAttributesFactory/components/ReadOnlyAttribute/ReadOnlyAttribute.test.js +179 -44
  75. package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.test.js +254 -211
  76. package/cjs/ReadOnlyAttributesList/attributes.test-data.js +4 -4
  77. package/cjs/ReadOnlyAttributesPager/ReadOnlyAttributesPager.test.js +75 -18
  78. package/cjs/ReadOnlyAttributesView/ReadOnlyAttributesView.test.js +185 -310
  79. package/cjs/ReadOnlyComplexAttribute/ReadOnlyComplexAttribute.test.js +209 -218
  80. package/cjs/ReadOnlyImageAttributesLine/ReadOnlyImageAttributesLine.test.js +89 -89
  81. package/cjs/ReferenceAttributeEditor/ReferenceAttributeEditor.test.js +555 -601
  82. package/cjs/ReferenceAttributeEditor/metadata.test-data.d.ts +13 -13
  83. package/cjs/ReferenceAttributeEditor/metadata.test-data.js +2 -2
  84. package/cjs/ReferenceAttributeEditor/styles.d.ts +1 -1
  85. package/cjs/RelationEditor/RelationEditor.test.js +1446 -1390
  86. package/cjs/RelationTypeSelector/RelationTypeSelector.test.js +99 -17
  87. package/cjs/RelationTypesSelector/RelationTypesSelector.test.js +73 -22
  88. package/cjs/ReltioMap/ReltioMap.spec.js +51 -25
  89. package/cjs/Roles/Roles.test.js +54 -10
  90. package/cjs/ScreenProfileBand/ScreenProfileBand.test.js +141 -71
  91. package/package.json +1 -1
  92. package/MetadataTypesSelector/components/ListLabel/ListLabel.test.d.ts +0 -1
  93. package/MetadataTypesSelector/components/ListLabel/ListLabel.test.js +0 -24
  94. package/PivotingTooltip/IntegrationPivotingTooltip.test.d.ts +0 -1
  95. package/PivotingTooltip/IntegrationPivotingTooltip.test.js +0 -356
  96. package/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.d.ts +0 -1
  97. package/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.js +0 -201
  98. package/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.d.ts +0 -1
  99. package/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.js +0 -43
  100. package/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.d.ts +0 -1
  101. package/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.js +0 -31
  102. package/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.d.ts +0 -1
  103. package/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.js +0 -31
  104. package/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  105. package/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -45
  106. package/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.d.ts +0 -1
  107. package/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.js +0 -114
  108. package/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.d.ts +0 -1
  109. package/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.js +0 -107
  110. package/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  111. package/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -72
  112. package/RelationEditor/IntegrationRelationEditor.test.d.ts +0 -1
  113. package/RelationEditor/IntegrationRelationEditor.test.js +0 -337
  114. package/ReltioMap/components/MapControlContainer/MapControlContainer.d.ts +0 -10
  115. package/ReltioMap/components/MapControlContainer/MapControlContainer.js +0 -24
  116. package/ReltioMap/components/MapControlContainer/MapControlContainer.spec.d.ts +0 -1
  117. package/ReltioMap/components/MapControlContainer/MapControlContainer.spec.js +0 -33
  118. package/ReltioMap/components/MapControlContainer/index.d.ts +0 -1
  119. package/ReltioMap/components/MapControlContainer/index.js +0 -1
  120. package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.d.ts +0 -1
  121. package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.js +0 -36
  122. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.d.ts +0 -1
  123. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.js +0 -60
  124. package/Roles/components/Role/Role.test.d.ts +0 -1
  125. package/Roles/components/Role/Role.test.js +0 -55
  126. package/cjs/MetadataTypesSelector/components/ListLabel/ListLabel.test.d.ts +0 -1
  127. package/cjs/MetadataTypesSelector/components/ListLabel/ListLabel.test.js +0 -52
  128. package/cjs/PivotingTooltip/IntegrationPivotingTooltip.test.d.ts +0 -1
  129. package/cjs/PivotingTooltip/IntegrationPivotingTooltip.test.js +0 -361
  130. package/cjs/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.d.ts +0 -1
  131. package/cjs/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.js +0 -206
  132. package/cjs/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.d.ts +0 -1
  133. package/cjs/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.js +0 -48
  134. package/cjs/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.d.ts +0 -1
  135. package/cjs/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.js +0 -36
  136. package/cjs/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.d.ts +0 -1
  137. package/cjs/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.js +0 -36
  138. package/cjs/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  139. package/cjs/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -50
  140. package/cjs/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.d.ts +0 -1
  141. package/cjs/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.js +0 -119
  142. package/cjs/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.d.ts +0 -1
  143. package/cjs/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.js +0 -112
  144. package/cjs/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  145. package/cjs/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -77
  146. package/cjs/RelationEditor/IntegrationRelationEditor.test.d.ts +0 -1
  147. package/cjs/RelationEditor/IntegrationRelationEditor.test.js +0 -342
  148. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.d.ts +0 -10
  149. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.js +0 -28
  150. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.spec.d.ts +0 -1
  151. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.spec.js +0 -38
  152. package/cjs/ReltioMap/components/MapControlContainer/index.d.ts +0 -1
  153. package/cjs/ReltioMap/components/MapControlContainer/index.js +0 -5
  154. package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.d.ts +0 -1
  155. package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.js +0 -41
  156. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.d.ts +0 -1
  157. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.js +0 -65
  158. package/cjs/Roles/components/Role/Role.test.d.ts +0 -1
  159. package/cjs/Roles/components/Role/Role.test.js +0 -60
@@ -10,186 +10,193 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
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
+ };
13
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
51
  };
16
52
  Object.defineProperty(exports, "__esModule", { value: true });
17
53
  var react_1 = __importDefault(require("react"));
18
- var test_utils_1 = require("react-dom/test-utils");
19
- var enzyme_1 = require("enzyme");
54
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
55
+ var react_2 = require("@testing-library/react");
20
56
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
21
- var MoreAttributesButton_1 = require("./MoreAttributesButton");
22
- var Button_1 = __importDefault(require("@mui/material/Button"));
23
- var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
24
- var Add_1 = __importDefault(require("@mui/icons-material/Add"));
25
- var AttributeListItem_1 = require("../AttributeListItem/");
26
- var SelectionPopup_1 = require("../SelectionPopup");
27
- var Highlighter_1 = require("../Highlighter");
28
- var Marginator_1 = require("../Marginator");
29
57
  var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
58
+ var test_utils_1 = require("../test-utils");
30
59
  var attributes_test_data_1 = require("./attributes.test-data");
31
- jest.mock('../contexts/MdmModuleContext', function () { return (__assign(__assign({}, jest.requireActual('../contexts/MdmModuleContext')), { useMdmAttributesSortingStrategy: jest.fn() })); });
32
- describe('MoreAttributesButton tests', function () {
33
- var onApplyFn = jest.fn();
60
+ var MoreAttributesButton_1 = require("./MoreAttributesButton");
61
+ var defaultProps = { label: 'More attributes', data: attributes_test_data_1.attributesList, onApply: jest.fn() };
62
+ var setUp = function (_a) {
63
+ var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? {} : _d;
64
+ var user = user_event_1.default.setup();
65
+ var Providers = function (_a) {
66
+ var children = _a.children;
67
+ return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues }, children));
68
+ };
69
+ return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, __assign({}, props)), { wrapper: Providers })), { user: user });
70
+ };
71
+ describe('More attributes button tests', function () {
34
72
  afterEach(function () {
35
- onApplyFn.mockClear();
36
- });
37
- beforeEach(function () {
38
- MdmModuleContext_1.useMdmAttributesSortingStrategy.mockReturnValue(undefined);
73
+ jest.clearAllMocks();
39
74
  });
40
75
  it('should render button with label and plus', function () {
41
- var label = 'More attributes';
42
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { label: label, data: attributes_test_data_1.attributesList, onApply: onApplyFn }));
43
- var button = component.find(Button_1.default);
44
- expect(button.length).toBe(1);
45
- expect(button.text().includes(label)).toBe(true);
46
- expect(button.find(Add_1.default)).toHaveLength(1);
47
- });
48
- it('should open popup onclicking the button', function () {
49
- var label = 'More attributes';
50
- var component = (0, enzyme_1.mount)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { popupTitle: label, data: attributes_test_data_1.attributesList, onApply: onApplyFn }));
51
- var button = component.find(Button_1.default);
52
- button.find('button').simulate('click');
53
- component.update();
54
- var popup = component.find('Portal');
55
- var popupLabel = popup.findWhere(function (n) { return n.prop('className') === 'header'; });
56
- expect(popupLabel.text()).toBe(label);
57
- var listItems = popup.find(AttributeListItem_1.AttributeListItem);
58
- expect(listItems.length).toBe(attributes_test_data_1.attributesList.length);
59
- listItems.forEach(function (item, index) {
60
- var label = attributes_test_data_1.attributesList[index].required
61
- ? (attributes_test_data_1.attributesList[index].label || attributes_test_data_1.attributesList[index].name) + '*'
62
- : attributes_test_data_1.attributesList[index].label || attributes_test_data_1.attributesList[index].name;
63
- expect(item.text().includes(label)).toBeTruthy();
64
- expect(item.find('SvgSimpleAttribute').exists()).toBe(true);
65
- expect(item.find(Marginator_1.Marginator).prop('level')).toBe(0);
66
- expect(item.find('input').prop('checked')).toBe(false);
67
- });
68
- });
69
- it('should render popup with groups, if parent is provided', function () {
70
- var label = 'More attributes';
71
- var parentAttributeType = attributes_test_data_1.parent;
72
- var component = (0, enzyme_1.mount)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { popupTitle: label, data: attributes_test_data_1.attributesListForParent, parent: parentAttributeType, onApply: onApplyFn }));
73
- var button = component.find(Button_1.default);
74
- button.find('button').simulate('click');
75
- component.update();
76
- var popup = component.find('Portal');
77
- var popupLabel = popup.findWhere(function (n) { return n.hasClass('header'); });
78
- expect(popupLabel.text()).toBe(label);
79
- var groupLabels = popup.findWhere(function (n) { return n.type() === 'div' && n.hasClass('subHeader'); });
80
- expect(groupLabels.at(0).text().includes('Parent')).toBeTruthy();
81
- expect(groupLabels.at(1).text().includes('Attributes')).toBeTruthy();
82
- var listItems = popup.find(AttributeListItem_1.AttributeListItem);
83
- expect(listItems.length).toBe(attributes_test_data_1.attributesListForParent.length + 1);
84
- var item = listItems.at(0);
85
- expect(item.text().includes(attributes_test_data_1.parent.label)).toBeTruthy();
86
- expect(item.find('SvgNestedAttribute').exists()).toBeTruthy();
87
- expect(item.find('input').prop('checked')).toBeFalsy();
88
- var offsetSimpleItems = 1;
89
- var simpleItems = listItems.slice(offsetSimpleItems);
90
- simpleItems.forEach(function (item, index) {
91
- var label = attributes_test_data_1.attributesListForParent[index].required
92
- ? attributes_test_data_1.attributesListForParent[index].label + '*'
93
- : attributes_test_data_1.attributesListForParent[index].label;
94
- expect(item.text().includes(label)).toBeTruthy();
95
- expect(item.find('SvgSimpleAttribute').exists()).toBe(true);
96
- expect(item.find('input').prop('checked')).toBe(false);
97
- });
98
- });
99
- it('should set filter for attributes and provide filter to AttributeListItem', function () {
100
- var label = 'More attributes';
101
- var component = (0, enzyme_1.mount)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { label: label, data: attributes_test_data_1.attributesList, onApply: onApplyFn }));
102
- var button = component.find(Button_1.default);
103
- button.find('button').simulate('click');
104
- component.update();
105
- var filterText = 'na';
106
- (0, test_utils_1.act)(function () {
107
- component.find(SelectionPopup_1.SelectionPopup).prop('onSearch')(filterText);
108
- });
109
- component.update();
110
- var popup = component.find('Portal');
111
- var listItems = popup.find(AttributeListItem_1.AttributeListItem);
112
- var filteredAttributes = attributes_test_data_1.attributesList.filter(function (attr) {
113
- return (attr.label || attr.name).toLowerCase().includes(filterText.toLowerCase());
114
- });
115
- expect(listItems.length).toBe(filteredAttributes.length);
116
- listItems.forEach(function (item, index) {
117
- var attribute = filteredAttributes[index];
118
- var label = attribute.label + (attribute.required ? '*' : '');
119
- expect(item.text().includes(label)).toBeTruthy();
120
- expect(item.find('SvgSimpleAttribute').exists()).toBe(true);
121
- expect(item.find('input').prop('checked')).toBe(false);
122
- expect(item.find(Highlighter_1.Highlighter).prop('text')).toBe(attribute.label);
123
- expect(item.find(Highlighter_1.Highlighter).prop('highlight')).toBe(filterText);
124
- expect(item.prop('labelInText')).toBe(attribute.label);
125
- });
76
+ setUp();
77
+ expect((0, test_utils_1.getMuiIconByName)('Add', react_2.screen.getByRole('button', { name: 'More attributes' }))).toBeInTheDocument();
126
78
  });
127
- it('should use case insensitive filter search', function () {
128
- var label = 'More attributes';
129
- var component = (0, enzyme_1.mount)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { label: label, data: attributes_test_data_1.attributesList, onApply: onApplyFn }));
130
- var button = component.find(Button_1.default);
131
- button.find('button').simulate('click');
132
- component.update();
133
- var filterText = 'L';
134
- (0, test_utils_1.act)(function () {
135
- component.find(SelectionPopup_1.SelectionPopup).prop('onSearch')(filterText);
79
+ it('should open and close popup correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
80
+ var user, popover, menuItems;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ user = setUp().user;
85
+ return [4 /*yield*/, user.click(react_2.screen.getByText('More attributes'))];
86
+ case 1:
87
+ _a.sent();
88
+ popover = react_2.screen.getByRole('presentation');
89
+ (0, react_2.within)(popover).getByText('More attributes');
90
+ (0, react_2.within)(popover).getByPlaceholderText('Search & add attributes');
91
+ menuItems = (0, react_2.within)(popover).getAllByRole('menuitem');
92
+ expect(menuItems).toHaveLength(4);
93
+ expect(menuItems[0]).toHaveTextContent('Role');
94
+ (0, react_2.within)(menuItems[0]).getByTestId('SvgSimpleAttribute');
95
+ expect(menuItems[1]).toHaveTextContent('Name*');
96
+ (0, react_2.within)(menuItems[1]).getByTestId('SvgSimpleAttribute');
97
+ expect(menuItems[2]).toHaveTextContent('Last name');
98
+ (0, react_2.within)(menuItems[2]).getByTestId('SvgSimpleAttribute');
99
+ expect(menuItems[3]).toHaveTextContent('Required*');
100
+ (0, react_2.within)(menuItems[3]).getByTestId('SvgSimpleAttribute');
101
+ return [4 /*yield*/, user.keyboard('{Escape}')];
102
+ case 2:
103
+ _a.sent();
104
+ expect(defaultProps.onApply).not.toHaveBeenCalled();
105
+ expect(popover).not.toBeInTheDocument();
106
+ return [2 /*return*/];
107
+ }
136
108
  });
137
- component.update();
138
- var popup = component.find('Portal');
139
- var listItems = popup.find(AttributeListItem_1.AttributeListItem);
140
- expect(listItems.length).toBe(2);
141
- filterText = 'l';
142
- (0, test_utils_1.act)(function () {
143
- component.find(SelectionPopup_1.SelectionPopup).prop('onSearch')(filterText);
109
+ }); });
110
+ it('should render popup with groups, if parent is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
111
+ var props, user, menuItems;
112
+ return __generator(this, function (_a) {
113
+ switch (_a.label) {
114
+ case 0:
115
+ props = __assign(__assign({}, defaultProps), { parent: attributes_test_data_1.parent });
116
+ user = setUp({ props: props }).user;
117
+ return [4 /*yield*/, user.click(react_2.screen.getByText('More attributes'))];
118
+ case 1:
119
+ _a.sent();
120
+ react_2.screen.getAllByText('Attributes');
121
+ react_2.screen.getAllByText('Parent');
122
+ menuItems = react_2.screen.getAllByRole('menuitem');
123
+ expect(menuItems).toHaveLength(5);
124
+ expect(menuItems[0]).toHaveTextContent('Taxonomy');
125
+ (0, react_2.within)(menuItems[0]).getByTestId('SvgNestedAttribute');
126
+ expect(menuItems[1]).toHaveTextContent('Role');
127
+ (0, react_2.within)(menuItems[1]).getByTestId('SvgSimpleAttribute');
128
+ expect(menuItems[2]).toHaveTextContent('Name*');
129
+ (0, react_2.within)(menuItems[2]).getByTestId('SvgSimpleAttribute');
130
+ expect(menuItems[3]).toHaveTextContent('Last name');
131
+ (0, react_2.within)(menuItems[3]).getByTestId('SvgSimpleAttribute');
132
+ expect(menuItems[4]).toHaveTextContent('Required*');
133
+ (0, react_2.within)(menuItems[4]).getByTestId('SvgSimpleAttribute');
134
+ return [2 /*return*/];
135
+ }
144
136
  });
145
- component.update();
146
- popup = component.find('Portal');
147
- listItems = popup.find(AttributeListItem_1.AttributeListItem);
148
- expect(listItems.length).toBe(2);
149
- });
150
- it('should call props.onApply on popup close if some items selected', function () {
151
- var label = 'More attributes';
152
- var component = (0, enzyme_1.mount)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { label: label, data: attributes_test_data_1.attributesList, onApply: onApplyFn }));
153
- var button = component.find(Button_1.default);
154
- (0, test_utils_1.act)(function () {
155
- button.find('button').simulate('click');
137
+ }); });
138
+ it('should filter attributes correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
139
+ var user, menuItems;
140
+ return __generator(this, function (_a) {
141
+ switch (_a.label) {
142
+ case 0:
143
+ user = setUp().user;
144
+ return [4 /*yield*/, user.click(react_2.screen.getByText('More attributes'))];
145
+ case 1:
146
+ _a.sent();
147
+ return [4 /*yield*/, user.type(react_2.screen.getByPlaceholderText('Search & add attributes'), 'na')];
148
+ case 2:
149
+ _a.sent();
150
+ menuItems = react_2.screen.getAllByRole('menuitem');
151
+ expect(menuItems).toHaveLength(2);
152
+ expect(menuItems[0]).toHaveTextContent('Name*');
153
+ expect((0, react_2.within)(menuItems[0]).getByText('Na')).toHaveClass('highlight');
154
+ expect(menuItems[1]).toHaveTextContent('Last name');
155
+ expect((0, react_2.within)(menuItems[1]).getByText('na')).toHaveClass('highlight');
156
+ return [2 /*return*/];
157
+ }
156
158
  });
157
- component.update();
158
- var menuItem = component.find('Portal').find(MenuItem_1.default).at(0);
159
- (0, test_utils_1.act)(function () {
160
- menuItem.find('div').at(0).simulate('click');
159
+ }); });
160
+ it('should call props.onApply on popup close if some items selected', function () { return __awaiter(void 0, void 0, void 0, function () {
161
+ var user, popover, backdrop;
162
+ return __generator(this, function (_a) {
163
+ switch (_a.label) {
164
+ case 0:
165
+ user = setUp().user;
166
+ return [4 /*yield*/, user.click(react_2.screen.getByText('More attributes'))];
167
+ case 1:
168
+ _a.sent();
169
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Role'))];
170
+ case 2:
171
+ _a.sent();
172
+ popover = react_2.screen.getByRole('presentation');
173
+ backdrop = popover.children[0];
174
+ return [4 /*yield*/, user.click(backdrop)];
175
+ case 3:
176
+ _a.sent();
177
+ expect(defaultProps.onApply).toHaveBeenCalledWith([attributes_test_data_1.attributesList[0]]);
178
+ return [2 /*return*/];
179
+ }
161
180
  });
162
- component.update();
163
- (0, test_utils_1.act)(function () {
164
- component.find('SelectionPopup').prop('onClose')();
181
+ }); });
182
+ it('should sort attributes if strategy is defined', function () { return __awaiter(void 0, void 0, void 0, function () {
183
+ var mdmValues, user, menuItems;
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0:
187
+ mdmValues = { attributesSortingStrategy: mdm_sdk_1.SortingStrategy.ASC_BY_NAME };
188
+ user = setUp({ mdmValues: mdmValues }).user;
189
+ return [4 /*yield*/, user.click(react_2.screen.getByText('More attributes'))];
190
+ case 1:
191
+ _a.sent();
192
+ menuItems = react_2.screen.getAllByRole('menuitem');
193
+ expect(menuItems).toHaveLength(4);
194
+ expect(menuItems[0]).toHaveTextContent('Last name');
195
+ expect(menuItems[1]).toHaveTextContent('Name*');
196
+ expect(menuItems[2]).toHaveTextContent('Role');
197
+ expect(menuItems[3]).toHaveTextContent('Required*');
198
+ return [2 /*return*/];
199
+ }
165
200
  });
166
- expect(onApplyFn).toHaveBeenCalledWith([attributes_test_data_1.attributesList[0]]);
167
- });
168
- it('should not call props.onApply on popup close if no items selected', function () {
169
- var label = 'More attributes';
170
- var component = (0, enzyme_1.mount)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { label: label, data: attributes_test_data_1.attributesList, onApply: onApplyFn }));
171
- var button = component.find(Button_1.default);
172
- (0, test_utils_1.act)(function () {
173
- button.find('button').simulate('click');
174
- });
175
- component.update();
176
- (0, test_utils_1.act)(function () {
177
- component.find('SelectionPopup').prop('onClose')();
178
- });
179
- expect(onApplyFn).not.toHaveBeenCalled();
180
- });
181
- it('should sort attributes if strategy is defined', function () {
182
- var label = 'More attributes';
183
- MdmModuleContext_1.useMdmAttributesSortingStrategy.mockReturnValue(mdm_sdk_1.SortingStrategy.ASC_BY_NAME);
184
- var component = (0, enzyme_1.mount)(react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { popupTitle: label, data: attributes_test_data_1.attributesList, onApply: onApplyFn }));
185
- var button = component.find(Button_1.default);
186
- button.find('button').simulate('click');
187
- component.update();
188
- var popup = component.find('Portal');
189
- var popupLabel = popup.findWhere(function (n) { return n.prop('className') === 'header'; });
190
- expect(popupLabel.text()).toBe(label);
191
- var listItems = popup.find(AttributeListItem_1.AttributeListItem);
192
- expect(listItems.length).toBe(attributes_test_data_1.attributesList.length);
193
- expect(listItems.map(function (item) { return item.text(); })).toEqual(['Last name', 'Name*', 'Role', 'Required*']);
194
- });
201
+ }); });
195
202
  });
@@ -10,60 +10,100 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
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 };
19
47
  }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
48
  };
22
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
51
  };
25
52
  Object.defineProperty(exports, "__esModule", { value: true });
26
53
  var react_1 = __importDefault(require("react"));
27
- var enzyme_1 = require("enzyme");
28
- var test_utils_1 = require("react-dom/test-utils");
29
- var MultiSelect_1 = require("../MultiSelect");
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
30
56
  var MultiValueSelector_1 = __importDefault(require("./MultiValueSelector"));
31
- describe('MultiValueSelector tests', function () {
57
+ describe('Multi value selector tests', function () {
32
58
  var defaultProps = {
33
59
  values: [],
34
60
  onChange: jest.fn(),
35
61
  options: [
36
- { value: '1', label: 'Test 1' },
37
- { value: '2', label: 'Test 2' }
62
+ { value: 'orange', label: 'Orange' },
63
+ { value: 'banana', label: 'Banana' },
64
+ { value: 'apple', label: 'Apple' }
38
65
  ]
39
66
  };
40
- it('should render MultiSelect with correct props', function () {
41
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(MultiValueSelector_1.default, __assign({}, defaultProps)));
42
- var selector = component.find(MultiSelect_1.MultiSelect);
43
- expect(selector).toHaveLength(1);
44
- expect(selector.props()).toMatchObject({
45
- value: [],
46
- onChange: expect.any(Function),
47
- options: defaultProps.options
67
+ it('should render correctly in basic case', function () { return __awaiter(void 0, void 0, void 0, function () {
68
+ var user, options;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ user = user_event_1.default.setup();
73
+ (0, react_2.render)(react_1.default.createElement(MultiValueSelector_1.default, __assign({}, defaultProps)));
74
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('combobox'))];
75
+ case 1:
76
+ _a.sent();
77
+ options = react_2.screen.getAllByRole('option');
78
+ expect(options).toHaveLength(3);
79
+ expect(options[0]).toHaveTextContent('Orange');
80
+ expect(options[1]).toHaveTextContent('Banana');
81
+ expect(options[2]).toHaveTextContent('Apple');
82
+ return [2 /*return*/];
83
+ }
48
84
  });
49
- });
85
+ }); });
50
86
  it('should set correct value property', function () {
51
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(MultiValueSelector_1.default, __assign({}, defaultProps, { values: ['2'] })));
52
- var selector = component.find(MultiSelect_1.MultiSelect);
53
- expect(selector).toHaveLength(1);
54
- expect(selector.props()).toMatchObject({
55
- value: [defaultProps.options[1]],
56
- onChange: expect.any(Function),
57
- options: defaultProps.options
58
- });
87
+ (0, react_2.render)(react_1.default.createElement(MultiValueSelector_1.default, __assign({}, defaultProps, { values: ['orange', 'apple'] })));
88
+ react_2.screen.getByText('Orange');
89
+ react_2.screen.getByText('Apple');
59
90
  });
60
- it('should call onChange', function () {
61
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(MultiValueSelector_1.default, __assign({}, defaultProps)));
62
- var selector = component.find(MultiSelect_1.MultiSelect);
63
- expect(selector).toHaveLength(1);
64
- (0, test_utils_1.act)(function () {
65
- selector.prop('onChange')(__spreadArray([], defaultProps.options, true));
91
+ it('should call onChange on item click', function () { return __awaiter(void 0, void 0, void 0, function () {
92
+ var user;
93
+ return __generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ user = user_event_1.default.setup();
97
+ (0, react_2.render)(react_1.default.createElement(MultiValueSelector_1.default, __assign({}, defaultProps)));
98
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('combobox'))];
99
+ case 1:
100
+ _a.sent();
101
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Apple'))];
102
+ case 2:
103
+ _a.sent();
104
+ expect(defaultProps.onChange).toHaveBeenCalledWith(['apple']);
105
+ return [2 /*return*/];
106
+ }
66
107
  });
67
- expect(defaultProps.onChange).toHaveBeenCalledWith(['1', '2']);
68
- });
108
+ }); });
69
109
  });