@reltio/components 1.4.2050 → 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 (187) hide show
  1. package/AttributeListItem/AttributeListItem.d.ts +1 -1
  2. package/ChartTooltip/ChartTooltip.js +3 -3
  3. package/ColumnsSettings/ColumnsSettings.d.ts +2 -1
  4. package/ColumnsSettings/ColumnsSettings.js +2 -2
  5. package/ColumnsSettings/ColumnsSettings.test.js +14 -0
  6. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  7. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  8. package/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -1
  9. package/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.js +2 -2
  10. package/DropDownMenuButton/DropDownMenuButton.js +1 -1
  11. package/HOCs/withAsyncMount/withAsyncMount.test.js +52 -52
  12. package/IgnoreButton/IgnoreButton.spec.js +109 -20
  13. package/Image/Image.d.ts +1 -1
  14. package/Image/Image.js +8 -8
  15. package/Image/Image.test.js +46 -51
  16. package/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  17. package/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  18. package/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  19. package/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  20. package/ImageAttributesLine/ImageAttributesLine.js +1 -1
  21. package/ImageAttributesLine/ImageAttributesLine.test.js +187 -193
  22. package/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  23. package/ImageAttributesLine/imageAttributeValues.test-data.js +22 -0
  24. package/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +315 -298
  25. package/ImageDetailsView/ImageDetailsView.test.js +529 -55
  26. package/ImageDetailsView/attributes.test-data.d.ts +4 -1
  27. package/ImageDetailsView/attributes.test-data.js +98 -1
  28. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  29. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  30. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  31. package/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  32. package/ImageDetailsView/helpers.test.js +4 -4
  33. package/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  34. package/ImportButton/ImportButton.test.js +94 -24
  35. package/InlineAttributesList/InlineAttributesList.test.js +22 -62
  36. package/InlineAttributesList/attributes.test-data.d.ts +4 -2
  37. package/InlineAttributesList/attributes.test-data.js +40 -1
  38. package/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  39. package/InlineAttributesPager/InlineAttributesPager.js +1 -4
  40. package/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  41. package/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  42. package/InlineComplexAttribute/InlineComplexAttribute.test.js +396 -182
  43. package/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  44. package/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  45. package/InlineReferenceAttribute/InlineReferenceAttribute.test.js +165 -107
  46. package/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +352 -346
  47. package/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +285 -194
  48. package/InternalLink/InternalLink.test.js +41 -11
  49. package/LookupEditor/LookupEditor.test.js +180 -44
  50. package/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  51. package/MapChart/MapChart.js +3 -8
  52. package/MapChart/MapChart.test.js +152 -188
  53. package/MapChart/components/Legend/Legend.js +3 -3
  54. package/MaskingSwitcher/MaskingSwitcher.js +1 -1
  55. package/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  56. package/SelectEditor/SelectEditor.d.ts +4 -10
  57. package/SelectEditor/SelectEditor.js +0 -4
  58. package/SelectEditor/SelectEditor.test.js +79 -9
  59. package/SelectionPopup/SelectionPopup.d.ts +2 -1
  60. package/SelectionPopup/SelectionPopup.js +3 -3
  61. package/SelectionPopup/SelectionPopup.spec.js +90 -30
  62. package/cjs/AttributeListItem/AttributeListItem.d.ts +1 -1
  63. package/cjs/ChartTooltip/ChartTooltip.js +3 -3
  64. package/cjs/ColumnsSettings/ColumnsSettings.d.ts +2 -1
  65. package/cjs/ColumnsSettings/ColumnsSettings.js +2 -2
  66. package/cjs/ColumnsSettings/ColumnsSettings.test.js +14 -0
  67. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  68. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  69. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -1
  70. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.js +2 -2
  71. package/cjs/DropDownMenuButton/DropDownMenuButton.js +1 -1
  72. package/cjs/HOCs/withAsyncMount/withAsyncMount.test.js +56 -56
  73. package/cjs/IgnoreButton/IgnoreButton.spec.js +109 -20
  74. package/cjs/Image/Image.d.ts +1 -1
  75. package/cjs/Image/Image.js +8 -8
  76. package/cjs/Image/Image.test.js +46 -51
  77. package/cjs/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  78. package/cjs/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  79. package/cjs/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  80. package/cjs/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  81. package/cjs/ImageAttributesLine/ImageAttributesLine.js +1 -1
  82. package/cjs/ImageAttributesLine/ImageAttributesLine.test.js +195 -224
  83. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  84. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.js +23 -1
  85. package/cjs/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +316 -299
  86. package/cjs/ImageDetailsView/ImageDetailsView.test.js +529 -55
  87. package/cjs/ImageDetailsView/attributes.test-data.d.ts +4 -1
  88. package/cjs/ImageDetailsView/attributes.test-data.js +99 -2
  89. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  90. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  91. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  92. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  93. package/cjs/ImageDetailsView/helpers.test.js +3 -3
  94. package/cjs/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  95. package/cjs/ImportButton/ImportButton.test.js +94 -24
  96. package/cjs/InlineAttributesList/InlineAttributesList.test.js +22 -62
  97. package/cjs/InlineAttributesList/attributes.test-data.d.ts +4 -2
  98. package/cjs/InlineAttributesList/attributes.test-data.js +41 -2
  99. package/cjs/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  100. package/cjs/InlineAttributesPager/InlineAttributesPager.js +1 -4
  101. package/cjs/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  102. package/cjs/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  103. package/cjs/InlineComplexAttribute/InlineComplexAttribute.test.js +395 -204
  104. package/cjs/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  105. package/cjs/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  106. package/cjs/InlineReferenceAttribute/InlineReferenceAttribute.test.js +164 -106
  107. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +351 -345
  108. package/cjs/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +307 -193
  109. package/cjs/InternalLink/InternalLink.test.js +40 -10
  110. package/cjs/LookupEditor/LookupEditor.test.js +178 -65
  111. package/cjs/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  112. package/cjs/MapChart/MapChart.js +3 -8
  113. package/cjs/MapChart/MapChart.test.js +152 -188
  114. package/cjs/MapChart/components/Legend/Legend.js +3 -3
  115. package/cjs/MaskingSwitcher/MaskingSwitcher.js +1 -1
  116. package/cjs/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  117. package/cjs/SelectEditor/SelectEditor.d.ts +4 -10
  118. package/cjs/SelectEditor/SelectEditor.js +0 -4
  119. package/cjs/SelectEditor/SelectEditor.test.js +79 -9
  120. package/cjs/SelectionPopup/SelectionPopup.d.ts +2 -1
  121. package/cjs/SelectionPopup/SelectionPopup.js +3 -3
  122. package/cjs/SelectionPopup/SelectionPopup.spec.js +90 -30
  123. package/cjs/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  124. package/cjs/hooks/useAsyncMount/useAsyncMount.js +1 -1
  125. package/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  126. package/hooks/useAsyncMount/useAsyncMount.js +1 -1
  127. package/package.json +1 -1
  128. package/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  129. package/HOCs/withTableContext/withTableContext.test.js +0 -41
  130. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  131. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -98
  132. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  133. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -99
  134. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  135. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -65
  136. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  137. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -306
  138. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  139. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -134
  140. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  141. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -99
  142. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  143. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -36
  144. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  145. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -161
  146. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  147. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -76
  148. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  149. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -104
  150. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  151. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -114
  152. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  153. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -177
  154. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  155. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -52
  156. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  157. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.js +0 -37
  158. package/cjs/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  159. package/cjs/HOCs/withTableContext/withTableContext.test.js +0 -46
  160. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  161. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -103
  162. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  163. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -104
  164. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  165. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -70
  166. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  167. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -311
  168. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  169. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -139
  170. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  171. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -104
  172. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  173. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -41
  174. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  175. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -166
  176. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  177. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -81
  178. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  179. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -109
  180. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  181. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -119
  182. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  183. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -182
  184. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  185. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -57
  186. package/cjs/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  187. package/cjs/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.js +0 -42
@@ -10,20 +10,51 @@ 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
54
  var ramda_1 = require("ramda");
19
- var enzyme_1 = require("enzyme");
20
- var test_utils_1 = require("react-dom/test-utils");
55
+ var react_2 = require("@testing-library/react");
56
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
21
57
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
22
- var GalleryView_1 = require("./components/GalleryView");
23
- var HeaderLeft_1 = require("./components/HeaderLeft");
24
- var HeaderRight_1 = require("./components/HeaderRight");
25
- var ImageGalleryDialog_1 = require("../ImageGalleryDialog");
26
- var ImageDetailsView_1 = require("../ImageDetailsView");
27
58
  var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
28
59
  var ImageAttributesGallery_1 = require("./ImageAttributesGallery");
29
60
  var generateAttributeValues = function (count) {
@@ -75,110 +106,241 @@ var defaultProps = {
75
106
  onDeleteAttribute: jest.fn()
76
107
  };
77
108
  var setUp = function (_a) {
78
- var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d;
79
- return (0, enzyme_1.mount)(react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues },
80
- react_1.default.createElement(ImageAttributesGallery_1.ImageAttributesGallery, __assign({}, props))));
109
+ var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? {} : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d;
110
+ var user = user_event_1.default.setup({ skipHover: true });
111
+ var Providers = function (_a) {
112
+ var children = _a.children;
113
+ return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues }, children));
114
+ };
115
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(ImageAttributesGallery_1.ImageAttributesGallery, __assign({}, defaultProps, props)), { wrapper: Providers }));
81
116
  };
82
117
  describe('ImageAttributesGallery tests', function () {
83
118
  afterEach(function () {
84
119
  jest.clearAllMocks();
85
120
  });
86
121
  it('should render main parts', function () {
87
- var component = setUp();
88
- expect(component.find(ImageGalleryDialog_1.ImageGalleryDialog)).toHaveLength(1);
89
- expect(component.find(GalleryView_1.GalleryView)).toHaveLength(1);
122
+ setUp();
123
+ var images = react_2.screen.getAllByRole('img');
124
+ expect(images).toHaveLength(3);
125
+ expect(react_2.screen.getByLabelText('Close')).toBeInTheDocument();
126
+ expect(react_2.screen.getByTestId('reltio-search-mode-gallery')).toHaveClass('current');
127
+ expect(react_2.screen.getByTestId('reltio-search-mode-details')).not.toHaveClass('current');
90
128
  });
91
- it('should select and deselect items', function () {
92
- var component = setUp();
93
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1';
94
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
95
- (0, test_utils_1.act)(function () {
96
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')(id);
97
- });
98
- component.update();
99
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([id]);
100
- (0, test_utils_1.act)(function () {
101
- component.find(GalleryView_1.GalleryView).prop('onDeselectImage')(id);
129
+ it('should select and deselect items', function () { return __awaiter(void 0, void 0, void 0, function () {
130
+ var user, images, checkButton, checkedButtons;
131
+ return __generator(this, function (_a) {
132
+ switch (_a.label) {
133
+ case 0:
134
+ user = setUp().user;
135
+ images = react_2.screen.getAllByRole('img');
136
+ images.forEach(function (image) {
137
+ react_2.fireEvent.load(image);
138
+ });
139
+ expect(react_2.screen.queryByTestId('checked-button')).not.toBeInTheDocument();
140
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
141
+ case 1:
142
+ _a.sent();
143
+ checkButton = react_2.screen.getByTestId('checked-button');
144
+ expect(checkButton).toHaveAttribute('data-testid', 'RadioButtonUncheckedIcon');
145
+ expect(react_2.screen.queryByText('Deselect')).not.toBeInTheDocument();
146
+ expect(react_2.screen.queryByText('Select all images')).not.toBeInTheDocument();
147
+ expect(react_2.screen.queryByLabelText('Download selected items')).not.toBeInTheDocument();
148
+ return [4 /*yield*/, user.click(checkButton)];
149
+ case 2:
150
+ _a.sent();
151
+ expect(react_2.screen.getByText('Deselect')).toBeInTheDocument();
152
+ expect(react_2.screen.getByText('Select all images')).toBeInTheDocument();
153
+ expect(react_2.screen.getByLabelText('Download selected items')).toBeInTheDocument();
154
+ checkedButtons = react_2.screen.getAllByTestId('checked-button');
155
+ expect(checkedButtons).toHaveLength(3);
156
+ expect(checkedButtons[0]).toHaveAttribute('data-testid', 'CheckCircleIcon');
157
+ expect(checkedButtons[1]).toHaveAttribute('data-testid', 'RadioButtonUncheckedIcon');
158
+ expect(checkedButtons[2]).toHaveAttribute('data-testid', 'RadioButtonUncheckedIcon');
159
+ return [4 /*yield*/, user.click(checkedButtons[1])];
160
+ case 3:
161
+ _a.sent();
162
+ expect(react_2.screen.getAllByText('Deselect')).toHaveLength(2);
163
+ expect(react_2.screen.getAllByTestId('checked-button')[1]).toHaveAttribute('data-testid', 'CheckCircleIcon');
164
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Download selected items'))];
165
+ case 4:
166
+ _a.sent();
167
+ expect(defaultProps.onDownload).toHaveBeenCalledWith(['./image0.jpg', './image1.jpg']);
168
+ return [4 /*yield*/, user.click(react_2.screen.getAllByText('Deselect')[0])];
169
+ case 5:
170
+ _a.sent();
171
+ return [4 /*yield*/, user.click(react_2.screen.getAllByTestId('checked-button')[1])];
172
+ case 6:
173
+ _a.sent();
174
+ expect(react_2.screen.queryByText('Deselect')).not.toBeInTheDocument();
175
+ expect(react_2.screen.queryByText('Select all images')).not.toBeInTheDocument();
176
+ expect(react_2.screen.queryByLabelText('Download selected items')).not.toBeInTheDocument();
177
+ return [2 /*return*/];
178
+ }
102
179
  });
103
- component.update();
104
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
105
- });
106
- it('should select all and deselect all items', function () {
107
- var component = setUp();
108
- var id0 = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
109
- var id1 = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1';
110
- var id2 = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ2';
111
- (0, test_utils_1.act)(function () {
112
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')(id1);
180
+ }); });
181
+ it('should select all and deselect all items', function () { return __awaiter(void 0, void 0, void 0, function () {
182
+ var user, images, checkedButtons;
183
+ return __generator(this, function (_a) {
184
+ switch (_a.label) {
185
+ case 0:
186
+ user = setUp().user;
187
+ images = react_2.screen.getAllByRole('img');
188
+ images.forEach(function (image) {
189
+ react_2.fireEvent.load(image);
190
+ });
191
+ expect(react_2.screen.queryByTestId('checked-button')).not.toBeInTheDocument();
192
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
193
+ case 1:
194
+ _a.sent();
195
+ expect(react_2.screen.queryByText('Deselect')).not.toBeInTheDocument();
196
+ expect(react_2.screen.queryByText('Select all images')).not.toBeInTheDocument();
197
+ expect(react_2.screen.queryByLabelText('Download selected items')).not.toBeInTheDocument();
198
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('checked-button'))];
199
+ case 2:
200
+ _a.sent();
201
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Select all images'))];
202
+ case 3:
203
+ _a.sent();
204
+ expect(react_2.screen.getAllByText('Deselect')).toHaveLength(3);
205
+ checkedButtons = react_2.screen.getAllByTestId('checked-button');
206
+ expect(checkedButtons).toHaveLength(3);
207
+ expect(checkedButtons[0]).toHaveAttribute('data-testid', 'CheckCircleIcon');
208
+ expect(checkedButtons[1]).toHaveAttribute('data-testid', 'CheckCircleIcon');
209
+ expect(checkedButtons[2]).toHaveAttribute('data-testid', 'CheckCircleIcon');
210
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Download selected items'))];
211
+ case 4:
212
+ _a.sent();
213
+ expect(defaultProps.onDownload).toHaveBeenCalledWith(['./image0.jpg', './image1.jpg', './image2.jpg']);
214
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Clear selection'))];
215
+ case 5:
216
+ _a.sent();
217
+ expect(react_2.screen.queryByText('Deselect')).not.toBeInTheDocument();
218
+ expect(react_2.screen.queryByText('Select all images')).not.toBeInTheDocument();
219
+ expect(react_2.screen.queryByLabelText('Download selected items')).not.toBeInTheDocument();
220
+ return [2 /*return*/];
221
+ }
113
222
  });
114
- component.update();
115
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([id1]);
116
- (0, test_utils_1.act)(function () {
117
- component.find(HeaderLeft_1.HeaderLeft).prop('onSelectAll')();
223
+ }); });
224
+ it('should close gallery', function () { return __awaiter(void 0, void 0, void 0, function () {
225
+ var user;
226
+ return __generator(this, function (_a) {
227
+ switch (_a.label) {
228
+ case 0:
229
+ user = setUp().user;
230
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Close'))];
231
+ case 1:
232
+ _a.sent();
233
+ expect(defaultProps.onClose).toHaveBeenCalled();
234
+ return [2 /*return*/];
235
+ }
118
236
  });
119
- component.update();
120
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([id0, id1, id2]);
121
- (0, test_utils_1.act)(function () {
122
- component.find(HeaderLeft_1.HeaderLeft).prop('onClearAll')();
237
+ }); });
238
+ it('should not provide onDelete if viewing mode', function () { return __awaiter(void 0, void 0, void 0, function () {
239
+ var user, images;
240
+ return __generator(this, function (_a) {
241
+ switch (_a.label) {
242
+ case 0:
243
+ user = setUp({ mdmValues: __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Viewing }) }).user;
244
+ images = react_2.screen.getAllByRole('img');
245
+ react_2.fireEvent.load(images[0]);
246
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
247
+ case 1:
248
+ _a.sent();
249
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('image-overlay-actions'))];
250
+ case 2:
251
+ _a.sent();
252
+ expect(react_2.screen.queryByText('Delete')).not.toBeInTheDocument();
253
+ return [2 /*return*/];
254
+ }
123
255
  });
124
- component.update();
125
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
126
- });
127
- it('should close gallery', function () {
128
- var component = setUp();
129
- (0, test_utils_1.act)(function () {
130
- var onClose = component.find(ImageGalleryDialog_1.ImageGalleryDialog).prop('onClose');
131
- if (onClose) {
132
- onClose();
256
+ }); });
257
+ it('should provide onDelete if editing mode', function () { return __awaiter(void 0, void 0, void 0, function () {
258
+ var user, images;
259
+ return __generator(this, function (_a) {
260
+ switch (_a.label) {
261
+ case 0:
262
+ user = setUp({ mdmValues: __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing }) }).user;
263
+ images = react_2.screen.getAllByRole('img');
264
+ react_2.fireEvent.load(images[0]);
265
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
266
+ case 1:
267
+ _a.sent();
268
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('image-overlay-actions'))];
269
+ case 2:
270
+ _a.sent();
271
+ expect(react_2.screen.queryByText('Delete')).toBeInTheDocument();
272
+ return [2 /*return*/];
133
273
  }
134
274
  });
135
- component.update();
136
- expect(defaultProps.onClose).toHaveBeenCalled();
137
- });
138
- it('should not provide onDelete if viewing mode', function () {
139
- var component = setUp();
140
- var onDelete = component.find(GalleryView_1.GalleryView).prop('onDelete');
141
- expect(onDelete).toBeUndefined();
142
- });
143
- it('should provide onDelete if editing mode', function () {
144
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
145
- var component = setUp({ mdmValues: mdmValues });
146
- var onDelete = component.find(GalleryView_1.GalleryView).prop('onDelete');
147
- expect(onDelete).not.toBeUndefined();
148
- });
149
- it('handleClickByImage', function () {
150
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
151
- var component = setUp();
152
- expect(component.find(ImageGalleryDialog_1.ImageGalleryDialog).prop('mode')).toBe('gallery');
153
- (0, test_utils_1.act)(function () {
154
- component.find(GalleryView_1.GalleryView).prop('onClickImage')(id);
275
+ }); });
276
+ it('handleClickByImage', function () { return __awaiter(void 0, void 0, void 0, function () {
277
+ var user, images;
278
+ return __generator(this, function (_a) {
279
+ switch (_a.label) {
280
+ case 0:
281
+ user = setUp().user;
282
+ images = react_2.screen.getAllByRole('img');
283
+ images.forEach(function (image) {
284
+ react_2.fireEvent.load(image);
285
+ });
286
+ expect(react_2.screen.getByTestId('reltio-search-mode-gallery')).toHaveClass('current');
287
+ expect(react_2.screen.getByTestId('reltio-search-mode-details')).not.toHaveClass('current');
288
+ return [4 /*yield*/, user.click(images[0])];
289
+ case 1:
290
+ _a.sent();
291
+ expect(react_2.screen.getByTestId('reltio-search-mode-gallery')).not.toHaveClass('current');
292
+ expect(react_2.screen.getByTestId('reltio-search-mode-details')).toHaveClass('current');
293
+ expect(defaultProps.setCurrentAttributeValueUri).toHaveBeenCalledWith('entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0');
294
+ expect(react_2.screen.getByText('Meta info')).toBeInTheDocument();
295
+ return [2 /*return*/];
296
+ }
155
297
  });
156
- expect(defaultProps.setCurrentAttributeValueUri).toHaveBeenCalledWith(id);
157
- component.update();
158
- expect(component.find(ImageGalleryDialog_1.ImageGalleryDialog).prop('mode')).toBe('details');
159
- });
298
+ }); });
160
299
  describe('share link', function () {
161
- it('action for GalleryView', function () {
162
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
163
- var component = setUp();
164
- (0, test_utils_1.act)(function () {
165
- var onShareLink = component.find(GalleryView_1.GalleryView).prop('onShareLink');
166
- if (onShareLink) {
167
- onShareLink(id);
300
+ it('action for GalleryView', function () { return __awaiter(void 0, void 0, void 0, function () {
301
+ var user, images;
302
+ return __generator(this, function (_a) {
303
+ switch (_a.label) {
304
+ case 0:
305
+ user = setUp().user;
306
+ images = react_2.screen.getAllByRole('img');
307
+ images.forEach(function (image) {
308
+ react_2.fireEvent.load(image);
309
+ });
310
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
311
+ case 1:
312
+ _a.sent();
313
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('image-overlay-actions'))];
314
+ case 2:
315
+ _a.sent();
316
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Share link'))];
317
+ case 3:
318
+ _a.sent();
319
+ expect(defaultProps.onShareLink).toHaveBeenCalledWith('./image0.jpg');
320
+ return [2 /*return*/];
168
321
  }
169
322
  });
170
- expect(defaultProps.onShareLink).toHaveBeenLastCalledWith('./image0.jpg');
171
- });
172
- it('action for HeaderRight', function () {
173
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
174
- var props = __assign(__assign({}, defaultProps), { currentAttributeValueUri: id });
175
- var component = setUp({ props: props });
176
- (0, test_utils_1.act)(function () {
177
- var onShare = component.find(HeaderRight_1.HeaderRight).prop('onShare');
178
- onShare(id);
323
+ }); });
324
+ it('action for HeaderRight', function () { return __awaiter(void 0, void 0, void 0, function () {
325
+ var user, images;
326
+ return __generator(this, function (_a) {
327
+ switch (_a.label) {
328
+ case 0:
329
+ user = setUp({
330
+ props: { currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0' }
331
+ }).user;
332
+ images = react_2.screen.getAllByRole('img');
333
+ images.forEach(function (image) {
334
+ react_2.fireEvent.load(image);
335
+ });
336
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Copy link'))];
337
+ case 1:
338
+ _a.sent();
339
+ expect(defaultProps.onShareLink).toHaveBeenCalledWith('./image0.jpg');
340
+ return [2 /*return*/];
341
+ }
179
342
  });
180
- expect(defaultProps.onShareLink).toHaveBeenLastCalledWith('./image0.jpg');
181
- });
343
+ }); });
182
344
  });
183
345
  describe('set as default', function () {
184
346
  var result = {
@@ -204,217 +366,299 @@ describe('ImageAttributesGallery tests', function () {
204
366
  ]
205
367
  }
206
368
  };
207
- it('should be called from GalleryView', function () {
208
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
209
- var component = setUp();
210
- (0, test_utils_1.act)(function () {
211
- var onSetAsDefault = component.find(GalleryView_1.GalleryView).prop('onSetAsDefault');
212
- if (onSetAsDefault) {
213
- onSetAsDefault(id);
369
+ it('should be called from GalleryView', function () { return __awaiter(void 0, void 0, void 0, function () {
370
+ var user, images;
371
+ return __generator(this, function (_a) {
372
+ switch (_a.label) {
373
+ case 0:
374
+ user = setUp().user;
375
+ images = react_2.screen.getAllByRole('img');
376
+ images.forEach(function (image) {
377
+ react_2.fireEvent.load(image);
378
+ });
379
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
380
+ case 1:
381
+ _a.sent();
382
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('image-overlay-actions'))];
383
+ case 2:
384
+ _a.sent();
385
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Set as default'))];
386
+ case 3:
387
+ _a.sent();
388
+ expect(defaultProps.onSetAsDefault).toHaveBeenCalledWith(result);
389
+ return [2 /*return*/];
214
390
  }
215
391
  });
216
- expect(defaultProps.onSetAsDefault).toHaveBeenLastCalledWith(result);
217
- });
218
- it('should be called from ImageDetailsView', function () {
219
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
220
- var props = __assign(__assign({}, defaultProps), { currentAttributeValueUri: id });
221
- var component = setUp({ props: props });
222
- (0, test_utils_1.act)(function () {
223
- component.find(ImageDetailsView_1.ImageDetailsView).prop('handleSetAsDefault')(id);
392
+ }); });
393
+ it('should be called from ImageDetailsView', function () { return __awaiter(void 0, void 0, void 0, function () {
394
+ var user, images;
395
+ return __generator(this, function (_a) {
396
+ switch (_a.label) {
397
+ case 0:
398
+ user = setUp({
399
+ props: { currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0' }
400
+ }).user;
401
+ images = react_2.screen.getAllByRole('img');
402
+ images.forEach(function (image) {
403
+ react_2.fireEvent.load(image);
404
+ });
405
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Set as default'))];
406
+ case 1:
407
+ _a.sent();
408
+ expect(defaultProps.onSetAsDefault).toHaveBeenCalledWith(result);
409
+ return [2 /*return*/];
410
+ }
224
411
  });
225
- expect(defaultProps.onSetAsDefault).toHaveBeenLastCalledWith(result);
226
- });
412
+ }); });
227
413
  });
228
414
  describe('download images', function () {
229
- afterEach(function () {
230
- jest.resetAllMocks();
231
- });
232
- it('should call download prop', function () {
233
- var component = setUp();
234
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
235
- (0, test_utils_1.act)(function () {
236
- component.find(GalleryView_1.GalleryView).prop('onDownload')(id);
237
- });
238
- component.update();
239
- expect(defaultProps.onDownload).toHaveBeenCalledWith(['./image0.jpg']);
240
- });
241
- it('should call download prop for selected images', function () {
242
- var component = setUp();
243
- var id0 = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
244
- var id1 = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1';
245
- (0, test_utils_1.act)(function () {
246
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')(id0);
247
- });
248
- component.update();
249
- (0, test_utils_1.act)(function () {
250
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')(id1);
251
- });
252
- component.update();
253
- (0, test_utils_1.act)(function () {
254
- var onDownload = component.find(HeaderRight_1.HeaderRight).prop('onDownload');
255
- if (onDownload) {
256
- onDownload();
415
+ it('should call download prop for selected images', function () { return __awaiter(void 0, void 0, void 0, function () {
416
+ var user, images;
417
+ return __generator(this, function (_a) {
418
+ switch (_a.label) {
419
+ case 0:
420
+ user = setUp().user;
421
+ images = react_2.screen.getAllByRole('img');
422
+ images.forEach(function (image) {
423
+ react_2.fireEvent.load(image);
424
+ });
425
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
426
+ case 1:
427
+ _a.sent();
428
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('checked-button'))];
429
+ case 2:
430
+ _a.sent();
431
+ return [4 /*yield*/, user.click(react_2.screen.getAllByTestId('checked-button')[1])];
432
+ case 3:
433
+ _a.sent();
434
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Download selected items'))];
435
+ case 4:
436
+ _a.sent();
437
+ expect(defaultProps.onDownload).toHaveBeenCalledWith(['./image0.jpg', './image1.jpg']);
438
+ return [2 /*return*/];
257
439
  }
258
440
  });
259
- component.update();
260
- expect(defaultProps.onDownload).toHaveBeenCalledWith(['./image0.jpg', './image1.jpg']);
261
- });
262
- it('should call download prop for opened image in details mode', function () {
263
- var id0 = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0';
264
- var props = __assign(__assign({}, defaultProps), { currentAttributeValueUri: id0 });
265
- var component = setUp({ props: props });
266
- (0, test_utils_1.act)(function () {
267
- var onDownload = component.find(HeaderRight_1.HeaderRight).prop('onDownload');
268
- if (onDownload) {
269
- onDownload();
441
+ }); });
442
+ it('should call download prop for opened image in details mode', function () { return __awaiter(void 0, void 0, void 0, function () {
443
+ var user, images;
444
+ return __generator(this, function (_a) {
445
+ switch (_a.label) {
446
+ case 0:
447
+ user = setUp({
448
+ props: { currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0' }
449
+ }).user;
450
+ images = react_2.screen.getAllByRole('img');
451
+ images.forEach(function (image) {
452
+ react_2.fireEvent.load(image);
453
+ });
454
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Download selected items'))];
455
+ case 1:
456
+ _a.sent();
457
+ expect(defaultProps.onDownload).toHaveBeenCalledWith(['./image0.jpg']);
458
+ return [2 /*return*/];
270
459
  }
271
460
  });
272
- expect(defaultProps.onDownload).toHaveBeenCalledWith(['./image0.jpg']);
273
- });
461
+ }); });
274
462
  });
275
463
  describe('deleting images', function () {
276
- it('should delete image in details mode', function () {
277
- var onDeleteAttribute = defaultProps.onDeleteAttribute;
278
- var props = __assign(__assign({}, defaultProps), { currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1' });
279
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
280
- var component = setUp({ props: props, mdmValues: mdmValues });
281
- (0, test_utils_1.act)(function () {
282
- var onDelete = component.find(HeaderRight_1.HeaderRight).prop('onDelete');
283
- if (onDelete) {
284
- onDelete();
464
+ it('should delete image in details mode', function () { return __awaiter(void 0, void 0, void 0, function () {
465
+ var user, images;
466
+ return __generator(this, function (_a) {
467
+ switch (_a.label) {
468
+ case 0:
469
+ user = setUp({
470
+ props: { currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0' },
471
+ mdmValues: __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing })
472
+ }).user;
473
+ images = react_2.screen.getAllByRole('img');
474
+ images.forEach(function (image) {
475
+ react_2.fireEvent.load(image);
476
+ });
477
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Delete selected items'))];
478
+ case 1:
479
+ _a.sent();
480
+ expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
481
+ uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0',
482
+ attributeType: defaultProps.attributeType
483
+ });
484
+ return [2 /*return*/];
285
485
  }
286
486
  });
287
- expect(onDeleteAttribute).toHaveBeenCalledWith({
288
- uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1',
289
- attributeType: defaultProps.attributeType
290
- });
291
- });
292
- it('should delete image in gallery mode', function () {
293
- var onDeleteAttribute = defaultProps.onDeleteAttribute;
294
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
295
- var component = setUp({ mdmValues: mdmValues });
296
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ';
297
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
298
- (0, test_utils_1.act)(function () {
299
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')("".concat(id, "1"));
300
- });
301
- component.update();
302
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual(["".concat(id, "1")]);
303
- (0, test_utils_1.act)(function () {
304
- var onDelete = component.find(HeaderRight_1.HeaderRight).prop('onDelete');
305
- if (onDelete) {
306
- onDelete();
487
+ }); });
488
+ it('should delete image in gallery mode', function () { return __awaiter(void 0, void 0, void 0, function () {
489
+ var user, images;
490
+ return __generator(this, function (_a) {
491
+ switch (_a.label) {
492
+ case 0:
493
+ user = setUp({ mdmValues: __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing }) }).user;
494
+ images = react_2.screen.getAllByRole('img');
495
+ images.forEach(function (image) {
496
+ react_2.fireEvent.load(image);
497
+ });
498
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
499
+ case 1:
500
+ _a.sent();
501
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('image-overlay-actions'))];
502
+ case 2:
503
+ _a.sent();
504
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Delete'))];
505
+ case 3:
506
+ _a.sent();
507
+ expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
508
+ uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0',
509
+ attributeType: defaultProps.attributeType
510
+ });
511
+ return [2 /*return*/];
307
512
  }
308
513
  });
309
- expect(onDeleteAttribute).toHaveBeenCalledWith({
310
- uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1',
311
- attributeType: defaultProps.attributeType
312
- });
313
- });
314
- it('should delete image in gallery mode by clicking onDelete at GalleryView', function () {
315
- var onDeleteAttribute = defaultProps.onDeleteAttribute;
316
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
317
- var component = setUp({ mdmValues: mdmValues });
318
- (0, test_utils_1.act)(function () {
319
- var onDelete = component.find(GalleryView_1.GalleryView).prop('onDelete');
320
- onDelete('entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1');
321
- });
322
- expect(onDeleteAttribute).toHaveBeenCalledWith({
323
- uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1',
324
- attributeType: defaultProps.attributeType
514
+ }); });
515
+ it('should delete image in gallery mode by clicking onDelete at GalleryView', function () { return __awaiter(void 0, void 0, void 0, function () {
516
+ var user, images;
517
+ return __generator(this, function (_a) {
518
+ switch (_a.label) {
519
+ case 0:
520
+ user = setUp({ mdmValues: __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing }) }).user;
521
+ images = react_2.screen.getAllByRole('img');
522
+ images.forEach(function (image) {
523
+ react_2.fireEvent.load(image);
524
+ });
525
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
526
+ case 1:
527
+ _a.sent();
528
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('checked-button'))];
529
+ case 2:
530
+ _a.sent();
531
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Delete selected items'))];
532
+ case 3:
533
+ _a.sent();
534
+ expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
535
+ uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0',
536
+ attributeType: defaultProps.attributeType
537
+ });
538
+ return [2 /*return*/];
539
+ }
325
540
  });
326
- });
327
- it('should delete few images in gallery mode', function () {
328
- var onDeleteAttribute = defaultProps.onDeleteAttribute;
329
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
330
- var component = setUp({ mdmValues: mdmValues });
331
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ';
332
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
333
- (0, test_utils_1.act)(function () {
334
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')("".concat(id, "1"));
335
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')("".concat(id, "2"));
541
+ }); });
542
+ it('should delete few images in gallery mode', function () { return __awaiter(void 0, void 0, void 0, function () {
543
+ var user, images;
544
+ return __generator(this, function (_a) {
545
+ switch (_a.label) {
546
+ case 0:
547
+ user = setUp({ mdmValues: __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing }) }).user;
548
+ images = react_2.screen.getAllByRole('img');
549
+ images.forEach(function (image) {
550
+ react_2.fireEvent.load(image);
551
+ });
552
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
553
+ case 1:
554
+ _a.sent();
555
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('checked-button'))];
556
+ case 2:
557
+ _a.sent();
558
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Select all images'))];
559
+ case 3:
560
+ _a.sent();
561
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Delete selected items'))];
562
+ case 4:
563
+ _a.sent();
564
+ expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
565
+ uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ0',
566
+ attributeType: defaultProps.attributeType
567
+ });
568
+ expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
569
+ uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1',
570
+ attributeType: defaultProps.attributeType
571
+ });
572
+ expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
573
+ uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ2',
574
+ attributeType: defaultProps.attributeType
575
+ });
576
+ return [2 /*return*/];
577
+ }
336
578
  });
337
- component.update();
338
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual(["".concat(id, "1"), "".concat(id, "2")]);
339
- (0, test_utils_1.act)(function () {
340
- var onDelete = component.find(HeaderRight_1.HeaderRight).prop('onDelete');
341
- onDelete('entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1');
579
+ }); });
580
+ });
581
+ describe('HeaderRight rendering cases', function () {
582
+ it('should show delete, download, copy link, upload buttons in details view', function () { return __awaiter(void 0, void 0, void 0, function () {
583
+ return __generator(this, function (_a) {
584
+ setUp({
585
+ mdmValues: { mode: mdm_sdk_1.Mode.Editing },
586
+ props: {
587
+ currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1'
588
+ }
589
+ });
590
+ expect(react_2.screen.getByLabelText('Delete selected items')).toBeInTheDocument();
591
+ expect(react_2.screen.getByLabelText('Download selected items')).toBeInTheDocument();
592
+ expect(react_2.screen.getByLabelText('Copy link')).toBeInTheDocument();
593
+ expect(react_2.screen.getByText('Upload')).toBeInTheDocument();
594
+ return [2 /*return*/];
342
595
  });
343
- expect(onDeleteAttribute).toHaveBeenCalledTimes(2);
344
- expect(onDeleteAttribute).toHaveBeenNthCalledWith(1, {
345
- uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1',
346
- attributeType: defaultProps.attributeType
596
+ }); });
597
+ it('should not show upload button in details view it onUpload is not defined', function () { return __awaiter(void 0, void 0, void 0, function () {
598
+ return __generator(this, function (_a) {
599
+ setUp({
600
+ mdmValues: { mode: mdm_sdk_1.Mode.Editing },
601
+ props: {
602
+ currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1',
603
+ onUpload: undefined
604
+ }
605
+ });
606
+ expect(react_2.screen.getByLabelText('Delete selected items')).toBeInTheDocument();
607
+ expect(react_2.screen.getByLabelText('Download selected items')).toBeInTheDocument();
608
+ expect(react_2.screen.getByLabelText('Copy link')).toBeInTheDocument();
609
+ expect(react_2.screen.queryByText('Upload')).not.toBeInTheDocument();
610
+ return [2 /*return*/];
347
611
  });
348
- expect(onDeleteAttribute).toHaveBeenNthCalledWith(2, {
349
- uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ2',
350
- attributeType: defaultProps.attributeType
612
+ }); });
613
+ it('should show only download and delete button in Gallery mode with selected items and in edit mode', function () { return __awaiter(void 0, void 0, void 0, function () {
614
+ var user, images;
615
+ return __generator(this, function (_a) {
616
+ switch (_a.label) {
617
+ case 0:
618
+ user = setUp({ mdmValues: { mode: mdm_sdk_1.Mode.Editing } }).user;
619
+ images = react_2.screen.getAllByRole('img');
620
+ images.forEach(function (image) {
621
+ react_2.fireEvent.load(image);
622
+ });
623
+ return [4 /*yield*/, user.hover(react_2.screen.getAllByTestId('image-actions-overlay')[0])];
624
+ case 1:
625
+ _a.sent();
626
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('checked-button'))];
627
+ case 2:
628
+ _a.sent();
629
+ expect(react_2.screen.getByLabelText('Download selected items')).toBeInTheDocument();
630
+ expect(react_2.screen.getByLabelText('Delete selected items')).toBeInTheDocument();
631
+ expect(react_2.screen.queryByLabelText('Copy link')).not.toBeInTheDocument();
632
+ expect(react_2.screen.queryByText('Upload')).not.toBeInTheDocument();
633
+ return [2 /*return*/];
634
+ }
351
635
  });
636
+ }); });
637
+ it('should show only upload button in gallery edit mode without selected items', function () {
638
+ setUp({ mdmValues: { mode: mdm_sdk_1.Mode.Editing } });
639
+ expect(react_2.screen.queryByLabelText('Delete selected items')).not.toBeInTheDocument();
640
+ expect(react_2.screen.queryByLabelText('Download selected items')).not.toBeInTheDocument();
641
+ expect(react_2.screen.queryByLabelText('Copy link')).not.toBeInTheDocument();
642
+ expect(react_2.screen.getByText('Upload')).toBeInTheDocument();
352
643
  });
353
- });
354
- describe('HeaderRight rendering cases', function () {
355
- it('should provide onDelete, onDownload, onShare, onUpload to HeaderRight if Editing mode and Details mode', function () {
356
- var props = __assign(__assign({}, defaultProps), { currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1' });
357
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
358
- var component = setUp({ mdmValues: mdmValues, props: props });
359
- var headerRight = component.find(HeaderRight_1.HeaderRight);
360
- expect(headerRight.prop('onDelete')).not.toBeUndefined();
361
- expect(headerRight.prop('onDownload')).not.toBeUndefined();
362
- expect(headerRight.prop('onShare')).not.toBeUndefined();
363
- expect(headerRight.prop('onUpload')).not.toBeUndefined();
644
+ it('should not show buttons in viewing mode with non selected items', function () {
645
+ setUp({ mdmValues: { mode: mdm_sdk_1.Mode.Viewing } });
646
+ expect(react_2.screen.queryByLabelText('Delete selected items')).not.toBeInTheDocument();
647
+ expect(react_2.screen.queryByLabelText('Download selected items')).not.toBeInTheDocument();
648
+ expect(react_2.screen.queryByLabelText('Copy link')).not.toBeInTheDocument();
649
+ expect(react_2.screen.queryByText('Upload')).not.toBeInTheDocument();
364
650
  });
365
- it('should provide onDelete, onDownload, onShare and not provide onUpload to HeaderRight if Editing mode and Details mode and onUpload is not defined', function () {
366
- var props = __assign(__assign({}, defaultProps), { onUpload: undefined, currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1' });
367
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
368
- var component = setUp({ mdmValues: mdmValues, props: props });
369
- var headerRight = component.find(HeaderRight_1.HeaderRight);
370
- expect(headerRight.prop('onDelete')).not.toBeUndefined();
371
- expect(headerRight.prop('onDownload')).not.toBeUndefined();
372
- expect(headerRight.prop('onShare')).not.toBeUndefined();
373
- expect(headerRight.prop('onUpload')).toBeUndefined();
374
- });
375
- it('should provide onDelete and onDownload and not provide onShare, onUpload to HeaderRight if Editing mode and Gallery mode and selectedImages exist', function () {
376
- var id = 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ';
377
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
378
- var component = setUp({ mdmValues: mdmValues });
379
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
380
- (0, test_utils_1.act)(function () {
381
- component.find(GalleryView_1.GalleryView).prop('onSelectImage')("".concat(id, "1"));
651
+ it('should show only copy link and download in details view for viewing mode', function () {
652
+ setUp({
653
+ mdmValues: { mode: mdm_sdk_1.Mode.Viewing },
654
+ props: {
655
+ currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1'
656
+ }
382
657
  });
383
- component.update();
384
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual(["".concat(id, "1")]);
385
- var headerRight = component.find(HeaderRight_1.HeaderRight);
386
- expect(headerRight.prop('onDelete')).not.toBeUndefined();
387
- expect(headerRight.prop('onDownload')).not.toBeUndefined();
388
- expect(headerRight.prop('onShare')).toBeUndefined();
389
- expect(headerRight.prop('onUpload')).toBeUndefined();
390
- });
391
- it('should not provide onDelete, onDownload and onShare and provide onUpload to HeaderRight if Editing mode and Gallery mode and selectedImages do not exist', function () {
392
- var mdmValues = __assign(__assign({}, defaultMdmValues), { mode: mdm_sdk_1.Mode.Editing });
393
- var component = setUp({ mdmValues: mdmValues });
394
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
395
- var headerRight = component.find(HeaderRight_1.HeaderRight);
396
- expect(headerRight.prop('onDelete')).toBeUndefined();
397
- expect(headerRight.prop('onDownload')).toBeUndefined();
398
- expect(headerRight.prop('onShare')).toBeUndefined();
399
- expect(headerRight.prop('onUpload')).not.toBeUndefined();
400
- });
401
- it('should not provide onDelete, onDownload, onUpload, onShare to HeaderRight if Viewing mode and Gallery mode and selectedImages do not exist', function () {
402
- var component = setUp();
403
- expect(component.find(GalleryView_1.GalleryView).prop('selectedItems')).toEqual([]);
404
- var headerRight = component.find(HeaderRight_1.HeaderRight);
405
- expect(headerRight.prop('onDelete')).toBeUndefined();
406
- expect(headerRight.prop('onDownload')).toBeUndefined();
407
- expect(headerRight.prop('onShare')).toBeUndefined();
408
- expect(headerRight.prop('onUpload')).toBeUndefined();
409
- });
410
- it('should not provide onDelete, onUpload and provide onDownload, onShare to HeaderRight if Viewing mode and Details mode', function () {
411
- var props = __assign(__assign({}, defaultProps), { currentAttributeValueUri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZ1' });
412
- var component = setUp({ props: props });
413
- var headerRight = component.find(HeaderRight_1.HeaderRight);
414
- expect(headerRight.prop('onDelete')).toBeUndefined();
415
- expect(headerRight.prop('onDownload')).not.toBeUndefined();
416
- expect(headerRight.prop('onShare')).not.toBeUndefined();
417
- expect(headerRight.prop('onUpload')).toBeUndefined();
658
+ expect(react_2.screen.getByLabelText('Download selected items')).toBeInTheDocument();
659
+ expect(react_2.screen.getByLabelText('Copy link')).toBeInTheDocument();
660
+ expect(react_2.screen.queryByLabelText('Delete selected items')).not.toBeInTheDocument();
661
+ expect(react_2.screen.queryByText('Upload')).not.toBeInTheDocument();
418
662
  });
419
663
  });
420
664
  });