@reltio/components 1.4.2051 → 1.4.2052

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 (171) hide show
  1. package/AttributeListItem/AttributeListItem.d.ts +1 -1
  2. package/ChartTooltip/ChartTooltip.js +3 -3
  3. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  4. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  5. package/DropDownMenuButton/DropDownMenuButton.js +1 -1
  6. package/HOCs/withAsyncMount/withAsyncMount.test.js +52 -52
  7. package/IgnoreButton/IgnoreButton.spec.js +109 -20
  8. package/Image/Image.d.ts +1 -1
  9. package/Image/Image.js +8 -8
  10. package/Image/Image.test.js +46 -51
  11. package/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  12. package/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  13. package/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  14. package/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  15. package/ImageAttributesLine/ImageAttributesLine.js +1 -1
  16. package/ImageAttributesLine/ImageAttributesLine.test.js +187 -193
  17. package/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  18. package/ImageAttributesLine/imageAttributeValues.test-data.js +22 -0
  19. package/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +315 -298
  20. package/ImageDetailsView/ImageDetailsView.test.js +529 -55
  21. package/ImageDetailsView/attributes.test-data.d.ts +4 -1
  22. package/ImageDetailsView/attributes.test-data.js +98 -1
  23. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  24. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  25. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  26. package/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  27. package/ImageDetailsView/helpers.test.js +4 -4
  28. package/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  29. package/ImportButton/ImportButton.test.js +94 -24
  30. package/InlineAttributesList/InlineAttributesList.test.js +22 -62
  31. package/InlineAttributesList/attributes.test-data.d.ts +4 -2
  32. package/InlineAttributesList/attributes.test-data.js +40 -1
  33. package/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  34. package/InlineAttributesPager/InlineAttributesPager.js +1 -4
  35. package/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  36. package/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  37. package/InlineComplexAttribute/InlineComplexAttribute.test.js +396 -182
  38. package/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  39. package/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  40. package/InlineReferenceAttribute/InlineReferenceAttribute.test.js +165 -107
  41. package/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +352 -346
  42. package/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +285 -194
  43. package/InternalLink/InternalLink.test.js +41 -11
  44. package/LookupEditor/LookupEditor.test.js +180 -44
  45. package/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  46. package/MapChart/MapChart.js +3 -8
  47. package/MapChart/MapChart.test.js +152 -188
  48. package/MapChart/components/Legend/Legend.js +3 -3
  49. package/MaskingSwitcher/MaskingSwitcher.js +1 -1
  50. package/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  51. package/SelectEditor/SelectEditor.d.ts +4 -10
  52. package/SelectEditor/SelectEditor.js +0 -4
  53. package/SelectEditor/SelectEditor.test.js +79 -9
  54. package/cjs/AttributeListItem/AttributeListItem.d.ts +1 -1
  55. package/cjs/ChartTooltip/ChartTooltip.js +3 -3
  56. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  57. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  58. package/cjs/DropDownMenuButton/DropDownMenuButton.js +1 -1
  59. package/cjs/HOCs/withAsyncMount/withAsyncMount.test.js +56 -56
  60. package/cjs/IgnoreButton/IgnoreButton.spec.js +109 -20
  61. package/cjs/Image/Image.d.ts +1 -1
  62. package/cjs/Image/Image.js +8 -8
  63. package/cjs/Image/Image.test.js +46 -51
  64. package/cjs/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  65. package/cjs/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  66. package/cjs/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  67. package/cjs/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  68. package/cjs/ImageAttributesLine/ImageAttributesLine.js +1 -1
  69. package/cjs/ImageAttributesLine/ImageAttributesLine.test.js +195 -224
  70. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  71. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.js +23 -1
  72. package/cjs/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +316 -299
  73. package/cjs/ImageDetailsView/ImageDetailsView.test.js +529 -55
  74. package/cjs/ImageDetailsView/attributes.test-data.d.ts +4 -1
  75. package/cjs/ImageDetailsView/attributes.test-data.js +99 -2
  76. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  77. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  78. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  79. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  80. package/cjs/ImageDetailsView/helpers.test.js +3 -3
  81. package/cjs/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  82. package/cjs/ImportButton/ImportButton.test.js +94 -24
  83. package/cjs/InlineAttributesList/InlineAttributesList.test.js +22 -62
  84. package/cjs/InlineAttributesList/attributes.test-data.d.ts +4 -2
  85. package/cjs/InlineAttributesList/attributes.test-data.js +41 -2
  86. package/cjs/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  87. package/cjs/InlineAttributesPager/InlineAttributesPager.js +1 -4
  88. package/cjs/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  89. package/cjs/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  90. package/cjs/InlineComplexAttribute/InlineComplexAttribute.test.js +395 -204
  91. package/cjs/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  92. package/cjs/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  93. package/cjs/InlineReferenceAttribute/InlineReferenceAttribute.test.js +164 -106
  94. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +351 -345
  95. package/cjs/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +307 -193
  96. package/cjs/InternalLink/InternalLink.test.js +40 -10
  97. package/cjs/LookupEditor/LookupEditor.test.js +178 -65
  98. package/cjs/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  99. package/cjs/MapChart/MapChart.js +3 -8
  100. package/cjs/MapChart/MapChart.test.js +152 -188
  101. package/cjs/MapChart/components/Legend/Legend.js +3 -3
  102. package/cjs/MaskingSwitcher/MaskingSwitcher.js +1 -1
  103. package/cjs/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  104. package/cjs/SelectEditor/SelectEditor.d.ts +4 -10
  105. package/cjs/SelectEditor/SelectEditor.js +0 -4
  106. package/cjs/SelectEditor/SelectEditor.test.js +79 -9
  107. package/cjs/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  108. package/cjs/hooks/useAsyncMount/useAsyncMount.js +1 -1
  109. package/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  110. package/hooks/useAsyncMount/useAsyncMount.js +1 -1
  111. package/package.json +1 -1
  112. package/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  113. package/HOCs/withTableContext/withTableContext.test.js +0 -41
  114. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  115. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -98
  116. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  117. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -99
  118. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  119. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -65
  120. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  121. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -306
  122. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  123. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -134
  124. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  125. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -99
  126. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  127. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -36
  128. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  129. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -161
  130. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  131. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -76
  132. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  133. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -104
  134. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  135. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -114
  136. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  137. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -177
  138. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  139. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -52
  140. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  141. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.js +0 -37
  142. package/cjs/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  143. package/cjs/HOCs/withTableContext/withTableContext.test.js +0 -46
  144. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  145. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -103
  146. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  147. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -104
  148. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  149. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -70
  150. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  151. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -311
  152. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  153. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -139
  154. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  155. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -104
  156. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  157. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -41
  158. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  159. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -166
  160. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  161. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -81
  162. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  163. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -109
  164. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  165. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -119
  166. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  167. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -182
  168. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  169. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -57
  170. package/cjs/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  171. package/cjs/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.js +0 -42
@@ -1,70 +1,65 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
17
  var react_1 = __importDefault(require("react"));
7
- var enzyme_1 = require("enzyme");
8
- var test_utils_1 = require("react-dom/test-utils");
9
- var DefaultImage_1 = __importDefault(require("../icons/DefaultImage"));
10
- var BrokenImage_1 = __importDefault(require("@mui/icons-material/BrokenImage"));
11
- var test_utils_2 = require("../test-utils");
18
+ var react_2 = require("@testing-library/react");
12
19
  var Image_1 = __importDefault(require("./Image"));
20
+ var setUp = function (props) {
21
+ if (props === void 0) { props = {}; }
22
+ return (0, react_2.render)(react_1.default.createElement(Image_1.default, __assign({ src: 'path' }, props)));
23
+ };
13
24
  describe('Image tests', function () {
14
25
  it('should render main parts', function () {
15
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Image_1.default, { src: 'path' }));
16
- expect(component.find('img')).toHaveLength(1);
26
+ setUp();
27
+ expect(react_2.screen.getByRole('img')).toBeInTheDocument();
17
28
  });
18
29
  it('should render default image', function () {
19
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Image_1.default, { src: '' }));
20
- expect(component.find('img')).toHaveLength(0);
21
- expect(component.find('.defaultContainer')).toHaveLength(1);
22
- expect(component.find(DefaultImage_1.default)).toHaveLength(1);
30
+ setUp({ src: '' });
31
+ expect(react_2.screen.queryByRole('img')).not.toBeInTheDocument();
32
+ expect(react_2.screen.getByTestId('SvgDefaultImage')).toBeInTheDocument();
23
33
  });
24
34
  it('should reset "default image" state after src prop changing', function () {
25
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Image_1.default, { src: '' }));
26
- expect(component.find('img')).toHaveLength(0);
27
- expect(component.find('.defaultContainer')).toHaveLength(1);
28
- expect(component.find(DefaultImage_1.default)).toHaveLength(1);
29
- component.setProps({ src: '123' });
30
- component.update();
31
- var image = component.find('img');
32
- expect(image).toHaveLength(1);
33
- expect(image.prop('className')).toContain('hideImage');
34
- expect(component.find('.defaultContainer')).toHaveLength(1);
35
- expect(component.find(DefaultImage_1.default)).toHaveLength(1);
36
- (0, test_utils_1.act)(function () {
37
- component.find('img').simulate('load');
38
- });
39
- (0, test_utils_2.rerenderWrapper)(component);
40
- expect(component.find('img')).toHaveLength(1);
41
- expect(component.find('.defaultContainer')).toHaveLength(0);
35
+ var rerender = setUp({ src: '' }).rerender;
36
+ expect(react_2.screen.queryByRole('img')).not.toBeInTheDocument();
37
+ expect(react_2.screen.getByTestId('SvgDefaultImage')).toBeInTheDocument();
38
+ rerender(react_1.default.createElement(Image_1.default, { src: '123' }));
39
+ var image = react_2.screen.getByRole('img');
40
+ expect(image).toBeInTheDocument();
41
+ expect(image).toHaveClass('hideImage');
42
+ react_2.fireEvent.load(image);
43
+ expect(react_2.screen.queryByTestId('default-container')).not.toBeInTheDocument();
42
44
  });
43
45
  it('should reset "default image" state when image loading was unsuccessful', function () {
44
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Image_1.default, { src: '123' }));
45
- var image = component.find('img');
46
- expect(image).toHaveLength(1);
47
- expect(image.prop('className')).toContain('hideImage');
48
- expect(component.find('.defaultContainer')).toHaveLength(1);
49
- expect(component.find(DefaultImage_1.default)).toHaveLength(1);
50
- expect(component.find(BrokenImage_1.default)).toHaveLength(0);
51
- (0, test_utils_1.act)(function () {
52
- image.simulate('error');
53
- });
54
- (0, test_utils_2.rerenderWrapper)(component);
55
- expect(component.find('img')).toHaveLength(0);
56
- expect(component.find('.defaultContainer')).toHaveLength(1);
57
- expect(component.find(BrokenImage_1.default)).toHaveLength(1);
58
- expect(component.find(DefaultImage_1.default)).toHaveLength(0);
46
+ setUp({ src: '123' });
47
+ var image = react_2.screen.getByRole('img');
48
+ expect(image).toBeInTheDocument();
49
+ expect(image).toHaveClass('hideImage');
50
+ expect(react_2.screen.getByTestId('SvgDefaultImage')).toBeInTheDocument();
51
+ expect(react_2.screen.queryByTestId('not-available-image')).not.toBeInTheDocument();
52
+ react_2.fireEvent.error(image);
53
+ expect(react_2.screen.queryByRole('img')).not.toBeInTheDocument();
54
+ expect(react_2.screen.getByTestId('not-available-image')).toBeInTheDocument();
55
+ expect(react_2.screen.queryByTestId('SvgDefaultImage')).not.toBeInTheDocument();
59
56
  });
60
57
  it('should render overlay if image is loaded', function () {
61
- var overlay = react_1.default.createElement("div", { className: "overlay" });
62
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Image_1.default, { src: '123', overlay: overlay }));
63
- expect(component.find('.overlay')).toHaveLength(0);
64
- (0, test_utils_1.act)(function () {
65
- component.find('img').simulate('load');
66
- });
67
- (0, test_utils_2.rerenderWrapper)(component);
68
- expect(component.find('.overlay')).toHaveLength(1);
58
+ var overlay = react_1.default.createElement("div", { "data-reltio-id": "overlay" });
59
+ setUp({ src: '123', overlay: overlay });
60
+ expect(react_2.screen.queryByTestId('overlay')).not.toBeInTheDocument();
61
+ var image = react_2.screen.getByRole('img');
62
+ react_2.fireEvent.load(image);
63
+ expect(react_2.screen.getByTestId('overlay')).toBeInTheDocument();
69
64
  });
70
65
  });
@@ -76,8 +76,9 @@ var ImageActionsOverlay = function (props) {
76
76
  _a)), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: selectionMode ? toggleSelected(selected) : handleClick, "data-reltio-id": "image-actions-overlay" },
77
77
  showCheckBox && (react_1.default.createElement(CheckedIcon_1.CheckedIcon, { className: styles.checkedIcon, checked: selected, onClick: toggleSelected(selected) })),
78
78
  showActions && (react_1.default.createElement("div", { className: styles.actions },
79
- react_1.default.createElement(SmallIconButton_1.SmallIconButton, { onClick: onDownload, className: styles.actionButton, icon: Download_1.default }),
79
+ react_1.default.createElement(SmallIconButton_1.SmallIconButton, { "data-reltio-id": "download-button", onClick: onDownload, className: styles.actionButton, icon: Download_1.default }),
80
80
  react_1.default.createElement(DropDownMenuButton_1.DropDownMenuButton, { menuId: "image-overlay-actions-".concat(id), buttonComponent: SmallIconButton_1.SmallIconButton, buttonProps: {
81
+ 'data-reltio-id': 'image-overlay-actions',
81
82
  icon: MoreVert_1.default,
82
83
  className: (0, classnames_1.default)(styles.actionButton, styles.dropDownMenuButton)
83
84
  }, menuItems: menuItems }))),
@@ -10,144 +10,226 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
13
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
51
  };
16
52
  Object.defineProperty(exports, "__esModule", { value: true });
17
53
  var react_1 = __importDefault(require("react"));
18
- var enzyme_1 = require("enzyme");
19
- var test_utils_1 = require("react-dom/test-utils");
20
- var Button_1 = __importDefault(require("@mui/material/Button"));
21
- var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
22
- var SmallIconButton_1 = require("../SmallIconButton");
23
- var DropDownMenuButton_1 = require("../DropDownMenuButton");
24
- var CheckedIcon_1 = require("./components/CheckedIcon");
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
25
56
  var ImageActionsOverlay_1 = __importDefault(require("./ImageActionsOverlay"));
57
+ var test_utils_1 = require("../test-utils");
58
+ var defaultProps = {
59
+ id: 'id',
60
+ canBeSelected: true,
61
+ selected: false,
62
+ selectionMode: false,
63
+ onDeselect: jest.fn(),
64
+ onSelect: jest.fn(),
65
+ onShareLink: jest.fn(),
66
+ onSetAsDefault: jest.fn(),
67
+ onDownload: jest.fn(),
68
+ onDelete: jest.fn()
69
+ };
70
+ var setUp = function (props) {
71
+ if (props === void 0) { props = {}; }
72
+ var user = user_event_1.default.setup({ skipHover: true });
73
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps, props))));
74
+ };
26
75
  describe('ImageActionsOverlay tests', function () {
27
- var defaultProps = {
28
- id: 'id',
29
- canBeSelected: true,
30
- selected: false,
31
- selectionMode: false,
32
- onDeselect: jest.fn(),
33
- onSelect: jest.fn(),
34
- onShareLink: jest.fn(),
35
- onSetAsDefault: jest.fn(),
36
- onDownload: jest.fn(),
37
- onDelete: jest.fn()
38
- };
39
- it('should render main parts on hover', function () {
40
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps)));
41
- expect(component.find(SmallIconButton_1.SmallIconButton)).toHaveLength(0);
42
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
43
- expect(component.find(CheckedIcon_1.CheckedIcon)).toHaveLength(0);
44
- (0, test_utils_1.act)(function () {
45
- component.simulate('mouseEnter');
46
- });
47
- component.update();
48
- expect(component.find(SmallIconButton_1.SmallIconButton)).toHaveLength(2);
49
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(1);
50
- expect(component.find(CheckedIcon_1.CheckedIcon)).toHaveLength(1);
51
- });
52
- it('should show only checkbox in selection mode', function () {
53
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps, { selectionMode: true })));
54
- expect(component.find(CheckedIcon_1.CheckedIcon)).toHaveLength(1);
55
- expect(component.find(SmallIconButton_1.SmallIconButton)).toHaveLength(0);
56
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
57
- (0, test_utils_1.act)(function () {
58
- component.simulate('mouseEnter');
59
- });
60
- component.update();
61
- expect(component.find(CheckedIcon_1.CheckedIcon)).toHaveLength(1);
62
- expect(component.find(SmallIconButton_1.SmallIconButton)).toHaveLength(0);
63
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
64
- });
65
- it('should select on click', function () {
66
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps, { selectionMode: true })));
67
- (0, test_utils_1.act)(function () {
68
- component.simulate('click');
69
- });
70
- component.update();
71
- expect(defaultProps.onSelect).toHaveBeenCalled();
72
- component.setProps({ selected: true });
73
- component.update();
74
- expect(component.find(CheckedIcon_1.CheckedIcon).prop('checked')).toBe(true);
75
- expect(component.find(Button_1.default)).toHaveLength(1);
76
- expect(component.find(SmallIconButton_1.SmallIconButton)).toHaveLength(0);
77
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
78
- });
79
- it('should deselect on click', function () {
80
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps, { selectionMode: true, selected: true })));
81
- expect(component.find(CheckedIcon_1.CheckedIcon).prop('checked')).toBe(true);
82
- expect(component.find(Button_1.default)).toHaveLength(1);
83
- (0, test_utils_1.act)(function () {
84
- component.simulate('click');
76
+ it('should render main parts on hover', function () { return __awaiter(void 0, void 0, void 0, function () {
77
+ var user;
78
+ return __generator(this, function (_a) {
79
+ switch (_a.label) {
80
+ case 0:
81
+ user = setUp().user;
82
+ expect(react_2.screen.queryByTestId('checked-button')).not.toBeInTheDocument();
83
+ expect(react_2.screen.queryByTestId('download-button')).not.toBeInTheDocument();
84
+ expect(react_2.screen.queryByTestId('image-overlay-actions')).not.toBeInTheDocument();
85
+ return [4 /*yield*/, user.hover(react_2.screen.getByTestId('image-actions-overlay'))];
86
+ case 1:
87
+ _a.sent();
88
+ expect(react_2.screen.getByTestId('checked-button')).toBeInTheDocument();
89
+ (0, test_utils_1.getMuiIconByName)('RadioButtonUnchecked', react_2.screen.getByTestId('checked-button'));
90
+ expect(react_2.screen.getByTestId('download-button')).toBeInTheDocument();
91
+ expect(react_2.screen.getByTestId('image-overlay-actions')).toBeInTheDocument();
92
+ return [2 /*return*/];
93
+ }
85
94
  });
86
- component.update();
87
- expect(defaultProps.onDeselect).toHaveBeenCalled();
88
- component.setProps({ selected: false });
89
- component.update();
90
- expect(component.find(CheckedIcon_1.CheckedIcon).prop('checked')).toBe(false);
91
- expect(component.find(Button_1.default)).toHaveLength(0);
92
- expect(component.find(SmallIconButton_1.SmallIconButton)).toHaveLength(0);
93
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
94
- });
95
- it('should deselect on button click', function () {
96
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps, { selectionMode: true, selected: true })));
97
- expect(component.find(CheckedIcon_1.CheckedIcon).prop('checked')).toBe(true);
98
- expect(component.find(Button_1.default)).toHaveLength(1);
99
- (0, test_utils_1.act)(function () {
100
- component.find(Button_1.default).find('button').simulate('click');
95
+ }); });
96
+ it('should show only checkbox in selection mode', function () { return __awaiter(void 0, void 0, void 0, function () {
97
+ var user;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ user = setUp({ selectionMode: true }).user;
102
+ (0, test_utils_1.getMuiIconByName)('RadioButtonUnchecked', react_2.screen.getByTestId('checked-button'));
103
+ expect(react_2.screen.queryByTestId('download-button')).not.toBeInTheDocument();
104
+ expect(react_2.screen.queryByTestId('image-overlay-actions')).not.toBeInTheDocument();
105
+ return [4 /*yield*/, user.hover(react_2.screen.getByTestId('image-actions-overlay'))];
106
+ case 1:
107
+ _a.sent();
108
+ (0, test_utils_1.getMuiIconByName)('RadioButtonUnchecked', react_2.screen.getByTestId('checked-button'));
109
+ expect(react_2.screen.queryByTestId('download-button')).not.toBeInTheDocument();
110
+ expect(react_2.screen.queryByTestId('image-overlay-actions')).not.toBeInTheDocument();
111
+ return [2 /*return*/];
112
+ }
101
113
  });
102
- component.update();
103
- expect(defaultProps.onDeselect).toHaveBeenCalled();
104
- component.setProps({ selected: false });
105
- component.update();
106
- expect(component.find(CheckedIcon_1.CheckedIcon).prop('checked')).toBe(false);
107
- expect(component.find(Button_1.default)).toHaveLength(0);
108
- expect(component.find(SmallIconButton_1.SmallIconButton)).toHaveLength(0);
109
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
110
- });
111
- it('should call onDownload prop', function () {
112
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps)));
113
- (0, test_utils_1.act)(function () {
114
- component.simulate('mouseEnter');
114
+ }); });
115
+ it('should select on click', function () { return __awaiter(void 0, void 0, void 0, function () {
116
+ var _a, user, rerender;
117
+ return __generator(this, function (_b) {
118
+ switch (_b.label) {
119
+ case 0:
120
+ _a = setUp({ selectionMode: true }), user = _a.user, rerender = _a.rerender;
121
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('image-actions-overlay'))];
122
+ case 1:
123
+ _b.sent();
124
+ expect(defaultProps.onSelect).toHaveBeenCalled();
125
+ rerender(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps, { selectionMode: true, selected: true })));
126
+ (0, test_utils_1.getMuiIconByName)('CheckCircle', react_2.screen.getByTestId('checked-button'));
127
+ expect(react_2.screen.getByRole('button', { name: 'Deselect' })).toBeInTheDocument();
128
+ expect(react_2.screen.queryByTestId('download-button')).not.toBeInTheDocument();
129
+ expect(react_2.screen.queryByTestId('image-overlay-actions')).not.toBeInTheDocument();
130
+ return [2 /*return*/];
131
+ }
115
132
  });
116
- component.update();
117
- (0, test_utils_1.act)(function () {
118
- component.find(SmallIconButton_1.SmallIconButton).first().find('button').simulate('click');
133
+ }); });
134
+ it('should deselect on click', function () { return __awaiter(void 0, void 0, void 0, function () {
135
+ var user;
136
+ return __generator(this, function (_a) {
137
+ switch (_a.label) {
138
+ case 0:
139
+ user = setUp({ selectionMode: true, selected: true }).user;
140
+ (0, test_utils_1.getMuiIconByName)('CheckCircle', react_2.screen.getByTestId('checked-button'));
141
+ expect(react_2.screen.getByRole('button', { name: 'Deselect' })).toBeInTheDocument();
142
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('image-actions-overlay'))];
143
+ case 1:
144
+ _a.sent();
145
+ expect(defaultProps.onDeselect).toHaveBeenCalled();
146
+ return [2 /*return*/];
147
+ }
119
148
  });
120
- component.update();
121
- expect(defaultProps.onDownload).toHaveBeenCalled();
122
- });
123
- it('should call actions props', function () {
124
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps)));
125
- (0, test_utils_1.act)(function () {
126
- component.simulate('mouseEnter');
149
+ }); });
150
+ it('should deselect on button click', function () { return __awaiter(void 0, void 0, void 0, function () {
151
+ var user;
152
+ return __generator(this, function (_a) {
153
+ switch (_a.label) {
154
+ case 0:
155
+ user = setUp({ selectionMode: true, selected: true }).user;
156
+ (0, test_utils_1.getMuiIconByName)('CheckCircle', react_2.screen.getByTestId('checked-button'));
157
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('button', { name: 'Deselect' }))];
158
+ case 1:
159
+ _a.sent();
160
+ expect(defaultProps.onDeselect).toHaveBeenCalled();
161
+ return [2 /*return*/];
162
+ }
127
163
  });
128
- component.update();
129
- (0, test_utils_1.act)(function () {
130
- component.find(DropDownMenuButton_1.DropDownMenuButton).find(SmallIconButton_1.SmallIconButton).find('button').simulate('click');
164
+ }); });
165
+ it('should call onDownload prop', function () { return __awaiter(void 0, void 0, void 0, function () {
166
+ var user;
167
+ return __generator(this, function (_a) {
168
+ switch (_a.label) {
169
+ case 0:
170
+ user = setUp().user;
171
+ return [4 /*yield*/, user.hover(react_2.screen.getByTestId('image-actions-overlay'))];
172
+ case 1:
173
+ _a.sent();
174
+ return [4 /*yield*/, user.click(react_2.screen.queryByTestId('download-button'))];
175
+ case 2:
176
+ _a.sent();
177
+ expect(defaultProps.onDownload).toHaveBeenCalled();
178
+ return [2 /*return*/];
179
+ }
131
180
  });
132
- component.update();
133
- component.find(MenuItem_1.default).at(0).find('li').at(0).simulate('click');
134
- component.find(MenuItem_1.default).at(1).find('li').at(0).simulate('click');
135
- component.find(MenuItem_1.default).at(2).find('li').at(0).simulate('click');
136
- expect(defaultProps.onShareLink).toHaveBeenCalled();
137
- expect(defaultProps.onSetAsDefault).toHaveBeenCalled();
138
- expect(defaultProps.onDelete).toHaveBeenCalled();
139
- });
140
- it('should filter undefined action props', function () {
141
- var component = (0, enzyme_1.mount)(react_1.default.createElement(ImageActionsOverlay_1.default, __assign({}, defaultProps, { onShareLink: undefined, onDelete: undefined })));
142
- (0, test_utils_1.act)(function () {
143
- component.simulate('mouseEnter');
181
+ }); });
182
+ it('should call actions props', function () { return __awaiter(void 0, void 0, void 0, function () {
183
+ var user;
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0:
187
+ user = setUp().user;
188
+ return [4 /*yield*/, user.hover(react_2.screen.getByTestId('image-actions-overlay'))];
189
+ case 1:
190
+ _a.sent();
191
+ return [4 /*yield*/, user.click(react_2.screen.queryByTestId('image-overlay-actions'))];
192
+ case 2:
193
+ _a.sent();
194
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Share link'))];
195
+ case 3:
196
+ _a.sent();
197
+ expect(defaultProps.onShareLink).toHaveBeenCalled();
198
+ return [4 /*yield*/, user.click(react_2.screen.queryByTestId('image-overlay-actions'))];
199
+ case 4:
200
+ _a.sent();
201
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Set as default'))];
202
+ case 5:
203
+ _a.sent();
204
+ expect(defaultProps.onSetAsDefault).toHaveBeenCalled();
205
+ return [4 /*yield*/, user.click(react_2.screen.queryByTestId('image-overlay-actions'))];
206
+ case 6:
207
+ _a.sent();
208
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Delete'))];
209
+ case 7:
210
+ _a.sent();
211
+ expect(defaultProps.onDelete).toHaveBeenCalled();
212
+ return [2 /*return*/];
213
+ }
144
214
  });
145
- component.update();
146
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton).prop('menuItems')).toEqual([
147
- {
148
- text: 'Set as default',
149
- onClick: defaultProps.onSetAsDefault
215
+ }); });
216
+ it('should filter undefined action props', function () { return __awaiter(void 0, void 0, void 0, function () {
217
+ var user;
218
+ return __generator(this, function (_a) {
219
+ switch (_a.label) {
220
+ case 0:
221
+ user = setUp({ onShareLink: undefined, onDelete: undefined }).user;
222
+ return [4 /*yield*/, user.hover(react_2.screen.getByTestId('image-actions-overlay'))];
223
+ case 1:
224
+ _a.sent();
225
+ return [4 /*yield*/, user.click(react_2.screen.queryByTestId('image-overlay-actions'))];
226
+ case 2:
227
+ _a.sent();
228
+ expect(react_2.screen.queryByText('Share link')).not.toBeInTheDocument();
229
+ expect(react_2.screen.queryByText('Delete')).not.toBeInTheDocument();
230
+ expect(react_2.screen.getByText('Set as default')).toBeInTheDocument();
231
+ return [2 /*return*/];
150
232
  }
151
- ]);
152
- });
233
+ });
234
+ }); });
153
235
  });
@@ -13,6 +13,6 @@ var CheckedIcon = function (_a) {
13
13
  var checked = _a.checked, className = _a.className, onClick = _a.onClick;
14
14
  var styles = (0, styles_1.useStyles)();
15
15
  var Icon = checked ? CheckCircle_1.default : RadioButtonUnchecked_1.default;
16
- return react_1.default.createElement(Icon, { className: (0, classnames_1.default)(styles.root, className), onClick: onClick });
16
+ return react_1.default.createElement(Icon, { "data-reltio-id": "checked-button", className: (0, classnames_1.default)(styles.root, className), onClick: onClick });
17
17
  };
18
18
  exports.CheckedIcon = CheckedIcon;