@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
@@ -55,35 +55,16 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
55
  return to.concat(ar || Array.prototype.slice.call(from));
56
56
  };
57
57
  import React from 'react';
58
- import { shallow, mount } from 'enzyme';
59
58
  import { screen, render, within } from '@testing-library/react';
60
59
  import userEvent from '@testing-library/user-event';
61
- import { act } from 'react-dom/test-utils';
62
- import TextField from '@mui/material/TextField';
63
- import { AttributeListItem } from '../AttributeListItem';
64
- import { Highlighter } from '../Highlighter';
65
- import { SelectionPopup } from '../SelectionPopup';
66
- import { rerenderWrapper } from '../test-utils';
67
- import { ListLabel } from './components/ListLabel';
68
- import { SelectMetadataTypesList } from './components/SelectMetadataTypesList';
60
+ import { countHiddenItems } from './components/ListLabel/helpers';
69
61
  import { MetadataTypesSelector } from './MetadataTypesSelector';
62
+ jest.mock('./components/ListLabel/helpers', function () { return (__assign(__assign({}, jest.requireActual('./components/ListLabel/helpers')), { countHiddenItems: jest.fn() })); });
70
63
  var items = [
71
- {
72
- uri: 'configuration/entityTypes/HCP',
73
- label: 'HCP Label',
74
- attributes: []
75
- },
76
- {
77
- uri: 'configuration/entityTypes/HCA',
78
- attributes: [],
79
- label: 'HCA Label',
80
- analyticsAttributes: []
81
- }
64
+ { uri: 'configuration/entityTypes/HCP', label: 'HCP Label', attributes: [] },
65
+ { uri: 'configuration/entityTypes/HCA', attributes: [], label: 'HCA Label' },
66
+ { uri: 'configuration/entityTypes/Company', attributes: [], label: 'Company Label' }
82
67
  ];
83
- var setUp = function (method, _a) {
84
- var _b = _a === void 0 ? {} : _a, _c = _b.selectedItemsUris, selectedItemsUris = _c === void 0 ? [] : _c, _d = _b.onChange, onChange = _d === void 0 ? jest.fn() : _d, single = _b.single, placeholder = _b.placeholder, enableEmptyValueUnderline = _b.enableEmptyValueUnderline;
85
- return method(React.createElement(MetadataTypesSelector, { items: items, selectedItemsUris: selectedItemsUris, onChange: onChange, single: single, placeholder: placeholder, enableEmptyValueUnderline: enableEmptyValueUnderline, label: "Entity Type", dataReltioId: "entity-type-selector", selectionPopupTitle: 'Select entity types' }));
86
- };
87
68
  var defaultProps = {
88
69
  items: items,
89
70
  selectedItemsUris: [],
@@ -97,180 +78,202 @@ var setUpRTL = function (props) {
97
78
  var user = userEvent.setup();
98
79
  return __assign({ user: user }, render(React.createElement(MetadataTypesSelector, __assign({}, defaultProps, props))));
99
80
  };
100
- describe('MetadataTypesSelector tests', function () {
101
- it('should render correctly', function () {
102
- var selectedItemsUris = ['configuration/entityTypes/HCP'];
103
- var wrapper = setUp(shallow, { selectedItemsUris: selectedItemsUris });
104
- expect(wrapper.find(TextField)).toHaveLength(1);
105
- expect(wrapper.find(TextField).prop('InputProps').readOnly).toBe(true);
106
- expect(wrapper.find(SelectionPopup).props()).toMatchObject({
107
- title: 'Select entity types',
108
- open: false
109
- });
110
- expect(wrapper.find(SelectMetadataTypesList).props()).toMatchObject({
111
- items: [
112
- {
113
- item: {
114
- item: items[0]
115
- },
116
- index: 0
117
- },
118
- {
119
- item: {
120
- item: items[1]
121
- },
122
- index: 1
123
- }
124
- ],
125
- selectedItems: selectedItemsUris
126
- });
81
+ describe('Metadata types selector tests', function () {
82
+ var originalRange = document.createRange;
83
+ beforeEach(function () {
84
+ countHiddenItems.mockReturnValue(0);
85
+ document.createRange = function () {
86
+ var range = new Range();
87
+ range.getBoundingClientRect = jest.fn(function () { return ({ width: 0 }); });
88
+ return range;
89
+ };
127
90
  });
128
- it('should filter types on search input change and highlight the searchText', function () {
129
- var wrapper = setUp(mount);
130
- act(function () {
131
- wrapper.find(TextField).prop('onClick')();
91
+ afterEach(function () {
92
+ jest.clearAllMocks();
93
+ document.createRange = originalRange;
94
+ });
95
+ it('should render correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
96
+ var user, menuItems;
97
+ return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0:
100
+ user = setUpRTL({ selectedItemsUris: ['configuration/entityTypes/HCP'] }).user;
101
+ screen.getByText('Entity Type');
102
+ screen.getAllByText('HCP Label');
103
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
104
+ case 1:
105
+ _a.sent();
106
+ screen.getByText('Select entity types');
107
+ menuItems = screen.getAllByRole('menuitem');
108
+ expect(menuItems).toHaveLength(3);
109
+ expect(menuItems[0]).toHaveTextContent('HCP Label');
110
+ expect(within(menuItems[0]).getByRole('checkbox')).toBeChecked();
111
+ expect(menuItems[1]).toHaveTextContent('HCA Label');
112
+ expect(within(menuItems[1]).getByRole('checkbox')).not.toBeChecked();
113
+ expect(menuItems[2]).toHaveTextContent('Company Label');
114
+ expect(within(menuItems[2]).getByRole('checkbox')).not.toBeChecked();
115
+ return [2 /*return*/];
116
+ }
132
117
  });
133
- wrapper.update();
134
- expect(wrapper.find(SelectionPopup).prop('open')).toBe(true);
135
- wrapper.update();
136
- var filterText = 'HCA';
137
- act(function () {
138
- wrapper.find(SelectionPopup).prop('onSearch')(filterText);
118
+ }); });
119
+ it('should filter types on search input change and highlight the searchText', function () { return __awaiter(void 0, void 0, void 0, function () {
120
+ var user, menuItems;
121
+ return __generator(this, function (_a) {
122
+ switch (_a.label) {
123
+ case 0:
124
+ user = setUpRTL().user;
125
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
126
+ case 1:
127
+ _a.sent();
128
+ return [4 /*yield*/, user.type(screen.getByRole('textbox'), 'HCA')];
129
+ case 2:
130
+ _a.sent();
131
+ menuItems = screen.getAllByRole('menuitem');
132
+ expect(menuItems).toHaveLength(1);
133
+ expect(menuItems[0]).toHaveTextContent('HCA Label');
134
+ expect(within(menuItems[0]).getByText('HCA')).toHaveClass('highlight');
135
+ return [2 /*return*/];
136
+ }
139
137
  });
140
- wrapper.update();
141
- expect(wrapper.find(SelectMetadataTypesList).prop('items')).toEqual([
142
- {
143
- item: {
144
- item: __assign(__assign({}, items[1]), { filterText: filterText })
145
- },
146
- index: 0
138
+ }); });
139
+ it('should toggle popup correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
140
+ var user;
141
+ return __generator(this, function (_a) {
142
+ switch (_a.label) {
143
+ case 0:
144
+ user = setUpRTL().user;
145
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
146
+ case 1:
147
+ _a.sent();
148
+ screen.getByRole('presentation');
149
+ return [4 /*yield*/, user.keyboard('{Escape}')];
150
+ case 2:
151
+ _a.sent();
152
+ expect(screen.queryByRole('presentation')).not.toBeInTheDocument();
153
+ return [2 /*return*/];
147
154
  }
148
- ]);
149
- var attributeListItems = wrapper.find(AttributeListItem);
150
- expect(attributeListItems.length).toBe(1);
151
- var highlighter = attributeListItems.find(Highlighter);
152
- expect(highlighter.prop('text')).toBe(items[1].label);
153
- expect(highlighter.prop('highlight')).toBe(filterText);
154
- });
155
- it('should toggle popup correctly', function () {
156
- var wrapper = setUp(shallow);
157
- wrapper.find(TextField).simulate('click');
158
- rerenderWrapper(wrapper);
159
- expect(wrapper.find(SelectionPopup).prop('open')).toBe(true);
160
- wrapper.find(SelectionPopup).prop('onClose')();
161
- rerenderWrapper(wrapper);
162
- expect(wrapper.find(SelectionPopup).prop('open')).toBe(false);
163
- });
164
- it('should not render startAdornment if no types selected and placeholder prop is not set', function () {
165
- var wrapper = setUp(shallow);
166
- expect(wrapper.find(TextField).prop('value')).toBe('');
167
- expect(wrapper.find(TextField).prop('InputProps').startAdornment).toBe(null);
155
+ });
156
+ }); });
157
+ it('should not render start adornment if no types selected and placeholder prop is not set', function () {
158
+ setUpRTL();
159
+ expect(screen.queryByTestId('metadata-types-selector-start-adornment')).not.toBeInTheDocument();
168
160
  });
169
161
  it('should render placeholder if no types selected and placeholder prop is set', function () {
170
- var wrapper = setUp(shallow, { placeholder: 'All' });
171
- expect(wrapper.find(TextField).prop('value')).toBe('');
172
- expect(wrapper.find(TextField).prop('InputProps').startAdornment).toStrictEqual(React.createElement("div", { className: "inputText" },
173
- React.createElement("div", null, "All")));
174
- });
175
- it('should set InputProps.disableUnderline as true if there are no types selected and enableEmptyValueUnderline prop is unset', function () {
176
- var wrapper = setUp(shallow);
177
- expect(wrapper.find(TextField).prop('InputProps').disableUnderline).toBe(true);
178
- });
179
- it('should set InputProps.disableUnderline as false if there are some selected types', function () {
180
- var wrapper = setUp(shallow, { selectedItemsUris: ['configuration/entityTypes/HCP'] });
181
- expect(wrapper.find(TextField).prop('InputProps').disableUnderline).toBe(false);
182
- });
183
- it('should set InputProps.disableUnderline as false if there are no types selected and enableEmptyValueUnderline prop is true', function () {
184
- var wrapper = setUp(shallow, { enableEmptyValueUnderline: true });
185
- expect(wrapper.find(TextField).prop('InputProps').disableUnderline).toBe(false);
186
- });
187
- it('should render not empty placeholder value prop if no types selected', function () {
188
- var wrapper = setUp(shallow, { placeholder: '123' });
189
- expect(wrapper.find(TextField).prop('value')).toBe('');
190
- expect(wrapper.find(TextField).prop('InputProps').startAdornment).toStrictEqual(React.createElement("div", { className: "inputText" },
191
- React.createElement("div", null, "123")));
162
+ setUpRTL({ placeholder: 'Placeholder' });
163
+ screen.getByText('Placeholder');
164
+ expect(screen.getByRole('textbox')).toHaveValue('');
192
165
  });
193
- it('should render ListLabel if not all types are selected', function () {
194
- var selectedItemsUris = ['configuration/entityTypes/HCP'];
195
- var wrapper = setUp(shallow, { selectedItemsUris: selectedItemsUris });
196
- expect(wrapper.find(TextField).prop('InputProps').startAdornment).toStrictEqual(React.createElement("div", { className: "inputText" },
197
- React.createElement(ListLabel, { list: ['HCP Label'] })));
198
- expect(wrapper.find(TextField).prop('value')).toBe('');
199
- });
200
- it('should call props.onChange correctly on item select', function () {
201
- var onChange = jest.fn();
202
- var wrapper = setUp(shallow, { selectedItemsUris: [], onChange: onChange });
203
- wrapper.find(TextField).simulate('click');
204
- rerenderWrapper(wrapper);
205
- expect(wrapper.find(SelectionPopup).prop('open')).toBe(true);
206
- wrapper.find(SelectMetadataTypesList).prop('onItemClick')(items[0], true);
207
- rerenderWrapper(wrapper);
208
- expect(onChange).toHaveBeenCalledWith([items[0].uri]);
209
- expect(wrapper.find(SelectionPopup).prop('open')).toBe(true);
210
- });
211
- it('should call props.onChange correctly and close popup on item select in single mode', function () {
212
- var onChange = jest.fn();
213
- var wrapper = setUp(shallow, { selectedItemsUris: [], onChange: onChange, single: true });
214
- wrapper.find(TextField).simulate('click');
215
- rerenderWrapper(wrapper);
216
- expect(wrapper.find(SelectionPopup).prop('open')).toBe(true);
217
- wrapper.find(SelectMetadataTypesList).prop('onItemClick')(items[0], true);
218
- rerenderWrapper(wrapper);
219
- expect(onChange).toHaveBeenCalledWith([items[0].uri]);
220
- expect(wrapper.find(SelectionPopup).prop('open')).toBe(false);
221
- });
222
- it('should call props.onChange correctly on item deselect', function () {
223
- var onChange = jest.fn();
224
- var wrapper = setUp(shallow, { selectedItemsUris: [items[0].uri], onChange: onChange });
225
- wrapper.find(SelectMetadataTypesList).prop('onItemClick')(items[0], false);
226
- expect(onChange).toHaveBeenCalledWith([]);
227
- });
228
- describe('MetadataTypesSelector behavior with RTL', function () {
229
- var originalRange = document.createRange;
230
- beforeEach(function () {
231
- document.createRange = function () {
232
- var range = new Range();
233
- range.getBoundingClientRect = jest.fn(function () {
234
- return { width: 0 };
235
- });
236
- return range;
237
- };
166
+ it('should call props.onChange correctly on item select', function () { return __awaiter(void 0, void 0, void 0, function () {
167
+ var onChange, user;
168
+ return __generator(this, function (_a) {
169
+ switch (_a.label) {
170
+ case 0:
171
+ onChange = jest.fn();
172
+ user = setUpRTL({ selectedItemsUris: [], onChange: onChange }).user;
173
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
174
+ case 1:
175
+ _a.sent();
176
+ return [4 /*yield*/, user.click(screen.getByText('HCP Label'))];
177
+ case 2:
178
+ _a.sent();
179
+ expect(onChange).toHaveBeenCalledWith(['configuration/entityTypes/HCP']);
180
+ screen.getByRole('presentation');
181
+ return [2 /*return*/];
182
+ }
183
+ });
184
+ }); });
185
+ it('should call props.onChange correctly and close popup on item select in single mode', function () { return __awaiter(void 0, void 0, void 0, function () {
186
+ var onChange, user;
187
+ return __generator(this, function (_a) {
188
+ switch (_a.label) {
189
+ case 0:
190
+ onChange = jest.fn();
191
+ user = setUpRTL({ selectedItemsUris: [], onChange: onChange, single: true }).user;
192
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
193
+ case 1:
194
+ _a.sent();
195
+ return [4 /*yield*/, user.click(screen.getByText('HCA Label'))];
196
+ case 2:
197
+ _a.sent();
198
+ expect(onChange).toHaveBeenCalledWith(['configuration/entityTypes/HCA']);
199
+ expect(screen.queryByRole('presentation')).not.toBeInTheDocument();
200
+ return [2 /*return*/];
201
+ }
238
202
  });
239
- afterEach(function () {
240
- document.createRange = originalRange;
203
+ }); });
204
+ it('should call props.onChange correctly on item deselect', function () { return __awaiter(void 0, void 0, void 0, function () {
205
+ var onChange, user;
206
+ return __generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0:
209
+ onChange = jest.fn();
210
+ user = setUpRTL({ selectedItemsUris: ['configuration/entityTypes/HCP'], onChange: onChange }).user;
211
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
212
+ case 1:
213
+ _a.sent();
214
+ return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: 'HCP Label' }))];
215
+ case 2:
216
+ _a.sent();
217
+ expect(onChange).toHaveBeenCalledWith([]);
218
+ return [2 /*return*/];
219
+ }
220
+ });
221
+ }); });
222
+ it('should not throw an error on clicking list item if entity does not have a label', function () { return __awaiter(void 0, void 0, void 0, function () {
223
+ var itemWithoutLabel, selectedItemsUris, user, button, popover, blankListItem, checkbox;
224
+ return __generator(this, function (_a) {
225
+ switch (_a.label) {
226
+ case 0:
227
+ itemWithoutLabel = {
228
+ uri: 'configuration/entityTypes/CompanyUri',
229
+ attributes: []
230
+ };
231
+ selectedItemsUris = [itemWithoutLabel.uri];
232
+ user = setUpRTL({ selectedItemsUris: selectedItemsUris, items: __spreadArray(__spreadArray([], items, true), [itemWithoutLabel], false) }).user;
233
+ expect(screen.getAllByText('CompanyUri')[0]).toBeInTheDocument();
234
+ button = screen.getByRole('button');
235
+ return [4 /*yield*/, user.click(button)];
236
+ case 1:
237
+ _a.sent();
238
+ popover = screen.getByRole('presentation');
239
+ expect(popover).toBeInTheDocument();
240
+ expect(within(popover).getByText('Select entity types')).toBeInTheDocument();
241
+ blankListItem = screen.getAllByRole('menuitem')[3];
242
+ expect(blankListItem).toHaveTextContent('CompanyUri');
243
+ checkbox = within(blankListItem).getByRole('checkbox');
244
+ return [4 /*yield*/, user.click(checkbox)];
245
+ case 2:
246
+ _a.sent();
247
+ return [4 /*yield*/, user.keyboard('[Escape]')];
248
+ case 3:
249
+ _a.sent();
250
+ expect(popover).not.toBeInTheDocument();
251
+ return [2 /*return*/];
252
+ }
253
+ });
254
+ }); });
255
+ it('should render all items if they do not overflow', function () {
256
+ setUpRTL({
257
+ selectedItemsUris: [
258
+ 'configuration/entityTypes/HCP',
259
+ 'configuration/entityTypes/HCA',
260
+ 'configuration/entityTypes/Company'
261
+ ]
262
+ });
263
+ expect(screen.getAllByText('HCP Label, HCA Label, Company Label')).toHaveLength(2);
264
+ });
265
+ it('should render only visible items, hidden count and tooltip if they overflow', function () {
266
+ countHiddenItems.mockReturnValue(1);
267
+ setUpRTL({
268
+ selectedItemsUris: [
269
+ 'configuration/entityTypes/HCP',
270
+ 'configuration/entityTypes/HCA',
271
+ 'configuration/entityTypes/Company'
272
+ ]
241
273
  });
242
- it('should not throw an error on clicking list item if entity does not have a label', function () { return __awaiter(void 0, void 0, void 0, function () {
243
- var itemWithoutLabel, selectedItemsUris, user, button, popover, blankListItem, checkbox;
244
- return __generator(this, function (_a) {
245
- switch (_a.label) {
246
- case 0:
247
- itemWithoutLabel = {
248
- uri: 'configuration/entityTypes/CompanyUri',
249
- attributes: []
250
- };
251
- selectedItemsUris = [itemWithoutLabel.uri];
252
- user = setUpRTL({ selectedItemsUris: selectedItemsUris, items: __spreadArray(__spreadArray([], items, true), [itemWithoutLabel], false) }).user;
253
- expect(screen.getAllByText('CompanyUri')[0]).toBeInTheDocument();
254
- button = screen.getByRole('button');
255
- return [4 /*yield*/, user.click(button)];
256
- case 1:
257
- _a.sent();
258
- popover = screen.getByRole('presentation');
259
- expect(popover).toBeInTheDocument();
260
- expect(within(popover).getByText('Select entity types')).toBeInTheDocument();
261
- blankListItem = screen.getAllByRole('menuitem')[2];
262
- expect(blankListItem).toHaveTextContent('CompanyUri');
263
- checkbox = within(blankListItem).getByRole('checkbox');
264
- return [4 /*yield*/, user.click(checkbox)];
265
- case 2:
266
- _a.sent();
267
- return [4 /*yield*/, user.keyboard('[Escape]')];
268
- case 3:
269
- _a.sent();
270
- expect(popover).not.toBeInTheDocument();
271
- return [2 /*return*/];
272
- }
273
- });
274
- }); });
274
+ screen.getByLabelText('HCP Label, HCA Label, Company Label');
275
+ screen.getByText('HCP Label, HCA Label, Company Label');
276
+ screen.getByText('HCP Label, HCA Label');
277
+ screen.getByText('+1');
275
278
  });
276
279
  });