@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
@@ -1,7 +1,7 @@
1
1
  import { useContext, useMemo } from 'react';
2
2
  import { checkCanCreateAttribute, checkCanDeleteAttribute, checkCanEditAttribute } from '@reltio/mdm-sdk';
3
3
  import { useAttributeValueConfigPermissions } from '../contexts/ConfigPermissionsContext';
4
- import { AlwaysVisibleAttributesContext } from '../contexts/AllwaysVisibleAttributesContext';
4
+ import { AlwaysVisibleAttributesContext } from '../contexts/AlwaysVisibleAttributesContext';
5
5
  export var useAttributeValuePermissions = function (_a) {
6
6
  var attributeType = _a.attributeType, attributeValue = _a.attributeValue, isReltioCrosswalk = _a.isReltioCrosswalk, mode = _a.mode;
7
7
  var _b = useAttributeValueConfigPermissions(attributeValue.uri), configCanCreate = _b.canCreate, configCanUpdate = _b.canUpdate, configCanDelete = _b.canDelete;
@@ -1,16 +1,92 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
1
48
  import React from 'react';
2
- import { shallow } from 'enzyme';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
3
51
  import SimpleDropDownSelector from './SimpleDropDownSelector';
4
- import { DropDownValue } from './components/DropDownValue';
5
- import { DropDownPlaceholder } from './components/DropDownPlaceholder';
6
- import { DropDownSelector } from '../DropDownSelector';
7
52
  describe('SimpleDropDownSelector tests', function () {
8
- it('should render SimpleDropDownSelector with "components" prop', function () {
9
- var component = shallow(React.createElement(SimpleDropDownSelector, { label: "test" }));
10
- expect(component.find(DropDownSelector).length).toBe(1);
11
- expect(component.find(DropDownSelector).prop('components')).toEqual({
12
- SingleValue: DropDownValue,
13
- Placeholder: DropDownPlaceholder
53
+ var defaultProps = { label: 'Test label' };
54
+ var setUp = function (props) {
55
+ if (props === void 0) { props = {}; }
56
+ var user = userEvent.setup();
57
+ return __assign({ user: user }, render(React.createElement(SimpleDropDownSelector, __assign({}, defaultProps, props))));
58
+ };
59
+ it('should render SimpleDropDownSelector correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
60
+ var options, user, menuOptions;
61
+ return __generator(this, function (_a) {
62
+ switch (_a.label) {
63
+ case 0:
64
+ options = [
65
+ { label: 'test1', value: 'test1' },
66
+ { label: 'test2', value: 'test2' }
67
+ ];
68
+ user = setUp({ placeholder: 'testPlaceholder', options: options }).user;
69
+ expect(screen.getByText('Test label')).toBeInTheDocument();
70
+ expect(screen.getByRole('combobox')).toBeInTheDocument();
71
+ expect(screen.getByTestId('simple-drop-down-placeholder')).toHaveTextContent('testPlaceholder');
72
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
73
+ case 1:
74
+ _a.sent();
75
+ menuOptions = screen.getAllByRole('option');
76
+ expect(menuOptions).toHaveLength(2);
77
+ expect(menuOptions[0]).toHaveTextContent('test1');
78
+ expect(menuOptions[1]).toHaveTextContent('test2');
79
+ return [2 /*return*/];
80
+ }
14
81
  });
82
+ }); });
83
+ it('should render selected value correctly', function () {
84
+ var options = [
85
+ { label: 'test1', value: 'test1' },
86
+ { label: 'test2', value: 'test2' }
87
+ ];
88
+ setUp({ options: options, value: { label: 'test1', value: 'test1' } });
89
+ expect(screen.getByTestId('simple-drop-down-value')).toHaveTextContent('test1');
90
+ expect(screen.queryByTestId('simple-drop-down-placeholder')).not.toBeInTheDocument();
15
91
  });
16
92
  });
@@ -15,5 +15,5 @@ import { useStyles } from './styles';
15
15
  export var DropDownPlaceholder = function (_a) {
16
16
  var innerProps = _a.innerProps, children = _a.children;
17
17
  var styles = useStyles();
18
- return (React.createElement(Typography, __assign({ className: styles.placeholder }, innerProps), children));
18
+ return (React.createElement(Typography, __assign({ "data-reltio-id": "simple-drop-down-placeholder", className: styles.placeholder }, innerProps), children));
19
19
  };
@@ -4,5 +4,5 @@ import { useStyles } from './styles';
4
4
  export var DropDownValue = function (_a) {
5
5
  var menuIsOpen = _a.selectProps.menuIsOpen, label = _a.data.label;
6
6
  var styles = useStyles();
7
- return (!menuIsOpen && (React.createElement(Typography, { variant: "body2", classes: { root: styles.value } }, label)));
7
+ return (!menuIsOpen && (React.createElement(Typography, { "data-reltio-id": "simple-drop-down-value", variant: "body2", classes: { root: styles.value } }, label)));
8
8
  };
@@ -1,40 +1,136 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
1
48
  import React from 'react';
2
- import { mount, shallow } from 'enzyme';
3
- import { act } from 'react-dom/test-utils';
4
- import { SimpleMatchRules } from '../SimpleMatchRules';
5
- import { SimpleMatchRulesBlock, MatchRuleBadgeWithTooltip } from './SimpleMatchRulesBlock';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
51
+ import { SimpleMatchRulesBlock } from './SimpleMatchRulesBlock';
6
52
  describe('SimpleMatchRulesBlock test', function () {
7
- var getMatchRuleBadgeWithTooltip = function (component) { return component.find(MatchRuleBadgeWithTooltip); };
8
- var getMatchRulesTooltip = function (component) { return getMatchRuleBadgeWithTooltip(component).prop('tooltipTitle'); };
9
- var getSimpleMatchRules = function (component) { return component.find(SimpleMatchRules); };
10
53
  var matchRules = [
11
54
  { uri: 'uri1', label: 'label1' },
12
55
  { uri: 'uri2', label: 'label2' }
13
56
  ];
14
- it('should provide props to MatchRulesTooltip', function () {
15
- var component = mount(React.createElement(SimpleMatchRulesBlock, { isMlMatch: true, matchRules: matchRules }));
16
- var matchRulesTooltip = getMatchRulesTooltip(component);
17
- expect(matchRulesTooltip.props.matchRules).toBe(matchRules);
18
- expect(matchRulesTooltip.props.isMlMatch).toBe(true);
19
- });
20
- it('should expand rule list', function () {
21
- var component = mount(React.createElement(SimpleMatchRulesBlock, { isMlMatch: true, matchRules: matchRules }));
22
- expect(getSimpleMatchRules(component)).toHaveLength(0);
23
- act(function () {
24
- getMatchRuleBadgeWithTooltip(component).prop('onExpand')();
57
+ var setUp = function (props) {
58
+ if (props === void 0) { props = {}; }
59
+ var user = userEvent.setup();
60
+ return __assign({ user: user }, render(React.createElement(SimpleMatchRulesBlock, __assign({ isMlMatch: true, matchRules: matchRules }, props))));
61
+ };
62
+ it('should provide props to MatchRulesTooltip', function () { return __awaiter(void 0, void 0, void 0, function () {
63
+ var user;
64
+ return __generator(this, function (_a) {
65
+ switch (_a.label) {
66
+ case 0:
67
+ user = setUp().user;
68
+ expect(screen.getByTestId('arrow-expand-button')).toBeInTheDocument();
69
+ expect(screen.getByTestId('simple-match-rules-block')).toBeInTheDocument();
70
+ return [4 /*yield*/, user.hover(screen.getByText('AI-powered'))];
71
+ case 1:
72
+ _a.sent();
73
+ expect(screen.queryByText('Match rules')).not.toBeInTheDocument();
74
+ expect(screen.getByRole('tooltip')).toBeInTheDocument();
75
+ expect(screen.getByText('- label1')).toBeInTheDocument();
76
+ expect(screen.getByText('- label2')).toBeInTheDocument();
77
+ return [2 /*return*/];
78
+ }
25
79
  });
26
- component.update();
27
- var simpleMatchRules = getSimpleMatchRules(component);
28
- expect(simpleMatchRules).toHaveLength(1);
29
- expect(simpleMatchRules.prop('matchRules')).toBe(matchRules);
30
- expect(simpleMatchRules.prop('isMlMatch')).toBe(true);
31
- });
32
- it('should render correct MatchRuleBadgeWithTooltip for Ml match', function () {
33
- var component = shallow(React.createElement(SimpleMatchRulesBlock, { isMlMatch: true, matchRules: matchRules }));
34
- expect(getMatchRuleBadgeWithTooltip(component).text()).toBe('<AIPowered />AI-powered');
35
- });
36
- it('should render correct MatchRuleBadgeWithTooltip for non Ml match', function () {
37
- var component = shallow(React.createElement(SimpleMatchRulesBlock, { matchRules: matchRules }));
38
- expect(getMatchRuleBadgeWithTooltip(component).text()).toBe('Rules');
39
- });
80
+ }); });
81
+ it('should expand rule list', function () { return __awaiter(void 0, void 0, void 0, function () {
82
+ var user;
83
+ return __generator(this, function (_a) {
84
+ switch (_a.label) {
85
+ case 0:
86
+ user = setUp().user;
87
+ expect(screen.queryByTestId('simple-match-rules')).not.toBeInTheDocument();
88
+ return [4 /*yield*/, user.click(screen.getByTestId('arrow-expand-button'))];
89
+ case 1:
90
+ _a.sent();
91
+ expect(screen.getByTestId('simple-match-rules-block')).toBeInTheDocument();
92
+ expect(screen.getByText('AI-powered')).toBeInTheDocument();
93
+ expect(screen.getByTestId('simple-match-rules')).toBeInTheDocument();
94
+ expect(screen.getByText('• label1')).toBeInTheDocument();
95
+ expect(screen.getByText('• label2')).toBeInTheDocument();
96
+ return [2 /*return*/];
97
+ }
98
+ });
99
+ }); });
100
+ it('should render correct MatchRuleBadgeWithTooltip for Ml match', function () { return __awaiter(void 0, void 0, void 0, function () {
101
+ var user;
102
+ return __generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0:
105
+ user = setUp({ isMlMatch: true }).user;
106
+ expect(screen.queryByTestId('simple-match-rules')).not.toBeInTheDocument();
107
+ return [4 /*yield*/, user.hover(screen.getByText('AI-powered'))];
108
+ case 1:
109
+ _a.sent();
110
+ expect(screen.queryByText('Match rules')).not.toBeInTheDocument();
111
+ expect(screen.getByRole('tooltip')).toBeInTheDocument();
112
+ expect(screen.getByText('- label1')).toBeInTheDocument();
113
+ expect(screen.getByText('- label2')).toBeInTheDocument();
114
+ return [2 /*return*/];
115
+ }
116
+ });
117
+ }); });
118
+ it('should render correct MatchRuleBadgeWithTooltip for non Ml match', function () { return __awaiter(void 0, void 0, void 0, function () {
119
+ var user;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ user = setUp({ isMlMatch: false }).user;
124
+ expect(screen.queryByTestId('simple-match-rules')).not.toBeInTheDocument();
125
+ return [4 /*yield*/, user.hover(screen.getByText('Rules'))];
126
+ case 1:
127
+ _a.sent();
128
+ expect(screen.queryByText('Match rules')).toBeInTheDocument();
129
+ expect(screen.getByRole('tooltip')).toBeInTheDocument();
130
+ expect(screen.getByText('- label1')).toBeInTheDocument();
131
+ expect(screen.getByText('- label2')).toBeInTheDocument();
132
+ return [2 /*return*/];
133
+ }
134
+ });
135
+ }); });
40
136
  });
@@ -1,37 +1,110 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
1
48
  import React from 'react';
2
- import { mount } from 'enzyme';
3
- import IconButton from '@mui/material/IconButton';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
4
51
  import DeleteIcon from '@mui/icons-material/Delete';
5
52
  import { SmallIconButton } from './SmallIconButton';
53
+ import { getMuiIconByName } from '../test-utils';
54
+ var defaultProps = {
55
+ icon: DeleteIcon
56
+ };
57
+ var setUp = function (props) {
58
+ if (props === void 0) { props = {}; }
59
+ var user = userEvent.setup();
60
+ return __assign({ user: user }, render(React.createElement(SmallIconButton, __assign({}, defaultProps, props))));
61
+ };
6
62
  describe('SmallIconButton tests', function () {
7
63
  it('should render main parts', function () {
8
- var component = mount(React.createElement(SmallIconButton, null));
9
- expect(component.find(IconButton)).toHaveLength(1);
10
- expect(component.find('svg')).toHaveLength(0);
11
- });
12
- it('should call onClick() on button click', function () {
13
- var onClick = jest.fn();
14
- var component = mount(React.createElement(SmallIconButton, { onClick: onClick }));
15
- component.find(IconButton).find('button').simulate('click');
16
- expect(onClick).toHaveBeenCalled();
17
- });
18
- it('should not fail when onClick prop is undefined', function () {
19
- var component = mount(React.createElement(SmallIconButton, null));
20
- component.find(IconButton).find('button').simulate('click');
64
+ setUp();
65
+ expect(screen.getByRole('button')).toBeInTheDocument();
66
+ expect(getMuiIconByName('Delete')).toBeInTheDocument();
21
67
  });
22
- it('should render icon', function () {
23
- var component = mount(React.createElement(SmallIconButton, { icon: DeleteIcon }));
24
- expect(component.find(IconButton)).toHaveLength(1);
25
- expect(component.find('svg')).toHaveLength(1);
68
+ it('should render without icon', function () {
69
+ setUp({ icon: undefined });
70
+ expect(screen.getByRole('button')).toBeInTheDocument();
26
71
  });
72
+ it('should call onClick() on button click', function () { return __awaiter(void 0, void 0, void 0, function () {
73
+ var onClick, user;
74
+ return __generator(this, function (_a) {
75
+ switch (_a.label) {
76
+ case 0:
77
+ onClick = jest.fn();
78
+ user = setUp({ onClick: onClick }).user;
79
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
80
+ case 1:
81
+ _a.sent();
82
+ expect(onClick).toHaveBeenCalled();
83
+ return [2 /*return*/];
84
+ }
85
+ });
86
+ }); });
87
+ it('should not fail when onClick prop is undefined', function () { return __awaiter(void 0, void 0, void 0, function () {
88
+ var user;
89
+ return __generator(this, function (_a) {
90
+ switch (_a.label) {
91
+ case 0:
92
+ user = setUp({ onClick: undefined }).user;
93
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
94
+ case 1:
95
+ _a.sent();
96
+ return [2 /*return*/];
97
+ }
98
+ });
99
+ }); });
27
100
  it('should use XS styles by default', function () {
28
- var component = mount(React.createElement(SmallIconButton, { icon: DeleteIcon }));
29
- expect(component.find(IconButton).prop('classes').root.includes('rootXS')).toBe(true);
30
- expect(component.find('svg').prop('className').includes('iconXS')).toBe(true);
101
+ setUp({ icon: DeleteIcon });
102
+ var button = screen.getByRole('button');
103
+ expect(button.className.includes('rootXS')).toBe(true);
31
104
  });
32
105
  it('should apply S styles if size is S', function () {
33
- var component = mount(React.createElement(SmallIconButton, { icon: DeleteIcon, size: "S" }));
34
- expect(component.find(IconButton).prop('classes').root.includes('rootS')).toBe(true);
35
- expect(component.find('svg').prop('className').includes('iconS')).toBe(true);
106
+ setUp({ icon: DeleteIcon, size: 'S' });
107
+ var button = screen.getByRole('button');
108
+ expect(button.className.includes('rootS')).toBe(true);
36
109
  });
37
110
  });
@@ -1,75 +1,113 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
1
48
  import React from 'react';
2
- import { mount, shallow } from 'enzyme';
3
- import { prop } from 'ramda';
49
+ import { render, screen, within } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
4
51
  import { TableWithBars } from './TableWithBars';
5
- import { BasicTable } from '../BasicTable';
6
- import { HeadCellRenderer } from './components/HeadCellRenderer';
7
- import { AttributeCellRenderer } from './components/AttributeCellRenderer';
8
- import { NumberCellValueRenderer } from './components/NumberCellValueRenderer';
9
- jest.mock('react-virtualized-auto-sizer', function () {
10
- return jest.fn().mockImplementation(function (_a) {
11
- var children = _a.children;
12
- return React.createElement("div", null, children());
13
- });
14
- });
52
+ import { mockBasicTableSizing } from '../test-utils';
15
53
  describe('TableWithBars', function () {
16
54
  var data = [
17
55
  { label: 'Attribute 01', value: 10000, group: 'attr01' },
18
56
  { label: 'Attribute 02', value: 20, group: 'attr02' },
19
57
  { label: 'Attribute 03', value: 3, group: 'attr03' }
20
58
  ];
59
+ var setUp = function (props) {
60
+ if (props === void 0) { props = {}; }
61
+ var user = userEvent.setup();
62
+ return __assign({ user: user }, render(React.createElement(TableWithBars, __assign({ width: 600, height: 300, data: data }, props))));
63
+ };
21
64
  it('should render BasicTable', function () {
22
- var expectedColumnsData = [
23
- {
24
- headCellRenderer: HeadCellRenderer,
25
- id: 'label',
26
- label: 'Attributes',
27
- initialWidth: 240,
28
- resizable: false,
29
- rowCellValueRenderer: AttributeCellRenderer
30
- },
31
- {
32
- headCellRenderer: HeadCellRenderer,
33
- id: 'value',
34
- label: 'No of Profiles',
35
- maxValue: 10000,
36
- initialWidth: 360,
37
- resizable: false,
38
- rowCellValueRenderer: NumberCellValueRenderer
39
- }
40
- ];
41
- var wrapper = shallow(React.createElement(TableWithBars, { width: 600, height: 300, data: data }));
42
- var tableChart = wrapper.find(BasicTable);
43
- expect(tableChart).toHaveLength(1);
44
- expect(tableChart.prop('columnsData')).toEqual(expectedColumnsData);
45
- expect(tableChart.prop('rowsData')).toEqual(data);
65
+ var unmockTableSizing = mockBasicTableSizing();
66
+ setUp();
67
+ var headCells = screen.getAllByTestId('table-with-bar-head-cell');
68
+ expect(headCells).toHaveLength(2);
69
+ expect(headCells[0]).toHaveTextContent('Attributes');
70
+ expect(headCells[1]).toHaveTextContent('No of Profiles');
71
+ var firstRowCells = screen.getAllByTestId('base-cell-0');
72
+ expect(firstRowCells).toHaveLength(2);
73
+ expect(within(firstRowCells[0]).getByTestId('attribute-cell-renderer')).toHaveTextContent('Attribute 01');
74
+ expect(firstRowCells[1]).toHaveTextContent('10.0K');
75
+ expect(firstRowCells[1].querySelector('.bar')).toHaveStyle('width: 100%');
76
+ var secondRowCells = screen.getAllByTestId('base-cell-1');
77
+ expect(secondRowCells).toHaveLength(2);
78
+ expect(within(secondRowCells[0]).getByTestId('attribute-cell-renderer')).toHaveTextContent('Attribute 02');
79
+ expect(secondRowCells[1]).toHaveTextContent('20');
80
+ expect(secondRowCells[1].querySelector('.bar')).toHaveStyle('width: 0.2%');
81
+ unmockTableSizing();
46
82
  });
47
83
  it('should render TableWithBars with headers from options', function () {
48
- var headers = ['Test header 1', 'Test header 2'];
49
- var wrapper = shallow(React.createElement(TableWithBars, { width: 600, height: 300, data: data, options: { headers: headers } }));
50
- var tableChart = wrapper.find(BasicTable);
51
- expect(tableChart).toHaveLength(1);
52
- expect(tableChart.prop('columnsData').map(prop('label'))).toEqual(headers);
84
+ setUp({ options: { headers: ['Test header 1', 'Test header 2'] } });
85
+ var headCells = screen.getAllByTestId('table-with-bar-head-cell');
86
+ expect(headCells).toHaveLength(2);
87
+ expect(headCells[0]).toHaveTextContent('Test header 1');
88
+ expect(headCells[1]).toHaveTextContent('Test header 2');
53
89
  });
54
90
  it('should not render second column when showValues = false', function () {
55
- var wrapper = shallow(React.createElement(TableWithBars, { width: 600, height: 300, data: data, options: { showValues: false } }));
56
- var tableChart = wrapper.find(BasicTable);
57
- expect(tableChart).toHaveLength(1);
58
- expect(tableChart.prop('columnsData')).toEqual([
59
- {
60
- headCellRenderer: HeadCellRenderer,
61
- id: 'label',
62
- label: 'Attributes',
63
- initialWidth: 240,
64
- resizable: false,
65
- rowCellValueRenderer: AttributeCellRenderer
66
- }
67
- ]);
68
- });
69
- it('should call props.onItemClick on label click', function () {
70
- var onItemClick = jest.fn();
71
- var wrapper = mount(React.createElement(TableWithBars, { width: 600, height: 300, data: data, onItemClick: onItemClick }));
72
- wrapper.find('.attribute').first().simulate('click');
73
- expect(onItemClick).toHaveBeenCalledWith('attr01');
91
+ setUp({ options: { showValues: false } });
92
+ var headCells = screen.getAllByTestId('table-with-bar-head-cell');
93
+ expect(headCells).toHaveLength(1);
94
+ expect(headCells[0]).toHaveTextContent('Attributes');
74
95
  });
96
+ it('should call props.onItemClick on label click', function () { return __awaiter(void 0, void 0, void 0, function () {
97
+ var unmockTableSizing, onItemClick, user;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ unmockTableSizing = mockBasicTableSizing();
102
+ onItemClick = jest.fn();
103
+ user = setUp({ onItemClick: onItemClick }).user;
104
+ return [4 /*yield*/, user.click(screen.getByText('Attribute 01'))];
105
+ case 1:
106
+ _a.sent();
107
+ expect(onItemClick).toHaveBeenCalledWith('attr01');
108
+ unmockTableSizing();
109
+ return [2 /*return*/];
110
+ }
111
+ });
112
+ }); });
75
113
  });
@@ -9,7 +9,7 @@ export var AttributeCellRenderer = function (_a) {
9
9
  var styles = useStyles();
10
10
  var clickable = useClickableChartStyle(onClick);
11
11
  return (React.createElement(ExpandedValueTooltip, { value: value },
12
- React.createElement("div", { className: classnames(styles.attribute, clickable), onClick: onClick }, value)));
12
+ React.createElement("div", { "data-reltio-id": "attribute-cell-renderer", className: classnames(styles.attribute, clickable), onClick: onClick }, value)));
13
13
  };
14
14
  export default withTableContext(function (_a, _b) {
15
15
  var onItemClick = _a.onItemClick;
@@ -28,7 +28,7 @@ import { useStyles } from './styles';
28
28
  export var HeadCellRenderer = function (_a) {
29
29
  var className = _a.className, headCellData = _a.headCellData, otherProps = __rest(_a, ["className", "headCellData"]);
30
30
  var styles = useStyles();
31
- return (React.createElement("div", { className: classnames(styles.headCell, className) },
31
+ return (React.createElement("div", { "data-reltio-id": "table-with-bar-head-cell", className: classnames(styles.headCell, className) },
32
32
  React.createElement(DefaultHeadCellRenderer, __assign({}, otherProps, { headCellData: __assign(__assign({}, headCellData), { label: (React.createElement(ExpandedValueTooltip, { value: headCellData.label },
33
33
  React.createElement("div", { className: styles.headLabel }, headCellData.label))) }) }))));
34
34
  };