@reltio/components 1.4.2051 → 1.4.2053

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 +2 -2
  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
@@ -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
  });