@reltio/components 1.4.2071 → 1.4.2072

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 (174) hide show
  1. package/AttributesView/AttributesView.js +1 -1
  2. package/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -3
  3. package/ColumnsSettings/helpers.d.ts +3 -1
  4. package/ColumnsSettings/types.d.ts +8 -0
  5. package/CommentsContainer/CommentsContainer.js +1 -1
  6. package/ConfigureColumnsPopup/ConfigureColumnsPopup.d.ts +23 -40
  7. package/ConfigureColumnsPopup/ConfigureColumnsPopup.js +6 -26
  8. package/EditModeAttributesList/EditModeAttributesList.js +1 -1
  9. package/EditModeAttributesPager/EditModeAttributesPager.test.js +1 -1
  10. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +1 -1
  11. package/MetadataTypesSelector/MetadataTypesSelector.d.ts +2 -1
  12. package/MetadataTypesSelector/components/SelectMetadataTypesList/SelectMetadataTypesList.d.ts +5 -6
  13. package/MoreAttributesButton/useMoreAttributesItems.d.ts +1 -1
  14. package/ReadOnlyAttributesList/ReadOnlyAttributesList.js +1 -1
  15. package/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +1 -1
  16. package/ReadOnlyAttributesView/ReadOnlyAttributesView.js +1 -1
  17. package/ScrollableTabs/ScrollableTabs.test.js +69 -19
  18. package/SearchHighlighter/SearchHighlighter.test.js +18 -7
  19. package/SelectAttributesList/SelectAttributesList.d.ts +11 -6
  20. package/SelectAttributesList/SelectAttributesList.js +5 -2
  21. package/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.test.js +109 -60
  22. package/SidePanelContentHeader/SidePanelContentHeader.js +2 -2
  23. package/SidePanelContentHeader/SidePanelContentHeader.test.js +104 -0
  24. package/SidePanelEmptyState/SidePanelEmptyState.js +1 -1
  25. package/SidePanelEmptyState/SidePanelEmptyState.test.js +24 -0
  26. package/SimpleAttribute/SimpleAttribute.js +1 -1
  27. package/SimpleAttribute/SimpleAttribute.test.js +155 -80
  28. package/SimpleAttributeEditor/SimpleAttributeEditor.test.js +339 -330
  29. package/SimpleAttributeEditor/useAttributeValuePermissions.js +1 -1
  30. package/SimpleDropDownSelector/SimpleDropDownSelector.test.js +86 -10
  31. package/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.js +1 -1
  32. package/SimpleDropDownSelector/components/DropDownValue/DropDownValue.js +1 -1
  33. package/SimpleMatchRulesBlock/SimpleMatchRulesBlock.test.js +128 -32
  34. package/SmallIconButton/SmallIconButton.test.js +98 -25
  35. package/TableWithBars/TableWithBars.test.js +98 -60
  36. package/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.js +1 -1
  37. package/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.js +1 -1
  38. package/Tags/Tags.d.ts +0 -1
  39. package/Tags/Tags.test.js +8 -7
  40. package/TransitiveMatchBlock/TransitiveMatchBlock.test.js +78 -22
  41. package/TransitiveMatchRule/TransitiveMatchRule.test.js +78 -37
  42. package/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.js +1 -1
  43. package/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.test.js +12 -18
  44. package/UploadFileButton/UploadFileButton.d.ts +2 -2
  45. package/UploadFileButton/UploadFileButton.test.js +199 -0
  46. package/UploadImageDialog/UploadImageDialog.test.js +1 -0
  47. package/UploadImageDialog/components/DividerWithText/DividerWithText.js +1 -1
  48. package/UploadImageDialog/components/ErrorSnackbar/ErrorSnackbar.test.js +80 -22
  49. package/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.js +1 -1
  50. package/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.test.js +162 -49
  51. package/ValueChip/ValueChip.test.js +7 -23
  52. package/VirtualGroupedList/VirtualGroupedList.d.ts +19 -31
  53. package/VirtualGroupedList/VirtualGroupedList.js +11 -36
  54. package/VirtualGroupedList/VirtualGroupedList.test.js +224 -0
  55. package/VirtualGroupedList/helpers.d.ts +7 -2
  56. package/VirtualGroupedList/helpers.js +3 -1
  57. package/VirtualGroupedList/index.d.ts +1 -1
  58. package/VirtualGroupedList/types.d.ts +10 -6
  59. package/VirtualGroupedList/useScrollToFocusItem.d.ts +8 -5
  60. package/WhiteSearchInput/{WhiteSearchInput.spec.js → WhiteSearchInput.test.js} +3 -8
  61. package/cjs/AttributesView/AttributesView.js +2 -2
  62. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -3
  63. package/cjs/ColumnsSettings/helpers.d.ts +3 -1
  64. package/cjs/ColumnsSettings/types.d.ts +8 -0
  65. package/cjs/ColumnsSettings/types.js +2 -0
  66. package/cjs/CommentsContainer/CommentsContainer.js +1 -1
  67. package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.d.ts +23 -40
  68. package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.js +6 -26
  69. package/cjs/EditModeAttributesList/EditModeAttributesList.js +2 -2
  70. package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +2 -2
  71. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +2 -2
  72. package/cjs/MetadataTypesSelector/MetadataTypesSelector.d.ts +2 -1
  73. package/cjs/MetadataTypesSelector/components/SelectMetadataTypesList/SelectMetadataTypesList.d.ts +5 -6
  74. package/cjs/MoreAttributesButton/useMoreAttributesItems.d.ts +1 -1
  75. package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.js +2 -2
  76. package/cjs/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +2 -2
  77. package/cjs/ReadOnlyAttributesView/ReadOnlyAttributesView.js +2 -2
  78. package/cjs/ScrollableTabs/ScrollableTabs.test.js +69 -19
  79. package/cjs/SearchHighlighter/SearchHighlighter.test.js +18 -7
  80. package/cjs/SelectAttributesList/SelectAttributesList.d.ts +11 -6
  81. package/cjs/SelectAttributesList/SelectAttributesList.js +5 -2
  82. package/cjs/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.test.js +109 -60
  83. package/cjs/SidePanelContentHeader/SidePanelContentHeader.js +2 -2
  84. package/cjs/SidePanelContentHeader/SidePanelContentHeader.test.js +109 -0
  85. package/cjs/SidePanelEmptyState/SidePanelEmptyState.js +1 -1
  86. package/cjs/SidePanelEmptyState/SidePanelEmptyState.test.js +29 -0
  87. package/cjs/SimpleAttribute/SimpleAttribute.js +1 -1
  88. package/cjs/SimpleAttribute/SimpleAttribute.test.js +155 -80
  89. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.test.js +338 -352
  90. package/cjs/SimpleAttributeEditor/useAttributeValuePermissions.js +2 -2
  91. package/cjs/SimpleDropDownSelector/SimpleDropDownSelector.test.js +86 -10
  92. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.js +1 -1
  93. package/cjs/SimpleDropDownSelector/components/DropDownValue/DropDownValue.js +1 -1
  94. package/cjs/SimpleMatchRulesBlock/SimpleMatchRulesBlock.test.js +127 -31
  95. package/cjs/SmallIconButton/SmallIconButton.test.js +98 -25
  96. package/cjs/TableWithBars/TableWithBars.test.js +98 -60
  97. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.js +1 -1
  98. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.js +1 -1
  99. package/cjs/Tags/Tags.d.ts +0 -1
  100. package/cjs/Tags/Tags.test.js +8 -7
  101. package/cjs/TransitiveMatchBlock/TransitiveMatchBlock.test.js +77 -21
  102. package/cjs/TransitiveMatchRule/TransitiveMatchRule.test.js +78 -37
  103. package/cjs/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.js +1 -1
  104. package/cjs/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.test.js +12 -18
  105. package/cjs/UploadFileButton/UploadFileButton.d.ts +2 -2
  106. package/cjs/UploadFileButton/UploadFileButton.test.js +204 -0
  107. package/cjs/UploadImageDialog/UploadImageDialog.test.js +1 -0
  108. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.js +1 -1
  109. package/cjs/UploadImageDialog/components/ErrorSnackbar/ErrorSnackbar.test.js +80 -22
  110. package/cjs/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.js +1 -1
  111. package/cjs/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.test.js +162 -49
  112. package/cjs/ValueChip/ValueChip.test.js +7 -23
  113. package/cjs/VirtualGroupedList/VirtualGroupedList.d.ts +19 -31
  114. package/cjs/VirtualGroupedList/VirtualGroupedList.js +11 -36
  115. package/cjs/VirtualGroupedList/VirtualGroupedList.test.js +252 -0
  116. package/cjs/VirtualGroupedList/helpers.d.ts +7 -2
  117. package/cjs/VirtualGroupedList/helpers.js +3 -1
  118. package/cjs/VirtualGroupedList/index.d.ts +1 -1
  119. package/cjs/VirtualGroupedList/types.d.ts +10 -6
  120. package/cjs/VirtualGroupedList/useScrollToFocusItem.d.ts +8 -5
  121. package/cjs/WhiteSearchInput/{WhiteSearchInput.spec.js → WhiteSearchInput.test.js} +3 -8
  122. package/cjs/features/crosswalks/hooks/useAttributeActions.test.js +24 -25
  123. package/cjs/features/crosswalks/hooks/useCrosswalkActions.test.js +10 -11
  124. package/cjs/features/workflow/hooks/useChangeRequest.test.js +5 -6
  125. package/cjs/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +8 -9
  126. package/cjs/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
  127. package/features/crosswalks/hooks/useAttributeActions.test.js +1 -2
  128. package/features/crosswalks/hooks/useCrosswalkActions.test.js +1 -2
  129. package/features/workflow/hooks/useChangeRequest.test.js +1 -2
  130. package/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +1 -2
  131. package/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
  132. package/package.json +1 -1
  133. package/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -49
  134. package/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -24
  135. package/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -103
  136. package/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -13
  137. package/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -21
  138. package/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -20
  139. package/UploadFileButton/UploadFileButton.spec.js +0 -219
  140. package/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -9
  141. package/VirtualGroupedList/VirtualGroupedList.spec.js +0 -282
  142. package/cjs/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -54
  143. package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.d.ts +0 -1
  144. package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -29
  145. package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts +0 -1
  146. package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -108
  147. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts +0 -1
  148. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -18
  149. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts +0 -1
  150. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -26
  151. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts +0 -1
  152. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -25
  153. package/cjs/UploadFileButton/UploadFileButton.spec.d.ts +0 -1
  154. package/cjs/UploadFileButton/UploadFileButton.spec.js +0 -224
  155. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts +0 -1
  156. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -14
  157. package/cjs/VirtualGroupedList/VirtualGroupedList.spec.d.ts +0 -1
  158. package/cjs/VirtualGroupedList/VirtualGroupedList.spec.js +0 -287
  159. package/cjs/WhiteSearchInput/WhiteSearchInput.spec.d.ts +0 -1
  160. /package/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → ColumnsSettings/types.js} +0 -0
  161. /package/{SidePanelEmptyState/SidePanelEmptyState.spec.d.ts → SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
  162. /package/{SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts → SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
  163. /package/{SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts → UploadFileButton/UploadFileButton.test.d.ts} +0 -0
  164. /package/{TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts → VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
  165. /package/{TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
  166. /package/{UploadFileButton/UploadFileButton.spec.d.ts → cjs/SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
  167. /package/{UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts → cjs/SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
  168. /package/{VirtualGroupedList/VirtualGroupedList.spec.d.ts → cjs/UploadFileButton/UploadFileButton.test.d.ts} +0 -0
  169. /package/{WhiteSearchInput/WhiteSearchInput.spec.d.ts → cjs/VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
  170. /package/cjs/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
  171. /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
  172. /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
  173. /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
  174. /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
@@ -9,77 +9,126 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  import React from 'react';
13
- import { shallow, mount } from 'enzyme';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
14
51
  import { SelectorWithOnlyOptionAutoSelect } from './SelectorWithOnlyOptionAutoSelect';
15
52
  describe('SelectorWithOnlyOptionAutoSelect tests', function () {
53
+ var defaultProps = {
54
+ onChange: jest.fn(),
55
+ options: [],
56
+ value: null
57
+ };
58
+ var setUp = function (props) {
59
+ if (props === void 0) { props = {}; }
60
+ var user = userEvent.setup();
61
+ return __assign({ user: user }, render(React.createElement(SelectorWithOnlyOptionAutoSelect, __assign({}, defaultProps, props))));
62
+ };
16
63
  describe('options count > 1', function () {
17
- var props = {
18
- onChange: jest.fn(),
19
- options: [
20
- {
21
- value: '1',
22
- label: 'First'
23
- },
24
- {
25
- value: '2',
26
- label: 'Second'
64
+ var options = [
65
+ { value: '1', label: 'First' },
66
+ { value: '2', label: 'Second' }
67
+ ];
68
+ it('should render DropDownEditor', function () { return __awaiter(void 0, void 0, void 0, function () {
69
+ var user, select;
70
+ return __generator(this, function (_a) {
71
+ switch (_a.label) {
72
+ case 0:
73
+ user = setUp({ options: options, value: '1' }).user;
74
+ select = screen.getByRole('button');
75
+ expect(screen.getByText('First')).toBeInTheDocument();
76
+ expect(select).toBeInTheDocument();
77
+ return [4 /*yield*/, user.click(select)];
78
+ case 1:
79
+ _a.sent();
80
+ expect(screen.getByRole('option', { name: 'First' })).toBeInTheDocument();
81
+ expect(screen.getByRole('option', { name: 'Second' })).toBeInTheDocument();
82
+ return [2 /*return*/];
27
83
  }
28
- ],
29
- value: '1'
30
- };
31
- it('should render DropDownEditor', function () {
32
- var wrapper = shallow(React.createElement(SelectorWithOnlyOptionAutoSelect, __assign({}, props)));
33
- expect(wrapper.find('DropDownEditor').props()).toMatchObject({
34
- value: props.value,
35
- entries: [
36
- {
37
- value: '1',
38
- label: 'First'
39
- },
40
- {
41
- value: '2',
42
- label: 'Second'
43
- }
44
- ]
45
84
  });
46
- });
47
- it('should call props.onChange on value change', function () {
48
- var wrapper = shallow(React.createElement(SelectorWithOnlyOptionAutoSelect, __assign({}, props)));
49
- expect(props.onChange).not.toHaveBeenCalled();
50
- var newValue = '2';
51
- wrapper.find('DropDownEditor').simulate('change', newValue);
52
- expect(props.onChange).toHaveBeenCalledWith(newValue);
53
- wrapper.find('DropDownEditor').simulate('change', '');
54
- expect(props.onChange).toHaveBeenCalledWith(null);
55
- });
56
- it('should render empty option if empty label specified', function () {
57
- var emptyLabel = 'EMPTY_LABEL';
58
- var wrapper = shallow(React.createElement(SelectorWithOnlyOptionAutoSelect, __assign({}, props, { emptyLabel: emptyLabel })));
59
- expect(wrapper.find('DropDownEditor').prop('entries')).toContainEqual({
60
- value: '',
61
- label: emptyLabel
85
+ }); });
86
+ it('should call props.onChange on value change', function () { return __awaiter(void 0, void 0, void 0, function () {
87
+ var user;
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0:
91
+ user = setUp({ options: options }).user;
92
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
93
+ case 1:
94
+ _a.sent();
95
+ return [4 /*yield*/, user.click(screen.getByRole('option', { name: 'Second' }))];
96
+ case 2:
97
+ _a.sent();
98
+ expect(defaultProps.onChange).toHaveBeenCalledWith('2');
99
+ return [2 /*return*/];
100
+ }
62
101
  });
63
- });
102
+ }); });
103
+ it('should render empty option if empty label specified', function () { return __awaiter(void 0, void 0, void 0, function () {
104
+ var emptyLabel, user;
105
+ return __generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0:
108
+ emptyLabel = 'EMPTY_LABEL';
109
+ user = setUp({ options: options, value: '1', emptyLabel: emptyLabel }).user;
110
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
111
+ case 1:
112
+ _a.sent();
113
+ return [4 /*yield*/, user.click(screen.getByRole('option', { name: emptyLabel }))];
114
+ case 2:
115
+ _a.sent();
116
+ expect(defaultProps.onChange).toHaveBeenCalledWith(null);
117
+ return [2 /*return*/];
118
+ }
119
+ });
120
+ }); });
64
121
  });
65
122
  describe('options count === 1', function () {
66
- var props = {
67
- onChange: jest.fn(),
68
- options: [
69
- {
70
- value: '1',
71
- label: 'Only'
72
- }
73
- ]
74
- };
123
+ var options = [{ value: '1', label: 'Only' }];
75
124
  it('should render label of the only option', function () {
76
- var wrapper = shallow(React.createElement(SelectorWithOnlyOptionAutoSelect, __assign({}, props)));
77
- expect(wrapper.find('DropDownEditor')).toHaveLength(0);
78
- expect(wrapper.text()).toBe('Only');
125
+ setUp({ options: options });
126
+ expect(screen.getByText('Only')).toBeInTheDocument();
127
+ expect(screen.queryByRole('button')).not.toBeInTheDocument();
79
128
  });
80
- it('should autoselect value of the only option', function () {
81
- mount(React.createElement(SelectorWithOnlyOptionAutoSelect, __assign({}, props)));
82
- expect(props.onChange).toHaveBeenCalledWith('1');
129
+ it('should select automatically value of the only option', function () {
130
+ setUp({ options: options, value: null });
131
+ expect(defaultProps.onChange).toHaveBeenCalledWith('1');
83
132
  });
84
133
  });
85
134
  });
@@ -11,9 +11,9 @@ export var SidePanelContentHeader = function (_a) {
11
11
  return (React.createElement("div", { className: styles.container },
12
12
  React.createElement(SmallIconButtonWithTooltip, { size: "L", icon: CloseIcon, onClick: onClose, className: styles.icon, tooltipTitle: i18n.text('Close') }),
13
13
  content || (React.createElement(React.Fragment, null,
14
- React.createElement(Typography, { variant: "h6" }, mainTitle),
14
+ React.createElement(Typography, { "data-reltio-id": "content-header-title", variant: "h6" }, mainTitle),
15
15
  secondTitle && (React.createElement(React.Fragment, null,
16
- React.createElement(Divider, { orientation: "vertical", flexItem: true, className: styles.divider }),
16
+ React.createElement(Divider, { "data-reltio-id": "content-header-divider", orientation: "vertical", flexItem: true, className: styles.divider }),
17
17
  React.createElement(Typography, { variant: "body1", color: "textSecondary", className: styles.secondTitle }, secondTitle))),
18
18
  rightContent))));
19
19
  };
@@ -0,0 +1,104 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import React from 'react';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
51
+ import { SidePanelContentHeader } from './SidePanelContentHeader';
52
+ import { getMuiIconByName } from '../test-utils';
53
+ describe('SidePanelContentHeader test', function () {
54
+ var mainTitle = 'mainTitle';
55
+ var secondTitle = 'secondTitle';
56
+ var rightContent = 'rightContent';
57
+ var defaultProps = {
58
+ onClose: jest.fn(),
59
+ mainTitle: mainTitle,
60
+ secondTitle: secondTitle,
61
+ rightContent: rightContent
62
+ };
63
+ var setUp = function (props) {
64
+ if (props === void 0) { props = {}; }
65
+ var user = userEvent.setup();
66
+ return __assign({ user: user }, render(React.createElement(SidePanelContentHeader, __assign({}, defaultProps, props))));
67
+ };
68
+ it('should renders all component well', function () {
69
+ setUp();
70
+ expect(screen.getByText(mainTitle)).toBeInTheDocument();
71
+ expect(screen.getByTestId('content-header-divider')).toBeInTheDocument();
72
+ expect(screen.getByText(secondTitle)).toBeInTheDocument();
73
+ expect(screen.getByText(rightContent)).toBeInTheDocument();
74
+ var closeButton = screen.getByRole('button');
75
+ expect(getMuiIconByName('Close', closeButton)).toBeInTheDocument();
76
+ });
77
+ it('should renders component with content', function () {
78
+ var textContent = 'Test content';
79
+ var content = React.createElement("div", null, textContent);
80
+ setUp({ content: content });
81
+ expect(screen.getByText(textContent)).toBeInTheDocument();
82
+ expect(screen.queryByTestId('content-header-title')).not.toBeInTheDocument();
83
+ });
84
+ it('should not render Divider with empty secondTitle', function () {
85
+ setUp({ secondTitle: '' });
86
+ expect(screen.queryByTestId('content-header-divider')).not.toBeInTheDocument();
87
+ });
88
+ it('should call onClose after button click', function () { return __awaiter(void 0, void 0, void 0, function () {
89
+ var onClose, user, closeButton;
90
+ return __generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0:
93
+ onClose = jest.fn();
94
+ user = setUp({ onClose: onClose }).user;
95
+ closeButton = screen.getByRole('button');
96
+ return [4 /*yield*/, user.click(closeButton)];
97
+ case 1:
98
+ _a.sent();
99
+ expect(onClose).toHaveBeenCalled();
100
+ return [2 /*return*/];
101
+ }
102
+ });
103
+ }); });
104
+ });
@@ -9,5 +9,5 @@ export var SidePanelEmptyState = function (_a) {
9
9
  React.createElement(IconRenderer, { className: styles.logo }),
10
10
  React.createElement("div", { className: styles.textBox },
11
11
  React.createElement(Typography, { className: styles.text }, text),
12
- secondaryText && React.createElement(Typography, { className: styles.secondaryText }, secondaryText))));
12
+ secondaryText && (React.createElement(Typography, { "data-reltio-id": "empty-state-secondary-text", className: styles.secondaryText }, secondaryText)))));
13
13
  };
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+ import { NoData as NoDataIcon } from '../icons';
4
+ import { SidePanelEmptyState } from './SidePanelEmptyState';
5
+ describe('SidePanelEmptyState test', function () {
6
+ it('should render correct default state', function () {
7
+ render(React.createElement(SidePanelEmptyState, { text: "test" }));
8
+ expect(screen.getByText('test')).toBeInTheDocument();
9
+ expect(screen.getByTestId('SvgAttributesList')).toBeInTheDocument();
10
+ expect(screen.queryByTestId('empty-state-secondary-text')).not.toBeInTheDocument();
11
+ });
12
+ it('should render icon passed in IconRenderer', function () {
13
+ render(React.createElement(SidePanelEmptyState, { IconRenderer: NoDataIcon, text: "test" }));
14
+ expect(screen.getByText('test')).toBeInTheDocument();
15
+ expect(screen.getByTestId('SvgNoData')).toBeInTheDocument();
16
+ expect(screen.queryByTestId('empty-state-secondary-text')).not.toBeInTheDocument();
17
+ });
18
+ it('should render secondary text', function () {
19
+ render(React.createElement(SidePanelEmptyState, { text: "test", secondaryText: "secondaryTest" }));
20
+ expect(screen.getByText('test')).toBeInTheDocument();
21
+ expect(screen.getByText('secondaryTest')).toBeInTheDocument();
22
+ expect(screen.getByTestId('SvgAttributesList')).toBeInTheDocument();
23
+ });
24
+ });
@@ -33,7 +33,7 @@ export var SimpleAttribute = function (_a) {
33
33
  _d[styles.ovFalse] = !isOv(attributeValue),
34
34
  _d)), "data-reltio-id": "reltio-attribute-value" },
35
35
  dataTypeValue,
36
- unmaskingControl)))) : (React.createElement("div", { className: classnames(className, styles.root, COMMENTS_CONTAINER_VISIBILITY_AREA, (_e = {},
36
+ unmaskingControl)))) : (React.createElement("div", { "data-reltio-id": "comments-container-visibility-area", className: classnames(className, styles.root, COMMENTS_CONTAINER_VISIBILITY_AREA, (_e = {},
37
37
  _e[highlightedClassName] = highlightedValuesUris.includes(attributeValue.uri),
38
38
  _e)) },
39
39
  React.createElement(PivotingTooltip, { value: attributeValue, attributeType: attributeType, key: attributeValue.uri },