@reltio/components 1.4.2070 → 1.4.2071

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 (159) hide show
  1. package/FacetViewHeader/FacetViewHeader.js +1 -1
  2. package/ImageAttributesLine/imageAttributeValues.test-data.js +8 -0
  3. package/ImageAttributesLine/index.d.ts +1 -1
  4. package/ImageAttributesLine/index.js +1 -1
  5. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +1 -1
  6. package/MergeButton/MergeButton.spec.js +55 -124
  7. package/MetadataTypesSelector/MetadataTypesSelector.js +1 -1
  8. package/MetadataTypesSelector/MetadataTypesSelector.test.js +193 -190
  9. package/MoreAttributesButton/MoreAttributesButton.test.js +173 -166
  10. package/MultiValueSelector/MultiValueSelector.test.js +78 -38
  11. package/MultipliableSelect/MultipliableSelect.test.js +111 -47
  12. package/NestedAttribute/NestedAttribute.test.js +121 -42
  13. package/NestedAttributeEditor/NestedAttributeEditor.test.js +95 -41
  14. package/NotMatchButton/NotMatchButton.spec.js +51 -100
  15. package/PieChart/PieChart.test.js +130 -114
  16. package/PinButton/PinButton.spec.js +89 -22
  17. package/PivotingTooltip/PivotingTooltip.test.js +338 -174
  18. package/PotentialMatchReviewCard/PotentialMatchReviewCard.spec.js +94 -29
  19. package/ProfileBand/ProfileBand.spec.js +60 -53
  20. package/ProfileCard/ProfileCard.test.js +109 -27
  21. package/ProfilesList/ProfilesList.d.ts +1 -3
  22. package/ProfilesList/ProfilesList.js +1 -1
  23. package/ProfilesList/ProfilesList.spec.js +226 -211
  24. package/QueryBuilderRow/QueryBuilderRow.spec.js +83 -90
  25. package/QueryBuilderRowsGroup/QueryBuilderRowsGroup.spec.js +195 -86
  26. package/ReactSelectLoadMoreButton/ReactSelectLoadMoreButton.test.js +73 -15
  27. package/ReactSelectMenuWithPopper/ReactSelectMenuWithPopper.test.js +71 -117
  28. package/ReadOnlyAttributeValuesBlock/ReadOnlyAttributeValuesBlock.test.js +128 -61
  29. package/ReadOnlyAttributesFactory/components/ReadOnlyAttribute/ReadOnlyAttribute.test.js +179 -44
  30. package/ReadOnlyAttributesList/ReadOnlyAttributesList.test.js +254 -211
  31. package/ReadOnlyAttributesList/attributes.test-data.js +4 -4
  32. package/ReadOnlyAttributesPager/ReadOnlyAttributesPager.test.js +75 -18
  33. package/ReadOnlyAttributesView/ReadOnlyAttributesView.test.js +187 -312
  34. package/ReadOnlyComplexAttribute/ReadOnlyComplexAttribute.test.js +210 -219
  35. package/ReadOnlyImageAttributesLine/ReadOnlyImageAttributesLine.test.js +89 -89
  36. package/ReferenceAttributeEditor/ReferenceAttributeEditor.test.js +556 -602
  37. package/ReferenceAttributeEditor/metadata.test-data.d.ts +13 -13
  38. package/ReferenceAttributeEditor/metadata.test-data.js +2 -2
  39. package/ReferenceAttributeEditor/styles.d.ts +1 -1
  40. package/RelationEditor/RelationEditor.test.js +1448 -1392
  41. package/RelationTypeSelector/RelationTypeSelector.test.js +99 -17
  42. package/RelationTypesSelector/RelationTypesSelector.test.js +73 -22
  43. package/ReltioMap/ReltioMap.spec.js +51 -25
  44. package/Roles/Roles.test.js +54 -10
  45. package/ScreenProfileBand/ScreenProfileBand.test.js +142 -72
  46. package/cjs/FacetViewHeader/FacetViewHeader.js +1 -1
  47. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.js +8 -0
  48. package/cjs/ImageAttributesLine/index.d.ts +1 -1
  49. package/cjs/ImageAttributesLine/index.js +2 -1
  50. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +1 -1
  51. package/cjs/MergeButton/MergeButton.spec.js +55 -124
  52. package/cjs/MetadataTypesSelector/MetadataTypesSelector.js +1 -1
  53. package/cjs/MetadataTypesSelector/MetadataTypesSelector.test.js +193 -190
  54. package/cjs/MoreAttributesButton/MoreAttributesButton.test.js +172 -165
  55. package/cjs/MultiValueSelector/MultiValueSelector.test.js +78 -38
  56. package/cjs/MultipliableSelect/MultipliableSelect.test.js +111 -47
  57. package/cjs/NestedAttribute/NestedAttribute.test.js +121 -42
  58. package/cjs/NestedAttributeEditor/NestedAttributeEditor.test.js +94 -40
  59. package/cjs/NotMatchButton/NotMatchButton.spec.js +51 -100
  60. package/cjs/PieChart/PieChart.test.js +130 -114
  61. package/cjs/PinButton/PinButton.spec.js +89 -22
  62. package/cjs/PivotingTooltip/PivotingTooltip.test.js +338 -174
  63. package/cjs/PotentialMatchReviewCard/PotentialMatchReviewCard.spec.js +94 -29
  64. package/cjs/ProfileBand/ProfileBand.spec.js +60 -53
  65. package/cjs/ProfileCard/ProfileCard.test.js +109 -27
  66. package/cjs/ProfilesList/ProfilesList.d.ts +1 -3
  67. package/cjs/ProfilesList/ProfilesList.js +1 -1
  68. package/cjs/ProfilesList/ProfilesList.spec.js +226 -211
  69. package/cjs/QueryBuilderRow/QueryBuilderRow.spec.js +83 -90
  70. package/cjs/QueryBuilderRowsGroup/QueryBuilderRowsGroup.spec.js +195 -86
  71. package/cjs/ReactSelectLoadMoreButton/ReactSelectLoadMoreButton.test.js +73 -15
  72. package/cjs/ReactSelectMenuWithPopper/ReactSelectMenuWithPopper.test.js +71 -117
  73. package/cjs/ReadOnlyAttributeValuesBlock/ReadOnlyAttributeValuesBlock.test.js +128 -61
  74. package/cjs/ReadOnlyAttributesFactory/components/ReadOnlyAttribute/ReadOnlyAttribute.test.js +179 -44
  75. package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.test.js +254 -211
  76. package/cjs/ReadOnlyAttributesList/attributes.test-data.js +4 -4
  77. package/cjs/ReadOnlyAttributesPager/ReadOnlyAttributesPager.test.js +75 -18
  78. package/cjs/ReadOnlyAttributesView/ReadOnlyAttributesView.test.js +185 -310
  79. package/cjs/ReadOnlyComplexAttribute/ReadOnlyComplexAttribute.test.js +209 -218
  80. package/cjs/ReadOnlyImageAttributesLine/ReadOnlyImageAttributesLine.test.js +89 -89
  81. package/cjs/ReferenceAttributeEditor/ReferenceAttributeEditor.test.js +555 -601
  82. package/cjs/ReferenceAttributeEditor/metadata.test-data.d.ts +13 -13
  83. package/cjs/ReferenceAttributeEditor/metadata.test-data.js +2 -2
  84. package/cjs/ReferenceAttributeEditor/styles.d.ts +1 -1
  85. package/cjs/RelationEditor/RelationEditor.test.js +1446 -1390
  86. package/cjs/RelationTypeSelector/RelationTypeSelector.test.js +99 -17
  87. package/cjs/RelationTypesSelector/RelationTypesSelector.test.js +73 -22
  88. package/cjs/ReltioMap/ReltioMap.spec.js +51 -25
  89. package/cjs/Roles/Roles.test.js +54 -10
  90. package/cjs/ScreenProfileBand/ScreenProfileBand.test.js +141 -71
  91. package/package.json +1 -1
  92. package/MetadataTypesSelector/components/ListLabel/ListLabel.test.d.ts +0 -1
  93. package/MetadataTypesSelector/components/ListLabel/ListLabel.test.js +0 -24
  94. package/PivotingTooltip/IntegrationPivotingTooltip.test.d.ts +0 -1
  95. package/PivotingTooltip/IntegrationPivotingTooltip.test.js +0 -356
  96. package/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.d.ts +0 -1
  97. package/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.js +0 -201
  98. package/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.d.ts +0 -1
  99. package/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.js +0 -43
  100. package/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.d.ts +0 -1
  101. package/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.js +0 -31
  102. package/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.d.ts +0 -1
  103. package/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.js +0 -31
  104. package/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  105. package/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -45
  106. package/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.d.ts +0 -1
  107. package/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.js +0 -114
  108. package/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.d.ts +0 -1
  109. package/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.js +0 -107
  110. package/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  111. package/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -72
  112. package/RelationEditor/IntegrationRelationEditor.test.d.ts +0 -1
  113. package/RelationEditor/IntegrationRelationEditor.test.js +0 -337
  114. package/ReltioMap/components/MapControlContainer/MapControlContainer.d.ts +0 -10
  115. package/ReltioMap/components/MapControlContainer/MapControlContainer.js +0 -24
  116. package/ReltioMap/components/MapControlContainer/MapControlContainer.spec.d.ts +0 -1
  117. package/ReltioMap/components/MapControlContainer/MapControlContainer.spec.js +0 -33
  118. package/ReltioMap/components/MapControlContainer/index.d.ts +0 -1
  119. package/ReltioMap/components/MapControlContainer/index.js +0 -1
  120. package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.d.ts +0 -1
  121. package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.js +0 -36
  122. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.d.ts +0 -1
  123. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.js +0 -60
  124. package/Roles/components/Role/Role.test.d.ts +0 -1
  125. package/Roles/components/Role/Role.test.js +0 -55
  126. package/cjs/MetadataTypesSelector/components/ListLabel/ListLabel.test.d.ts +0 -1
  127. package/cjs/MetadataTypesSelector/components/ListLabel/ListLabel.test.js +0 -52
  128. package/cjs/PivotingTooltip/IntegrationPivotingTooltip.test.d.ts +0 -1
  129. package/cjs/PivotingTooltip/IntegrationPivotingTooltip.test.js +0 -361
  130. package/cjs/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.d.ts +0 -1
  131. package/cjs/PivotingTooltip/components/PivotingTooltipContent/PivotingTooltipContent.test.js +0 -206
  132. package/cjs/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.d.ts +0 -1
  133. package/cjs/ProfileCard/components/ProfileCardContent/ProfileCardContent.test.js +0 -48
  134. package/cjs/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.d.ts +0 -1
  135. package/cjs/QueryBuilderRow/components/ReadOnlyFilter/ReadOnlyFilter.spec.js +0 -36
  136. package/cjs/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.d.ts +0 -1
  137. package/cjs/QueryBuilderRow/components/ReadOnlyLogicOperator/ReadOnlyLogicOperator.spec.js +0 -36
  138. package/cjs/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  139. package/cjs/ReadOnlyAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -50
  140. package/cjs/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.d.ts +0 -1
  141. package/cjs/ReadOnlyAttributesPager/components/MultiLineRenderer/MultiLineRenderer.test.js +0 -119
  142. package/cjs/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.d.ts +0 -1
  143. package/cjs/ReadOnlyAttributesPager/components/OneLineRenderer/OneLineRenderer.test.js +0 -112
  144. package/cjs/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  145. package/cjs/ReadOnlyAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -77
  146. package/cjs/RelationEditor/IntegrationRelationEditor.test.d.ts +0 -1
  147. package/cjs/RelationEditor/IntegrationRelationEditor.test.js +0 -342
  148. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.d.ts +0 -10
  149. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.js +0 -28
  150. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.spec.d.ts +0 -1
  151. package/cjs/ReltioMap/components/MapControlContainer/MapControlContainer.spec.js +0 -38
  152. package/cjs/ReltioMap/components/MapControlContainer/index.d.ts +0 -1
  153. package/cjs/ReltioMap/components/MapControlContainer/index.js +0 -5
  154. package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.d.ts +0 -1
  155. package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.spec.js +0 -41
  156. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.d.ts +0 -1
  157. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.spec.js +0 -65
  158. package/cjs/Roles/components/Role/Role.test.d.ts +0 -1
  159. package/cjs/Roles/components/Role/Role.test.js +0 -60
@@ -9,89 +9,159 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  import React from 'react';
13
- import { shallow } from 'enzyme';
14
- import { CollaborationObjectTypes } from '@reltio/mdm-sdk';
15
- import { useCollaboration } from '../hooks/useCollaboration';
16
- import { ProfileBand } from '../ProfileBand';
17
- import { ProfileBandNavigation } from '../ProfileBandNavigation';
18
- import { CommentsContainer } from '../CommentsContainer';
19
- import { CollaborationContextProvider } from '../contexts/CollaborationContext';
20
- import { ProfileBandHistory } from '../features/history';
21
- import { COMMENTS_CONTAINER_VISIBILITY_AREA } from '../constants';
49
+ import { render, screen, act } from '@testing-library/react';
50
+ import { getCommentsCount, getAllUsersForTenant, Mode } from '@reltio/mdm-sdk';
22
51
  import { ScreenProfileBand } from './ScreenProfileBand';
52
+ import { MdmModuleProvider } from '../contexts/MdmModuleContext';
53
+ import { ActionsHookProvider } from '../contexts/ActionsHookContext';
54
+ jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getCommentsCount: jest.fn(), getAllUsersForTenant: jest.fn() })); });
23
55
  var defaultEntity = {
24
56
  uri: 'entities/uri1',
25
- type: 'configuration/entityTypes/HCO'
57
+ type: 'configuration/entityTypes/HCO',
58
+ label: 'Test entity',
59
+ secondaryLabel: 'Secondary label for test entity'
26
60
  };
27
61
  var defaultProps = {
28
62
  entity: defaultEntity,
29
63
  historySlice: undefined
30
64
  };
31
- var setUp = function (props) {
32
- if (props === void 0) { props = defaultProps; }
33
- return shallow(React.createElement(ScreenProfileBand, __assign({}, props)));
65
+ var defaultMdmValues = {
66
+ metadata: {
67
+ entityTypes: [
68
+ {
69
+ uri: 'configuration/entityTypes/HCO',
70
+ label: 'HCO',
71
+ typeImage: 'images/defaultImage/image.png'
72
+ }
73
+ ]
74
+ },
75
+ entity: defaultEntity,
76
+ absoluteImagePath: 'https://reltio.com/nui/imagePath',
77
+ mode: Mode.Viewing,
78
+ searchNavigationData: {
79
+ uri: 'entities/uri1',
80
+ index: 0,
81
+ total: 3,
82
+ tenant: 'alenat',
83
+ cache: ['entities/uri1', 'entities/uri2', 'entities/uri3']
84
+ },
85
+ isCollaborationEnabled: true
86
+ };
87
+ var setUp = function (_a) {
88
+ var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d;
89
+ var Providers = function (_a) {
90
+ var children = _a.children;
91
+ return (React.createElement(MdmModuleProvider, { values: mdmValues },
92
+ React.createElement(ActionsHookProvider, { hook: function () { return function () { }; } }, children)));
93
+ };
94
+ return render(React.createElement(ScreenProfileBand, __assign({}, props)), { wrapper: Providers });
34
95
  };
35
- jest.mock('../hooks/useCollaboration', function () { return ({
36
- useCollaboration: jest.fn()
37
- }); });
38
- describe('ScreenProfileBand tests', function () {
96
+ describe('Screen profile band tests', function () {
97
+ beforeEach(function () {
98
+ getCommentsCount.mockResolvedValue({ objectId: 'entities/uri1', comments: [] });
99
+ getAllUsersForTenant.mockResolvedValue([
100
+ { username: 'alexey.ivanov', email: 'alexey.ivanov@reltio.com' }
101
+ ]);
102
+ });
39
103
  afterEach(function () {
40
104
  jest.clearAllMocks();
41
105
  });
42
- it('should render main components', function () {
43
- var collaborationMock = { commentsMap: {} };
44
- useCollaboration.mockReturnValue(collaborationMock);
45
- var component = setUp();
46
- expect(component.find(CollaborationContextProvider)).toHaveLength(1);
47
- expect(component.find(CollaborationContextProvider).prop('collaboration')).toBe(collaborationMock);
48
- expect(component.find(ProfileBand)).toHaveLength(1);
49
- expect(component.find(ProfileBand).prop('entity')).toBe(defaultEntity);
50
- expect(component.find(ProfileBand).hasClass(COMMENTS_CONTAINER_VISIBILITY_AREA)).toBe(true);
51
- var commentsContainer = component
52
- .find(CollaborationContextProvider)
53
- .find(ProfileBand)
54
- .find(CommentsContainer);
55
- expect(commentsContainer.prop('uri')).toBe(defaultEntity.uri);
56
- expect(commentsContainer.prop('relatedObjectUris')).toEqual([defaultEntity.uri]);
57
- expect(commentsContainer.prop('objectType')).toBe(CollaborationObjectTypes.ENTITY);
58
- expect(useCollaboration).toHaveBeenCalledWith({ objectIds: [defaultEntity.uri] });
59
- expect(component.find(ProfileBandNavigation)).toHaveLength(1);
60
- expect(component.find(ProfileBandHistory)).toHaveLength(0);
61
- });
62
- it('should provide entityUri with DTSS for CommentsContainer in case of DTSS entity', function () {
63
- var collaborationMock = { commentsMap: {} };
64
- useCollaboration.mockReturnValue(collaborationMock);
65
- var entity = {
66
- uri: 'entities/uri1',
67
- type: 'configuration/entityTypes/HCO',
68
- dataTenant: 'dt1'
69
- };
70
- var props = __assign(__assign({}, defaultProps), { entity: entity });
71
- var component = setUp(props);
72
- expect(component.find(CollaborationContextProvider)).toHaveLength(1);
73
- expect(component.find(CollaborationContextProvider).prop('collaboration')).toBe(collaborationMock);
74
- expect(component.find(ProfileBand)).toHaveLength(1);
75
- expect(component.find(ProfileBand).prop('entity')).toBe(entity);
76
- var commentsContainer = component
77
- .find(CollaborationContextProvider)
78
- .find(ProfileBand)
79
- .find(CommentsContainer);
80
- expect(commentsContainer.prop('uri')).toBe('DTSS/dt1/' + entity.uri);
81
- expect(commentsContainer.prop('relatedObjectUris')).toEqual(['DTSS/dt1/' + entity.uri]);
82
- expect(commentsContainer.prop('objectType')).toBe(CollaborationObjectTypes.ENTITY);
83
- expect(useCollaboration).toHaveBeenCalledWith({ objectIds: ['DTSS/dt1/' + entity.uri] });
84
- expect(component.find(ProfileBandNavigation)).toHaveLength(1);
85
- expect(component.find(ProfileBandHistory)).toHaveLength(0);
86
- });
87
- it('should render ProfileBandHistory if historySlice prop is provided', function () {
88
- var historySlice = { aEntity: { uri: '1' } };
89
- var props = __assign(__assign({}, defaultProps), { historySlice: historySlice });
90
- var component = setUp(props);
91
- expect(component.find(ProfileBand)).toHaveLength(1);
92
- expect(component.find(ProfileBand).prop('entity')).toBe(historySlice.aEntity);
93
- expect(component.find(CommentsContainer)).toHaveLength(0);
94
- expect(component.find(ProfileBandNavigation)).toHaveLength(0);
95
- expect(component.find(ProfileBandHistory)).toHaveLength(1);
96
- });
106
+ it('should render main components correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
107
+ return __generator(this, function (_a) {
108
+ switch (_a.label) {
109
+ case 0:
110
+ setUp();
111
+ return [4 /*yield*/, screen.findByLabelText('Add comment')];
112
+ case 1:
113
+ _a.sent();
114
+ expect(screen.getByRole('img')).toHaveAttribute('src', 'https://reltio.com/nui/imagePath/images/defaultImage/image.png');
115
+ screen.getByText('Test entity');
116
+ screen.getByText('Secondary label for test entity');
117
+ screen.getByText('HCO');
118
+ screen.getByText('3 Search results');
119
+ screen.getByLabelText('Go to previous profile');
120
+ screen.getByLabelText('Go to next profile');
121
+ return [2 /*return*/];
122
+ }
123
+ });
124
+ }); });
125
+ it('should render profile band history if historySlice prop is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
126
+ var historySlice, props, mdmValues;
127
+ return __generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0:
130
+ historySlice = {
131
+ aEntity: {
132
+ uri: 'entities/uri1',
133
+ type: 'configuration/entityTypes/HCO',
134
+ label: 'Test history entity',
135
+ secondaryLabel: 'Secondary label for test history entity'
136
+ }
137
+ };
138
+ props = __assign(__assign({}, defaultProps), { historySlice: historySlice });
139
+ mdmValues = __assign(__assign({}, defaultMdmValues), { historyEvent: { aStamp: 1736357647430 } });
140
+ setUp({ props: props, mdmValues: mdmValues });
141
+ return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0: return [4 /*yield*/, Promise.resolve()];
145
+ case 1:
146
+ _a.sent();
147
+ return [2 /*return*/];
148
+ }
149
+ });
150
+ }); })];
151
+ case 1:
152
+ _a.sent();
153
+ expect(screen.getByRole('img')).toHaveAttribute('src', 'https://reltio.com/nui/imagePath/images/defaultImage/image.png');
154
+ screen.getByText('Test history entity');
155
+ screen.getByText('Secondary label for test history entity');
156
+ screen.getByText('HCO');
157
+ screen.getByText('You are viewing a historic slice:');
158
+ screen.getByText('Wed, Jan 8, 2025 5:34 PM');
159
+ expect(screen.queryByLabelText('Add comment')).not.toBeInTheDocument();
160
+ expect(screen.queryByLabelText('Go to search results')).not.toBeInTheDocument();
161
+ expect(screen.queryByLabelText('Go to previous profile')).not.toBeInTheDocument();
162
+ expect(screen.queryByLabelText('Go to next profile')).not.toBeInTheDocument();
163
+ return [2 /*return*/];
164
+ }
165
+ });
166
+ }); });
97
167
  });
@@ -11,6 +11,6 @@ var styles_1 = require("./styles");
11
11
  var FacetViewHeader = function (_a) {
12
12
  var className = _a.className, title = _a.title, children = _a.children;
13
13
  var styles = (0, styles_1.useStyles)();
14
- return (react_1.default.createElement(BasicViewHeader_1.BasicViewHeader, { title: title, classes: { root: (0, classnames_1.default)(styles.container, className), title: styles.title } }, children));
14
+ return (react_1.default.createElement(BasicViewHeader_1.BasicViewHeader, { "data-reltio-id": "facet-view-header", title: title, classes: { root: (0, classnames_1.default)(styles.container, className), title: styles.title } }, children));
15
15
  };
16
16
  exports.FacetViewHeader = FacetViewHeader;
@@ -49,6 +49,14 @@ exports.imageAttributeValues = [
49
49
  value: '/test.jpg',
50
50
  uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZv/CdnUrlThumbnail/39V5GWj9T'
51
51
  }
52
+ ],
53
+ UrlPreview: [
54
+ {
55
+ type: 'configuration/entityTypes/Series/attributes/ImageGallery/attributes/UrlPreview',
56
+ ov: true,
57
+ value: '/test.jpg',
58
+ uri: 'entities/1Rd2I9Mt/attributes/ImageGallery/39V5GWJZv/UrlPreview/38Man0dAs'
59
+ }
52
60
  ]
53
61
  },
54
62
  ov: true,
@@ -2,4 +2,4 @@ export { ImageAttributesLine } from './ImageAttributesLine';
2
2
  export type { RenderImage, ImageRenderProps } from './types';
3
3
  export { DEFAULT_IMAGE_SIZE } from './constants';
4
4
  export { downloadImagesByURLs } from './helpers';
5
- export { imageAttributeValues } from './imageAttributeValues.test-data';
5
+ export { imageAttributeValues, attributeType } from './imageAttributeValues.test-data';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.imageAttributeValues = exports.downloadImagesByURLs = exports.DEFAULT_IMAGE_SIZE = exports.ImageAttributesLine = void 0;
3
+ exports.attributeType = exports.imageAttributeValues = exports.downloadImagesByURLs = exports.DEFAULT_IMAGE_SIZE = exports.ImageAttributesLine = void 0;
4
4
  var ImageAttributesLine_1 = require("./ImageAttributesLine");
5
5
  Object.defineProperty(exports, "ImageAttributesLine", { enumerable: true, get: function () { return ImageAttributesLine_1.ImageAttributesLine; } });
6
6
  var constants_1 = require("./constants");
@@ -9,3 +9,4 @@ var helpers_1 = require("./helpers");
9
9
  Object.defineProperty(exports, "downloadImagesByURLs", { enumerable: true, get: function () { return helpers_1.downloadImagesByURLs; } });
10
10
  var imageAttributeValues_test_data_1 = require("./imageAttributeValues.test-data");
11
11
  Object.defineProperty(exports, "imageAttributeValues", { enumerable: true, get: function () { return imageAttributeValues_test_data_1.imageAttributeValues; } });
12
+ Object.defineProperty(exports, "attributeType", { enumerable: true, get: function () { return imageAttributeValues_test_data_1.attributeType; } });
@@ -27,7 +27,7 @@ var ImageDetailsViewCarousel = function (_a) {
27
27
  return (react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.root, className) },
28
28
  react_1.default.createElement("div", { className: styles.main },
29
29
  attributeValueIndex > 0 && (react_1.default.createElement(SmallIconButton_1.SmallIconButton, { "data-reltio-id": "prev-image-button", icon: NavigateBefore_1.default, className: (0, classnames_1.default)(styles.arrowButton, styles.arrowButtonPrev), onClick: onPrevImageButtonClick, size: "XL" })),
30
- react_1.default.createElement(Image_1.Image, { containerClassName: styles.mainImageContainer, className: styles.mainImage, size: mainImageSrc && Image_1.ImageSizesStyles.OVERRIDE, src: mainImageSrc }),
30
+ react_1.default.createElement(Image_1.Image, { "data-reltio-id": "main-image", containerClassName: styles.mainImageContainer, className: styles.mainImage, size: mainImageSrc && Image_1.ImageSizesStyles.OVERRIDE, src: mainImageSrc }),
31
31
  attributeValueIndex !== attributeValues.length - 1 && (react_1.default.createElement(SmallIconButton_1.SmallIconButton, { "data-reltio-id": "next-image-button", icon: NavigateNext_1.default, className: (0, classnames_1.default)(styles.arrowButton, styles.arrowButtonNext), onClick: onNextImageButtonClick, size: "XL" }))),
32
32
  react_1.default.createElement(Thumbnails_1.Thumbnails, { attributeValues: attributeValues, attributeValueIndex: attributeValueIndex, setAttributeValueIndex: setAttributeValueIndex })));
33
33
  };
@@ -60,27 +60,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
60
60
  };
61
61
  Object.defineProperty(exports, "__esModule", { value: true });
62
62
  var react_1 = __importDefault(require("react"));
63
- var enzyme_1 = require("enzyme");
64
- var test_utils_1 = require("react-dom/test-utils");
63
+ var react_2 = require("@testing-library/react");
64
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
65
65
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
66
+ var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
66
67
  var MergeButton_1 = require("./MergeButton");
67
- var MergeDark_1 = __importDefault(require("../icons/MergeDark"));
68
- var ActionButton_1 = require("../ActionButton");
69
68
  var types_1 = require("../types");
70
- var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
71
69
  jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { mergeCustomerTenantEntityWithMixedEntities: jest.fn(), mergeDataTenantEntity: jest.fn() })); });
72
- var mdmValues = {
73
- tenant: { id: 'test', name: 'test' },
74
- dtssPath: 'dtssPath/'
75
- };
76
- var updateSearchNavigationDataOnMerge = jest.fn();
70
+ var mdmValues = { tenant: { id: 'test', name: 'test' }, dtssPath: 'dtssPath/' };
71
+ var mdmActions = { updateSearchNavigationDataOnMerge: jest.fn() };
72
+ var defaultEntity = { uri: 'entities/123', type: 'entityType' };
73
+ var defaultEntities = [
74
+ { uri: 'entities/345', type: 'entityType' },
75
+ { uri: 'entities/567', type: 'entityType' }
76
+ ];
77
+ var defaultProps = { entity: defaultEntity, entities: defaultEntities };
77
78
  var setUp = function (props) {
78
- return (0, enzyme_1.mount)(react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues, actions: { updateSearchNavigationDataOnMerge: updateSearchNavigationDataOnMerge } },
79
- react_1.default.createElement(MergeButton_1.MergeButton, __assign({}, props))));
79
+ if (props === void 0) { props = defaultProps; }
80
+ var user = user_event_1.default.setup();
81
+ var Providers = function (_a) {
82
+ var children = _a.children;
83
+ return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues, actions: mdmActions }, children));
84
+ };
85
+ return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(MergeButton_1.MergeButton, __assign({}, props)), { wrapper: Providers })), { user: user });
80
86
  };
81
- describe('MergeButton component test', function () {
87
+ describe('Merge button tests', function () {
82
88
  beforeEach(function () {
83
- jest.clearAllMocks();
84
89
  mdm_sdk_1.mergeCustomerTenantEntityWithMixedEntities.mockImplementation(function () {
85
90
  return Promise.all([
86
91
  Promise.resolve(),
@@ -88,89 +93,51 @@ describe('MergeButton component test', function () {
88
93
  Promise.resolve({ uris: ['entities/1234'] })
89
94
  ]);
90
95
  });
91
- mdm_sdk_1.mergeDataTenantEntity.mockImplementation(function () { return Promise.resolve({ status: 'success' }); });
96
+ mdm_sdk_1.mergeDataTenantEntity.mockResolvedValue({ status: 'success' });
92
97
  });
93
98
  afterEach(function () {
94
99
  jest.clearAllMocks();
95
100
  });
96
- var entity = { uri: 'entities/123', type: 'entityType' };
97
- var entities = [
98
- {
99
- uri: 'entities/345',
100
- type: 'entityType'
101
- },
102
- {
103
- uri: 'entities/567',
104
- type: 'entityType'
105
- }
106
- ];
107
101
  it('should render initial state correctly', function () {
108
- var mode = types_1.ActionButtonMode.button;
109
- var wrapper = setUp({ entity: entity, entities: entities, mode: mode });
110
- var button = wrapper.find(ActionButton_1.ActionButton);
111
- expect(button).toHaveLength(1);
112
- expect(button.props()).toMatchObject({
113
- disabled: false,
114
- mode: mode,
115
- label: 'Merge',
116
- icon: MergeDark_1.default
117
- });
102
+ var props = __assign(__assign({}, defaultProps), { mode: types_1.ActionButtonMode.button });
103
+ setUp(props);
104
+ var button = react_2.screen.getByRole('button');
105
+ expect(button).not.toBeDisabled();
106
+ (0, react_2.within)(button).getByTestId('SvgMergeDark');
107
+ (0, react_2.within)(button).getByText('Merge');
118
108
  });
119
109
  it('should merge entities with customer tenant entity on button click', function () { return __awaiter(void 0, void 0, void 0, function () {
120
- var wrapper, button;
110
+ var user;
121
111
  return __generator(this, function (_a) {
122
112
  switch (_a.label) {
123
113
  case 0:
124
- wrapper = setUp({ entity: entity, entities: entities });
125
- button = wrapper.find(ActionButton_1.ActionButton);
126
- expect(button).toHaveLength(1);
127
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
128
- return __generator(this, function (_a) {
129
- button.prop('onClick')();
130
- return [2 /*return*/];
131
- });
132
- }); })];
114
+ user = setUp().user;
115
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('button'))];
133
116
  case 1:
134
117
  _a.sent();
135
118
  expect(mdm_sdk_1.mergeCustomerTenantEntityWithMixedEntities).toHaveBeenCalledWith({
136
- dtssPath: 'dtssPath/',
137
119
  customerTenant: 'test',
138
- entity: entity,
139
- entities: entities
120
+ dtssPath: 'dtssPath/',
121
+ entities: defaultEntities,
122
+ entity: defaultEntity
140
123
  });
141
124
  return [2 /*return*/];
142
125
  }
143
126
  });
144
127
  }); });
145
128
  it('should merge entities with data tenant entity on button click', function () { return __awaiter(void 0, void 0, void 0, function () {
146
- var entity, entities, wrapper, button;
129
+ var entity, entities, props, user;
147
130
  return __generator(this, function (_a) {
148
131
  switch (_a.label) {
149
132
  case 0:
150
- entity = {
151
- uri: 'entities/dt123',
152
- type: 'entityType',
153
- dataTenant: 'dt1'
154
- };
133
+ entity = { uri: 'entities/dt123', type: 'entityType', dataTenant: 'dt1' };
155
134
  entities = [
156
- {
157
- uri: 'entities/ct345',
158
- type: 'entityType'
159
- },
160
- {
161
- uri: 'entities/ct567',
162
- type: 'entityType'
163
- }
135
+ { uri: 'entities/ct345', type: 'entityType' },
136
+ { uri: 'entities/ct567', type: 'entityType' }
164
137
  ];
165
- wrapper = setUp({ entity: entity, entities: entities });
166
- button = wrapper.find(ActionButton_1.ActionButton);
167
- expect(button).toHaveLength(1);
168
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
169
- return __generator(this, function (_a) {
170
- button.prop('onClick')();
171
- return [2 /*return*/];
172
- });
173
- }); })];
138
+ props = { entity: entity, entities: entities };
139
+ user = setUp(props).user;
140
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('button'))];
174
141
  case 1:
175
142
  _a.sent();
176
143
  expect(mdm_sdk_1.mergeDataTenantEntity).toHaveBeenCalledWith({
@@ -184,70 +151,39 @@ describe('MergeButton component test', function () {
184
151
  });
185
152
  }); });
186
153
  it('should call props.onError on merge error', function () { return __awaiter(void 0, void 0, void 0, function () {
187
- var entity, entities, error, onError, wrapper, button;
154
+ var entity, entities, props, user;
188
155
  return __generator(this, function (_a) {
189
156
  switch (_a.label) {
190
157
  case 0:
191
- entity = {
192
- uri: 'entities/dt123',
193
- type: 'entityType',
194
- dataTenant: 'dt1'
195
- };
158
+ mdm_sdk_1.mergeDataTenantEntity.mockRejectedValue({ errorMessage: 'merge failed' });
159
+ entity = { uri: 'entities/dt123', type: 'entityType', dataTenant: 'dt1' };
196
160
  entities = [
197
- {
198
- uri: 'entities/ct345',
199
- type: 'entityType'
200
- },
201
- {
202
- uri: 'entities/ct567',
203
- type: 'entityType'
204
- }
161
+ { uri: 'entities/ct345', type: 'entityType' },
162
+ { uri: 'entities/ct567', type: 'entityType' }
205
163
  ];
206
- error = { errorMessage: 'merge failed' };
207
- mdm_sdk_1.mergeDataTenantEntity.mockImplementation(function () { return Promise.reject(error); });
208
- onError = jest.fn();
209
- wrapper = setUp({ entity: entity, entities: entities, onError: onError });
210
- button = wrapper.find(ActionButton_1.ActionButton);
211
- expect(button).toHaveLength(1);
212
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
213
- return __generator(this, function (_a) {
214
- button.prop('onClick')();
215
- return [2 /*return*/];
216
- });
217
- }); })];
164
+ props = { entity: entity, entities: entities, onError: jest.fn() };
165
+ user = setUp(props).user;
166
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('button'))];
218
167
  case 1:
219
168
  _a.sent();
220
- expect(onError).toHaveBeenCalledWith(error);
169
+ expect(props.onError).toHaveBeenCalledWith({ errorMessage: 'merge failed' });
221
170
  return [2 /*return*/];
222
171
  }
223
172
  });
224
173
  }); });
225
174
  it('should call props.onSuccess on merge success', function () { return __awaiter(void 0, void 0, void 0, function () {
226
- var onSuccess, otherEntities, wrapper, button;
175
+ var entities, props, user;
227
176
  return __generator(this, function (_a) {
228
177
  switch (_a.label) {
229
178
  case 0:
230
- onSuccess = jest.fn();
231
- otherEntities = __spreadArray(__spreadArray([], entities, true), [
232
- {
233
- uri: 'entities/1234',
234
- type: 'entityType',
235
- dataTenant: 'dt1'
236
- }
237
- ], false);
238
- wrapper = setUp({ entity: entity, entities: otherEntities, onSuccess: onSuccess });
239
- button = wrapper.find(ActionButton_1.ActionButton);
240
- expect(button).toHaveLength(1);
241
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
242
- return __generator(this, function (_a) {
243
- button.prop('onClick')();
244
- return [2 /*return*/];
245
- });
246
- }); })];
179
+ entities = __spreadArray(__spreadArray([], defaultEntities, true), [{ uri: 'entities/1234', type: 'entityType', dataTenant: 'dt1' }], false);
180
+ props = { entity: defaultEntity, entities: entities, onSuccess: jest.fn() };
181
+ user = setUp(props).user;
182
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('button'))];
247
183
  case 1:
248
184
  _a.sent();
249
- expect(onSuccess).toHaveBeenCalled();
250
- expect(updateSearchNavigationDataOnMerge).toHaveBeenCalledWith({
185
+ expect(props.onSuccess).toHaveBeenCalled();
186
+ expect(mdmActions.updateSearchNavigationDataOnMerge).toHaveBeenCalledWith({
251
187
  winnerUri: 'entities/123',
252
188
  losersUris: ['entities/345', 'entities/567']
253
189
  });
@@ -255,9 +191,4 @@ describe('MergeButton component test', function () {
255
191
  }
256
192
  });
257
193
  }); });
258
- it('button should have right label', function () {
259
- var wrapper = setUp({ entity: entity, entities: entities });
260
- var button = wrapper.find(ActionButton_1.ActionButton);
261
- expect(button.prop('label')).toBe('Merge');
262
- });
263
194
  });
@@ -102,7 +102,7 @@ exports.MetadataTypesSelector = (0, react_1.memo)(function (_a) {
102
102
  var noTypesSelected = selectedItemsUris.length === 0;
103
103
  return (react_1.default.createElement(react_1.default.Fragment, null,
104
104
  react_1.default.createElement(TextField_1.default, { label: label, ref: rootRef, InputProps: {
105
- startAdornment: noTypesSelected && !placeholder ? null : (react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.inputText, classes.inputText) }, noTypesSelected ? (react_1.default.createElement("div", null, placeholder)) : (react_1.default.createElement(ListLabel_1.ListLabel, __assign({}, ListLabelProps, { list: selectedLabels }))))),
105
+ startAdornment: noTypesSelected && !placeholder ? null : (react_1.default.createElement("div", { "data-reltio-id": "metadata-types-selector-start-adornment", className: (0, classnames_1.default)(styles.inputText, classes.inputText) }, noTypesSelected ? (react_1.default.createElement("div", null, placeholder)) : (react_1.default.createElement(ListLabel_1.ListLabel, __assign({}, ListLabelProps, { list: selectedLabels }))))),
106
106
  classes: {
107
107
  root: styles.inputRoot,
108
108
  input: (0, classnames_1.default)(styles.input, classes.input, (_b = {},