@reltio/components 1.4.2044 → 1.4.2046
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.
- package/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
- package/BasicTable/BasicTable.test.js +232 -278
- package/BlobRenderer/BlobRenderer.js +1 -1
- package/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
- package/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
- package/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
- package/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
- package/DeleteButton/DeleteButton.spec.js +53 -15
- package/DependentLookupEditor/DependentLookupEditor.test.js +555 -807
- package/Drawer/Drawer.test.js +9 -20
- package/DropDownEditor/DropDownEditor.test.js +81 -29
- package/DropDownMenuButton/DropDownMenuButton.spec.js +101 -70
- package/DropDownSelector/DropDownSelector.test.js +159 -30
- package/EditModeAttributesFactory/EditModeAttributesFactory.test.js +143 -0
- package/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
- package/EditModeAttributesList/attributes.test-data.d.ts +0 -11
- package/EditModeAttributesList/attributes.test-data.js +1 -1
- package/EditModeAttributesPager/EditModeAttributesPager.test.js +698 -234
- package/EditModeAttributesPager/helpers.test.js +2 -12
- package/EditModeAttributesView/EditModeAttributesView.test.js +263 -157
- package/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
- package/EditModeComplexAttribute/EditModeComplexAttribute.test.js +313 -298
- package/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
- package/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
- package/EmptyState/EmptyState.test.js +99 -38
- package/EntityCreator/EntityCreator.test.js +68 -35
- package/EntitySelector/EntitySelector.js +1 -1
- package/EntitySelector/EntitySelector.test.js +275 -422
- package/EntityTypeIcon/EntityTypeIcon.test.js +16 -16
- package/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
- package/ErrorBoundary/ErrorBoundary.test.js +19 -17
- package/ErrorMessage/ErrorMessage.js +1 -1
- package/ErrorPopup/ErrorPopup.test.js +72 -25
- package/ErrorWrapper/ErrorWrapper.test.js +10 -9
- package/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
- package/FileTypeEditor/FileTypeEditor.test.js +95 -64
- package/FilterValueEditor/FilterValueEditor.test.js +183 -157
- package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
- package/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
- package/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
- package/OvIcon/OvIcon.js +2 -2
- package/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
- package/ShowLess/ShowLess.js +1 -1
- package/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
- package/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
- package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
- package/cjs/BasicTable/BasicTable.test.js +230 -299
- package/cjs/BlobRenderer/BlobRenderer.js +1 -1
- package/cjs/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
- package/cjs/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
- package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
- package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
- package/cjs/DeleteButton/DeleteButton.spec.js +53 -15
- package/cjs/DependentLookupEditor/DependentLookupEditor.test.js +569 -821
- package/cjs/Drawer/Drawer.test.js +10 -21
- package/cjs/DropDownEditor/DropDownEditor.test.js +81 -29
- package/cjs/DropDownMenuButton/DropDownMenuButton.spec.js +102 -71
- package/cjs/DropDownSelector/DropDownSelector.test.js +159 -30
- package/cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.js +148 -0
- package/cjs/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
- package/cjs/EditModeAttributesList/attributes.test-data.d.ts +0 -11
- package/cjs/EditModeAttributesList/attributes.test-data.js +1 -1
- package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +696 -232
- package/cjs/EditModeAttributesPager/helpers.test.js +2 -12
- package/cjs/EditModeAttributesView/EditModeAttributesView.test.js +262 -156
- package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
- package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.test.js +312 -297
- package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
- package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
- package/cjs/EmptyState/EmptyState.test.js +98 -37
- package/cjs/EntityCreator/EntityCreator.test.js +69 -36
- package/cjs/EntitySelector/EntitySelector.js +1 -1
- package/cjs/EntitySelector/EntitySelector.test.js +274 -421
- package/cjs/EntityTypeIcon/EntityTypeIcon.test.js +17 -17
- package/cjs/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
- package/cjs/ErrorBoundary/ErrorBoundary.test.js +19 -17
- package/cjs/ErrorMessage/ErrorMessage.js +1 -1
- package/cjs/ErrorPopup/ErrorPopup.test.js +71 -24
- package/cjs/ErrorWrapper/ErrorWrapper.test.js +10 -9
- package/cjs/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
- package/cjs/FileTypeEditor/FileTypeEditor.test.js +95 -64
- package/cjs/FilterValueEditor/FilterValueEditor.test.js +182 -156
- package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
- package/cjs/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
- package/cjs/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
- package/cjs/OvIcon/OvIcon.js +2 -2
- package/cjs/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
- package/cjs/ShowLess/ShowLess.js +1 -1
- package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
- package/cjs/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
- package/cjs/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
- package/cjs/contexts/MdmModuleContext/hooks.d.ts +2 -2
- package/cjs/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -53
- package/cjs/test-utils/TestStylesProvider.js +6 -5
- package/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
- package/contexts/MdmModuleContext/hooks.d.ts +2 -2
- package/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -30
- package/package.json +2 -2
- package/test-utils/TestStylesProvider.js +3 -2
- package/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -101
- package/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -106
- package/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
- package/BasicTable/IntegrationBasicTable.test.js +0 -203
- package/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
- package/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -137
- package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
- package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -32
- package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
- package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -106
- package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
- package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -338
- package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
- package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -225
- package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
- package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -47
- package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
- package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -204
- package/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
- package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -246
- package/EditModeAttributesView/metadata.test-data.d.ts +0 -4
- package/EditModeAttributesView/metadata.test-data.js +0 -119
- package/EntityCreator/entityType.test-data.d.ts +0 -52
- package/EntityCreator/entityType.test-data.js +0 -188
- package/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
- package/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -27
- package/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
- package/EntitySelector/components/EntityOption/EntityOption.test.js +0 -79
- package/EntitySelector/components/Group/Group.test.d.ts +0 -1
- package/EntitySelector/components/Group/Group.test.js +0 -65
- package/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
- package/EntitySelector/components/SingleValue/SingleValue.test.js +0 -78
- package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
- package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -76
- package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts +0 -1
- package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -106
- package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts +0 -1
- package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -111
- package/cjs/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
- package/cjs/BasicTable/IntegrationBasicTable.test.js +0 -208
- package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
- package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -142
- package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
- package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -37
- package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
- package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -111
- package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
- package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -343
- package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
- package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -230
- package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
- package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -52
- package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
- package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -209
- package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
- package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -251
- package/cjs/EditModeAttributesView/metadata.test-data.d.ts +0 -4
- package/cjs/EditModeAttributesView/metadata.test-data.js +0 -123
- package/cjs/EntityCreator/entityType.test-data.d.ts +0 -52
- package/cjs/EntityCreator/entityType.test-data.js +0 -191
- package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
- package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -32
- package/cjs/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
- package/cjs/EntitySelector/components/EntityOption/EntityOption.test.js +0 -84
- package/cjs/EntitySelector/components/Group/Group.test.d.ts +0 -1
- package/cjs/EntitySelector/components/Group/Group.test.js +0 -70
- package/cjs/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
- package/cjs/EntitySelector/components/SingleValue/SingleValue.test.js +0 -83
- package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
- package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -81
- package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
- package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -104
- package/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
- package/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -99
- /package/{AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts → EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
- /package/{AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts → cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
|
@@ -9,269 +9,733 @@ 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
|
+
};
|
|
48
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
49
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
50
|
+
if (ar || !(i in from)) {
|
|
51
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
52
|
+
ar[i] = from[i];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
|
+
};
|
|
57
|
+
var _a;
|
|
12
58
|
import React from 'react';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { ImageLineRenderer } from './components/ImageLineRenderer';
|
|
20
|
-
import { AttributeTitle } from '../AttributeTitle';
|
|
59
|
+
import { mockResizeObserver } from 'jsdom-testing-mocks';
|
|
60
|
+
import { act, render, screen, within } from '@testing-library/react';
|
|
61
|
+
import userEvent from '@testing-library/user-event';
|
|
62
|
+
import { LocalizationProvider } from '@mui/x-date-pickers';
|
|
63
|
+
import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
|
|
64
|
+
import { DataTypes, EntityAttrTypes, ErrorSource, ErrorType, Mode } from '@reltio/mdm-sdk';
|
|
21
65
|
import { MdmModuleProvider } from '../contexts/MdmModuleContext';
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
66
|
+
import { FeaturesContext } from '../contexts/FeaturesContext';
|
|
67
|
+
import { HiddenAttributesContext } from '../contexts/HiddenAttributesContext';
|
|
68
|
+
import { HasDeletionsContext } from '../contexts/HasDeletionsContext';
|
|
69
|
+
import { PinnedAttributesContext } from '../contexts/PinnedAttributesContext';
|
|
70
|
+
import EditModeAttributesPager from './EditModeAttributesPager';
|
|
71
|
+
import { ScrollToElementContext, ScrollType } from '../contexts/ScrollToElementContext';
|
|
72
|
+
var defaultAttributeType = {
|
|
73
|
+
uri: 'configuration/entityTypes/HCP/attributes/Fruit',
|
|
74
|
+
type: 'String',
|
|
75
|
+
name: 'Fruit',
|
|
76
|
+
label: 'Fruit',
|
|
77
|
+
defaultValue: 'pineapple'
|
|
78
|
+
};
|
|
79
|
+
var defaultValues = [
|
|
80
|
+
{ type: defaultAttributeType.uri, uri: 'entities/sIeHttl/attributes/Fruit/apple', value: 'apple', ov: true },
|
|
81
|
+
{ type: defaultAttributeType.uri, uri: 'entities/sIeHttl/attributes/Fruit/kiwi', value: 'kiwi', ov: true },
|
|
82
|
+
{ type: defaultAttributeType.uri, uri: 'entities/sIeHttl/attributes/Fruit/orange', value: 'orange', ov: false },
|
|
83
|
+
{ type: defaultAttributeType.uri, uri: 'entities/sIeHttl/attributes/Fruit/banana', value: 'banana', ov: true },
|
|
84
|
+
{ type: defaultAttributeType.uri, uri: 'entities/sIeHttl/attributes/Fruit/mango', value: 'mango', ov: true },
|
|
85
|
+
{ type: defaultAttributeType.uri, uri: 'entities/sIeHttl/attributes/Fruit/avocado', value: 'avocado', ov: false }
|
|
86
|
+
];
|
|
87
|
+
var entity = { uri: 'entities/sIeHttl', type: 'configuration/entityTypes/HCP' };
|
|
88
|
+
var modifiedEntities = (_a = {}, _a[entity.uri] = entity, _a);
|
|
89
|
+
var dependentLookups = { editors: {}, structure: {}, initedTypeUris: [] };
|
|
90
|
+
var metadata = {
|
|
91
|
+
roles: [{ uri: 'configuration/roles/OfficeStaff', description: '', label: 'Office Staff' }],
|
|
92
|
+
entityTypes: [{ uri: 'configuration/entityTypes/HCP', entityTypeRoleURIs: ['configuration/roles/OfficeStaff'] }]
|
|
93
|
+
};
|
|
94
|
+
var defaultMdmValues = { metadata: metadata, dependentLookups: dependentLookups, entity: entity, modifiedEntities: modifiedEntities };
|
|
95
|
+
var defaultMdmActions = { errorDeactivated: jest.fn(), requestNextPageOfAttributeValues: jest.fn() };
|
|
96
|
+
var defaultProps = {
|
|
97
|
+
attributeType: defaultAttributeType,
|
|
98
|
+
values: defaultValues,
|
|
99
|
+
mode: Mode.Editing,
|
|
100
|
+
parentUri: 'entities/sIeHttl',
|
|
101
|
+
showEmptyEditors: false,
|
|
102
|
+
onDeleteAttribute: jest.fn(),
|
|
103
|
+
onChangeAttribute: jest.fn(),
|
|
104
|
+
onAddAttributes: jest.fn()
|
|
105
|
+
};
|
|
106
|
+
var setUp = function (_a) {
|
|
107
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d, _e = _b.mdmActions, mdmActions = _e === void 0 ? defaultMdmActions : _e, _f = _b.hiddenAttributesContextValue, hiddenAttributesContextValue = _f === void 0 ? {} : _f, _g = _b.pinnedAttributesContextValue, pinnedAttributesContextValue = _g === void 0 ? [] : _g, _h = _b.CustomProviders, CustomProviders = _h === void 0 ? React.Fragment : _h;
|
|
108
|
+
var user = userEvent.setup();
|
|
109
|
+
var Providers = function (_a) {
|
|
31
110
|
var children = _a.children;
|
|
32
|
-
return React.createElement(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
type: 'String',
|
|
39
|
-
name: 'Simple',
|
|
40
|
-
label: 'Simple label'
|
|
111
|
+
return (React.createElement(CustomProviders, null,
|
|
112
|
+
React.createElement(LocalizationProvider, { dateAdapter: AdapterMoment },
|
|
113
|
+
React.createElement(MdmModuleProvider, { values: mdmValues, actions: mdmActions },
|
|
114
|
+
React.createElement(HiddenAttributesContext.Provider, { value: hiddenAttributesContextValue },
|
|
115
|
+
React.createElement(PinnedAttributesContext.Provider, { value: pinnedAttributesContextValue },
|
|
116
|
+
React.createElement(FeaturesContext.Provider, { value: { showDescription: true } }, children)))))));
|
|
41
117
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
var component = setUp();
|
|
97
|
-
expect(component.find(BranchDecorator)).toHaveLength(0);
|
|
98
|
-
var attribute = component.find(AttributeRenderer);
|
|
99
|
-
expect(attribute).toHaveLength(1);
|
|
100
|
-
expect(attribute.props()).toMatchObject(__assign(__assign({}, defaultProps), { values: values.filter(function (_a) {
|
|
101
|
-
var ov = _a.ov;
|
|
102
|
-
return ov === true;
|
|
103
|
-
}) }));
|
|
118
|
+
return __assign(__assign({}, render(React.createElement(EditModeAttributesPager, __assign({}, props)), { wrapper: Providers })), { user: user });
|
|
119
|
+
};
|
|
120
|
+
describe('Edit mode attributes pager tests', function () {
|
|
121
|
+
var resizeObserver = mockResizeObserver();
|
|
122
|
+
describe('attribute renderer', function () {
|
|
123
|
+
it('should render title correctly', function () {
|
|
124
|
+
setUp();
|
|
125
|
+
var title = screen.getByTestId('reltio-attribute-label');
|
|
126
|
+
expect(title).toHaveTextContent('Fruit');
|
|
127
|
+
expect(title).not.toHaveTextContent('*');
|
|
128
|
+
});
|
|
129
|
+
it('should render title correctly if attribute type is required', function () {
|
|
130
|
+
var attributeType = __assign(__assign({}, defaultAttributeType), { required: true });
|
|
131
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType });
|
|
132
|
+
setUp({ props: props });
|
|
133
|
+
var title = screen.getByTestId('reltio-attribute-label');
|
|
134
|
+
expect(title).toHaveTextContent('Fruit');
|
|
135
|
+
expect(title).toHaveTextContent('*');
|
|
136
|
+
});
|
|
137
|
+
it('should render description correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
138
|
+
var attributeType, props, user;
|
|
139
|
+
return __generator(this, function (_a) {
|
|
140
|
+
switch (_a.label) {
|
|
141
|
+
case 0:
|
|
142
|
+
attributeType = __assign(__assign({}, defaultAttributeType), { description: 'The soft, pulpy part of a flowering plant that contains seeds' });
|
|
143
|
+
props = __assign(__assign({}, defaultProps), { attributeType: attributeType });
|
|
144
|
+
user = setUp({ props: props }).user;
|
|
145
|
+
expect(screen.queryByRole('tooltip')).not.toBeInTheDocument();
|
|
146
|
+
return [4 /*yield*/, user.hover(screen.getByTestId('reltio-description-icon'))];
|
|
147
|
+
case 1:
|
|
148
|
+
_a.sent();
|
|
149
|
+
screen.getByText('The soft, pulpy part of a flowering plant that contains seeds');
|
|
150
|
+
return [2 /*return*/];
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}); });
|
|
154
|
+
it('should not render description if attribute does not have it', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
155
|
+
return __generator(this, function (_a) {
|
|
156
|
+
setUp();
|
|
157
|
+
expect(screen.queryByTestId('reltio-description-icon')).not.toBeInTheDocument();
|
|
158
|
+
return [2 /*return*/];
|
|
159
|
+
});
|
|
160
|
+
}); });
|
|
161
|
+
it('should render control attribute icon if controlAttributes has attribute type uri', function () {
|
|
162
|
+
var mdmValues = __assign(__assign({}, defaultMdmValues), { controlAttributes: [
|
|
163
|
+
'configuration/entityTypes/HCP/attributes/Vegatable',
|
|
164
|
+
'configuration/entityTypes/HCP/attributes/Fruit'
|
|
165
|
+
] });
|
|
166
|
+
setUp({ mdmValues: mdmValues });
|
|
167
|
+
screen.getByTestId('reltio-control-attribute-icon');
|
|
168
|
+
});
|
|
169
|
+
it('should not render control attribute icon if controlAttributes does not have attribute type uri', function () {
|
|
170
|
+
setUp();
|
|
171
|
+
expect(screen.queryByTestId('reltio-control-attribute-icon')).not.toBeInTheDocument();
|
|
104
172
|
});
|
|
105
|
-
it('should
|
|
106
|
-
var
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
173
|
+
it('should render ov icon and non ov values correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
174
|
+
var user, nonOvValues;
|
|
175
|
+
return __generator(this, function (_a) {
|
|
176
|
+
switch (_a.label) {
|
|
177
|
+
case 0:
|
|
178
|
+
user = setUp().user;
|
|
179
|
+
expect(screen.queryByRole('tooltip')).not.toBeInTheDocument();
|
|
180
|
+
return [4 /*yield*/, user.hover(screen.getByText('+ 2'))];
|
|
181
|
+
case 1:
|
|
182
|
+
_a.sent();
|
|
183
|
+
nonOvValues = screen.getAllByTestId('non-ov-value');
|
|
184
|
+
expect(nonOvValues).toHaveLength(2);
|
|
185
|
+
expect(nonOvValues[0]).toHaveTextContent('orange');
|
|
186
|
+
expect(nonOvValues[1]).toHaveTextContent('avocado');
|
|
187
|
+
return [2 /*return*/];
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}); });
|
|
191
|
+
it('should not render ov icon if showNonOv is true', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
192
|
+
var props;
|
|
193
|
+
return __generator(this, function (_a) {
|
|
194
|
+
props = __assign(__assign({}, defaultProps), { showNonOv: true });
|
|
195
|
+
setUp({ props: props });
|
|
196
|
+
expect(screen.queryByTestId('ov-icon')).not.toBeInTheDocument();
|
|
197
|
+
return [2 /*return*/];
|
|
198
|
+
});
|
|
199
|
+
}); });
|
|
200
|
+
it('should render cardinality message correctly', function () {
|
|
201
|
+
var attributeType = {
|
|
202
|
+
uri: 'configuration/entityTypes/HCP/attributes/Int',
|
|
203
|
+
type: 'Int',
|
|
204
|
+
name: 'Int',
|
|
205
|
+
label: 'Int',
|
|
206
|
+
cardinality: { minValue: 10 }
|
|
207
|
+
};
|
|
208
|
+
var values = [{ type: attributeType.uri, uri: 'entities/sIeHttl/attributes/Int/1', value: 5, ov: true }];
|
|
209
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: values });
|
|
210
|
+
setUp({ props: props });
|
|
211
|
+
screen.getByText('This attribute can have minimum 10 values');
|
|
212
|
+
});
|
|
213
|
+
it('should render, expand and collapse attribute values correctly when max is less than values count', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
214
|
+
var props, user, attributes;
|
|
215
|
+
return __generator(this, function (_a) {
|
|
216
|
+
switch (_a.label) {
|
|
217
|
+
case 0:
|
|
218
|
+
props = __assign(__assign({}, defaultProps), { max: 3 });
|
|
219
|
+
user = setUp({ props: props }).user;
|
|
220
|
+
attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
221
|
+
expect(attributes).toHaveLength(3);
|
|
222
|
+
expect(within(attributes[0]).getByRole('textbox')).toHaveValue('apple');
|
|
223
|
+
expect(within(attributes[1]).getByRole('textbox')).toHaveValue('kiwi');
|
|
224
|
+
expect(within(attributes[2]).getByRole('textbox')).toHaveValue('banana');
|
|
225
|
+
expect(screen.queryByText('Show less')).not.toBeInTheDocument();
|
|
226
|
+
return [4 /*yield*/, user.click(screen.getByText('Show 1 more of remaining 1 value'))];
|
|
227
|
+
case 1:
|
|
228
|
+
_a.sent();
|
|
229
|
+
attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
230
|
+
expect(attributes).toHaveLength(4);
|
|
231
|
+
expect(within(attributes[3]).getByRole('textbox')).toHaveValue('mango');
|
|
232
|
+
expect(screen.queryByTestId('show-more')).not.toBeInTheDocument();
|
|
233
|
+
return [4 /*yield*/, user.click(screen.getByText('Show less'))];
|
|
234
|
+
case 2:
|
|
235
|
+
_a.sent();
|
|
236
|
+
attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
237
|
+
expect(attributes).toHaveLength(3);
|
|
238
|
+
return [2 /*return*/];
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}); });
|
|
242
|
+
it('should render, expand and collapse attribute values correctly when showNonOv is true and max is less than values count', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
243
|
+
var mdmValues, props, user, attributes;
|
|
244
|
+
return __generator(this, function (_a) {
|
|
245
|
+
switch (_a.label) {
|
|
246
|
+
case 0:
|
|
247
|
+
mdmValues = __assign(__assign({}, defaultMdmValues), { maxValuesInResponse: 2 });
|
|
248
|
+
props = __assign(__assign({}, defaultProps), { showNonOv: true });
|
|
249
|
+
user = setUp({ props: props, mdmValues: mdmValues }).user;
|
|
250
|
+
attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
251
|
+
expect(attributes).toHaveLength(2);
|
|
252
|
+
expect(within(attributes[0]).getByRole('textbox')).toHaveValue('apple');
|
|
253
|
+
expect(within(attributes[1]).getByRole('textbox')).toHaveValue('kiwi');
|
|
254
|
+
return [4 /*yield*/, user.click(screen.getByText('Show 2 more of remaining 4 value'))];
|
|
255
|
+
case 1:
|
|
256
|
+
_a.sent();
|
|
257
|
+
attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
258
|
+
expect(attributes).toHaveLength(4);
|
|
259
|
+
expect(within(attributes[2]).getByRole('textbox')).toHaveValue('orange');
|
|
260
|
+
expect(within(attributes[3]).getByRole('textbox')).toHaveValue('banana');
|
|
261
|
+
return [4 /*yield*/, user.click(screen.getByText('Show 2 more of remaining 2 value'))];
|
|
262
|
+
case 2:
|
|
263
|
+
_a.sent();
|
|
264
|
+
attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
265
|
+
expect(attributes).toHaveLength(6);
|
|
266
|
+
expect(within(attributes[4]).getByRole('textbox')).toHaveValue('mango');
|
|
267
|
+
expect(within(attributes[5]).getByRole('textbox')).toHaveValue('avocado');
|
|
268
|
+
expect(screen.queryByTestId('show-more')).not.toBeInTheDocument();
|
|
269
|
+
return [4 /*yield*/, user.click(screen.getByText('Show less'))];
|
|
270
|
+
case 3:
|
|
271
|
+
_a.sent();
|
|
272
|
+
attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
273
|
+
expect(attributes).toHaveLength(2);
|
|
274
|
+
screen.getByText('Show 2 more of remaining 4 value');
|
|
275
|
+
return [2 /*return*/];
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}); });
|
|
279
|
+
it('should render attribute values correctly if max is not passed', function () {
|
|
280
|
+
setUp();
|
|
281
|
+
var attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
282
|
+
expect(attributes).toHaveLength(4);
|
|
283
|
+
expect(within(attributes[0]).getByRole('textbox')).toHaveValue('apple');
|
|
284
|
+
expect(within(attributes[1]).getByRole('textbox')).toHaveValue('kiwi');
|
|
285
|
+
expect(within(attributes[2]).getByRole('textbox')).toHaveValue('banana');
|
|
286
|
+
expect(within(attributes[3]).getByRole('textbox')).toHaveValue('mango');
|
|
287
|
+
expect(screen.queryByTestId('show-more')).not.toBeInTheDocument();
|
|
288
|
+
expect(screen.queryByTestId('show-less')).not.toBeInTheDocument();
|
|
115
289
|
});
|
|
116
|
-
it('should
|
|
290
|
+
it('should render attribute values correctly if showNonOv prop is true and max is not passed', function () {
|
|
117
291
|
var props = __assign(__assign({}, defaultProps), { showNonOv: true });
|
|
118
|
-
|
|
119
|
-
var
|
|
120
|
-
expect(
|
|
292
|
+
setUp({ props: props });
|
|
293
|
+
var attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
294
|
+
expect(attributes).toHaveLength(6);
|
|
295
|
+
expect(within(attributes[0]).getByRole('textbox')).toHaveValue('apple');
|
|
296
|
+
expect(within(attributes[1]).getByRole('textbox')).toHaveValue('kiwi');
|
|
297
|
+
expect(within(attributes[2]).getByRole('textbox')).toHaveValue('orange');
|
|
298
|
+
expect(within(attributes[3]).getByRole('textbox')).toHaveValue('banana');
|
|
299
|
+
expect(within(attributes[4]).getByRole('textbox')).toHaveValue('mango');
|
|
300
|
+
expect(within(attributes[5]).getByRole('textbox')).toHaveValue('avocado');
|
|
301
|
+
expect(screen.queryByTestId('show-more')).not.toBeInTheDocument();
|
|
302
|
+
expect(screen.queryByTestId('show-less')).not.toBeInTheDocument();
|
|
121
303
|
});
|
|
122
|
-
it('should
|
|
304
|
+
it('should return null if there are no values and showEmptyEditors is falsy', function () {
|
|
305
|
+
var props = __assign(__assign({}, defaultProps), { values: [], showEmptyEditors: false });
|
|
306
|
+
var container = setUp({ props: props }).container;
|
|
307
|
+
expect(container).toBeEmptyDOMElement();
|
|
308
|
+
});
|
|
309
|
+
it('should render special "empty" attribute if there are no values and showEmptyEditors is true', function () {
|
|
310
|
+
var props = __assign(__assign({}, defaultProps), { values: [], showEmptyEditors: true });
|
|
311
|
+
setUp({ props: props });
|
|
312
|
+
expect(within(screen.getByTestId('reltio-edit-attribute')).getByRole('textbox')).toHaveValue('');
|
|
313
|
+
});
|
|
314
|
+
it('should render special "empty" attribute if there are no values and attribute are required', function () {
|
|
315
|
+
var attributeType = __assign(__assign({}, defaultAttributeType), { required: true });
|
|
316
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [], showEmptyEditors: true });
|
|
317
|
+
setUp({ props: props });
|
|
318
|
+
expect(within(screen.getByTestId('reltio-edit-attribute')).getByRole('textbox')).toHaveValue('');
|
|
319
|
+
});
|
|
320
|
+
it('should add 2 attributes on add one more button click for simple "empty" attribute', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
321
|
+
var props, user;
|
|
322
|
+
return __generator(this, function (_a) {
|
|
323
|
+
switch (_a.label) {
|
|
324
|
+
case 0:
|
|
325
|
+
props = __assign(__assign({}, defaultProps), { values: [], showEmptyEditors: true });
|
|
326
|
+
user = setUp({ props: props }).user;
|
|
327
|
+
return [4 /*yield*/, user.click(screen.getByTestId('reltio-add-one-more-simple-attribute-button'))];
|
|
328
|
+
case 1:
|
|
329
|
+
_a.sent();
|
|
330
|
+
expect(props.onAddAttributes).toHaveBeenCalledWith([
|
|
331
|
+
{
|
|
332
|
+
attributeType: {
|
|
333
|
+
uri: 'configuration/entityTypes/HCP/attributes/Fruit',
|
|
334
|
+
type: 'String',
|
|
335
|
+
name: 'Fruit',
|
|
336
|
+
label: 'Fruit'
|
|
337
|
+
},
|
|
338
|
+
index: Infinity,
|
|
339
|
+
parentUri: props.parentUri
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
attributeType: props.attributeType,
|
|
343
|
+
index: Infinity,
|
|
344
|
+
parentUri: props.parentUri
|
|
345
|
+
}
|
|
346
|
+
]);
|
|
347
|
+
return [2 /*return*/];
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
}); });
|
|
351
|
+
it('should add 1 attribute on on add one more button click for Nested "empty" attribute', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
352
|
+
var attributeType, props, user;
|
|
353
|
+
return __generator(this, function (_a) {
|
|
354
|
+
switch (_a.label) {
|
|
355
|
+
case 0:
|
|
356
|
+
attributeType = __assign(__assign({}, defaultAttributeType), { type: 'Nested' });
|
|
357
|
+
props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [], showEmptyEditors: true });
|
|
358
|
+
user = setUp({ props: props }).user;
|
|
359
|
+
return [4 /*yield*/, user.click(screen.getByText('Create attribute'))];
|
|
360
|
+
case 1:
|
|
361
|
+
_a.sent();
|
|
362
|
+
expect(props.onAddAttributes).toHaveBeenCalledWith([
|
|
363
|
+
{
|
|
364
|
+
parentUri: props.parentUri,
|
|
365
|
+
index: Infinity,
|
|
366
|
+
attributeType: props.attributeType
|
|
367
|
+
}
|
|
368
|
+
]);
|
|
369
|
+
return [2 /*return*/];
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
}); });
|
|
373
|
+
it('should return null if there are no values, showEmptyEditors is true but delete operation was performed', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
374
|
+
var props, _a, user, container;
|
|
375
|
+
return __generator(this, function (_b) {
|
|
376
|
+
switch (_b.label) {
|
|
377
|
+
case 0:
|
|
378
|
+
props = __assign(__assign({}, defaultProps), { values: [], showEmptyEditors: true });
|
|
379
|
+
_a = setUp({ props: props }), user = _a.user, container = _a.container;
|
|
380
|
+
return [4 /*yield*/, user.click(screen.getByTestId('reltio-delete-simple-attribute-button'))];
|
|
381
|
+
case 1:
|
|
382
|
+
_b.sent();
|
|
383
|
+
expect(container).toBeEmptyDOMElement();
|
|
384
|
+
return [2 /*return*/];
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
}); });
|
|
388
|
+
it('should render special "empty" attribute if there are no values and attribute is pinned', function () {
|
|
389
|
+
var props = __assign(__assign({}, defaultProps), { values: [] });
|
|
390
|
+
var pinnedAttributesContextValue = [defaultAttributeType.uri];
|
|
391
|
+
setUp({ props: props, pinnedAttributesContextValue: pinnedAttributesContextValue });
|
|
392
|
+
expect(within(screen.getByTestId('reltio-edit-attribute')).getByRole('textbox')).toHaveValue('');
|
|
393
|
+
});
|
|
394
|
+
it('should call onAddAttributes with correct params in case when values is not empty', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
395
|
+
var user;
|
|
396
|
+
return __generator(this, function (_a) {
|
|
397
|
+
switch (_a.label) {
|
|
398
|
+
case 0:
|
|
399
|
+
user = setUp().user;
|
|
400
|
+
return [4 /*yield*/, user.click(screen.getByTestId('reltio-add-one-more-simple-attribute-button'))];
|
|
401
|
+
case 1:
|
|
402
|
+
_a.sent();
|
|
403
|
+
expect(defaultProps.onAddAttributes).toHaveBeenCalledWith([
|
|
404
|
+
{
|
|
405
|
+
attributeType: defaultProps.attributeType,
|
|
406
|
+
index: Infinity,
|
|
407
|
+
parentUri: defaultProps.parentUri
|
|
408
|
+
}
|
|
409
|
+
]);
|
|
410
|
+
return [2 /*return*/];
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
}); });
|
|
414
|
+
it('should render correct if one of the values is masked', function () {
|
|
415
|
+
var values = __spreadArray(__spreadArray([], defaultValues, true), [
|
|
416
|
+
{
|
|
417
|
+
type: defaultAttributeType.uri,
|
|
418
|
+
uri: 'entities/sIeHttl/attributes/Fruit/strawberry',
|
|
419
|
+
value: 'strawberry',
|
|
420
|
+
ov: true,
|
|
421
|
+
masked: true
|
|
422
|
+
}
|
|
423
|
+
], false);
|
|
424
|
+
var props = __assign(__assign({}, defaultProps), { values: values });
|
|
425
|
+
setUp({ props: props });
|
|
426
|
+
var attributes = screen.getAllByTestId('reltio-edit-attribute');
|
|
427
|
+
expect(within(attributes[4]).queryByRole('textbox')).not.toBeInTheDocument();
|
|
428
|
+
within(attributes[4]).getByText('strawberry');
|
|
429
|
+
});
|
|
430
|
+
it('should not allow to add more values in edit mode if cardinality max value is one', function () {
|
|
431
|
+
var props = __assign(__assign({}, defaultProps), { values: [], showEmptyEditors: true, attributeType: __assign(__assign({}, defaultAttributeType), { cardinality: { maxValue: 1, minValue: 0 } }) });
|
|
432
|
+
setUp({ props: props });
|
|
433
|
+
expect(screen.queryByTestId('reltio-add-one-more-simple-attribute-button')).not.toBeInTheDocument();
|
|
434
|
+
});
|
|
435
|
+
it('should allow to add more values in edit mode if cardinality max value is more than one', function () {
|
|
436
|
+
var props = __assign(__assign({}, defaultProps), { values: [], showEmptyEditors: true, attributeType: __assign(__assign({}, defaultAttributeType), { cardinality: { maxValue: 2, minValue: 1 } }) });
|
|
437
|
+
setUp({ props: props });
|
|
438
|
+
screen.getByTestId('reltio-add-one-more-simple-attribute-button');
|
|
439
|
+
});
|
|
440
|
+
it('should highlight error if it have same parent uri, empty uri, and attribute type uri', function () {
|
|
123
441
|
var fullError = {
|
|
124
442
|
type: 'invalid',
|
|
125
|
-
|
|
443
|
+
name: '',
|
|
444
|
+
attributeTypeUri: defaultAttributeType.uri,
|
|
126
445
|
parentUri: defaultProps.parentUri,
|
|
127
|
-
uri:
|
|
446
|
+
uri: undefined,
|
|
128
447
|
source: 'validationService',
|
|
129
448
|
severity: 'ERROR'
|
|
130
449
|
};
|
|
450
|
+
var highlightError = jest.fn();
|
|
451
|
+
var scrollIntoRef = jest.fn();
|
|
131
452
|
var Providers = function (_a) {
|
|
132
453
|
var children = _a.children;
|
|
133
|
-
return (React.createElement(ScrollToElementContext.Provider, { value: {
|
|
134
|
-
element: fullError,
|
|
135
|
-
highlightError: jest.fn(),
|
|
136
|
-
scrollIntoRef: jest.fn(),
|
|
137
|
-
type: ScrollType.Error
|
|
138
|
-
} }, children));
|
|
454
|
+
return (React.createElement(ScrollToElementContext.Provider, { value: { element: fullError, highlightError: highlightError, scrollIntoRef: scrollIntoRef, type: ScrollType.Error } }, children));
|
|
139
455
|
};
|
|
140
|
-
|
|
141
|
-
expect(
|
|
456
|
+
setUp({ CustomProviders: Providers });
|
|
457
|
+
expect(scrollIntoRef).toHaveBeenCalled();
|
|
142
458
|
});
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
var
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
expect(
|
|
161
|
-
var attribute = decorator.find(SpecialRenderer);
|
|
162
|
-
expect(attribute).toHaveLength(1);
|
|
163
|
-
expect(attribute.props()).toMatchObject(props);
|
|
164
|
-
expect(decorator.find(AttributeTitle)).toHaveLength(0);
|
|
165
|
-
});
|
|
166
|
-
it('should set enabled BranchDecorator prop as true when drawLines is true', function () {
|
|
167
|
-
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, drawLines: true });
|
|
168
|
-
var component = setUp({ props: props });
|
|
169
|
-
var decorator = component.find(BranchDecorator);
|
|
170
|
-
expect(decorator).toHaveLength(1);
|
|
171
|
-
expect(decorator.prop('enabled')).toBe(true);
|
|
172
|
-
expect(decorator.find(SpecialRenderer)).toHaveLength(1);
|
|
459
|
+
it('should not highlight error if it have uri', function () {
|
|
460
|
+
var fullError = {
|
|
461
|
+
type: 'invalid',
|
|
462
|
+
name: '',
|
|
463
|
+
attributeTypeUri: defaultAttributeType.uri,
|
|
464
|
+
parentUri: defaultProps.parentUri,
|
|
465
|
+
uri: 'entities/sIeHttl/attributes/Address/edEosww/AddressType/uri$$1627902448724',
|
|
466
|
+
source: 'validationService',
|
|
467
|
+
severity: 'ERROR'
|
|
468
|
+
};
|
|
469
|
+
var highlightError = jest.fn();
|
|
470
|
+
var scrollIntoRef = jest.fn();
|
|
471
|
+
var Providers = function (_a) {
|
|
472
|
+
var children = _a.children;
|
|
473
|
+
return (React.createElement(ScrollToElementContext.Provider, { value: { element: fullError, highlightError: highlightError, scrollIntoRef: scrollIntoRef, type: ScrollType.Error } }, children));
|
|
474
|
+
};
|
|
475
|
+
setUp({ CustomProviders: Providers });
|
|
476
|
+
expect(scrollIntoRef).not.toHaveBeenCalled();
|
|
173
477
|
});
|
|
174
478
|
});
|
|
175
|
-
describe('
|
|
176
|
-
var
|
|
479
|
+
describe('image line attribute renderer', function () {
|
|
480
|
+
var defaultAttributeType = {
|
|
177
481
|
type: DataTypes.TYPE_IMAGE,
|
|
178
482
|
label: 'Image',
|
|
483
|
+
name: 'ImageGallery',
|
|
179
484
|
uri: 'configuration/entityTypes/HCP/attributes/ImageGallery'
|
|
180
485
|
};
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
486
|
+
var defaultValues = [
|
|
487
|
+
{
|
|
488
|
+
label: '',
|
|
489
|
+
value: {
|
|
490
|
+
Width: [
|
|
491
|
+
{
|
|
492
|
+
type: 'configuration/entityTypes/HCP/attributes/ImageGallery/attributes/Width',
|
|
493
|
+
value: '200',
|
|
494
|
+
uri: 'entities/sIeHttl/attributes/ImageGallery/1IozCV9I/Width/1IozCuiq'
|
|
495
|
+
}
|
|
496
|
+
],
|
|
497
|
+
Height: [
|
|
498
|
+
{
|
|
499
|
+
type: 'configuration/entityTypes/HCP/attributes/ImageGallery/attributes/Height',
|
|
500
|
+
value: '300',
|
|
501
|
+
uri: 'entities/sIeHttl/attributes/ImageGallery/1IozCV9I/Height/1IozCyz6'
|
|
502
|
+
}
|
|
503
|
+
],
|
|
504
|
+
CdnUrlThumbnail: [
|
|
505
|
+
{
|
|
506
|
+
type: 'configuration/entityTypes/HCP/attributes/ImageGallery/attributes/CdnUrlThumbnail',
|
|
507
|
+
value: 'https://reltio.com/image.png',
|
|
508
|
+
uri: 'entities/sIeHttl/attributes/ImageGallery/1IozCV9I/CdnUrlThumbnail/1IozCqSa'
|
|
509
|
+
}
|
|
510
|
+
]
|
|
511
|
+
},
|
|
512
|
+
uri: 'entities/sIeHttl/attributes/ImageGallery/1IozCV9I'
|
|
513
|
+
}
|
|
514
|
+
];
|
|
515
|
+
var defaultImageLineAttributeProps = __assign(__assign({}, defaultProps), { attributeType: defaultAttributeType, values: defaultValues });
|
|
516
|
+
it('should render title correctly', function () {
|
|
517
|
+
setUp({ props: defaultImageLineAttributeProps });
|
|
518
|
+
var title = screen.getByTestId('reltio-attribute-label');
|
|
519
|
+
expect(title).toHaveTextContent('Image');
|
|
520
|
+
expect(title).not.toHaveTextContent('*');
|
|
521
|
+
});
|
|
522
|
+
it('should render title correctly if attribute type is required', function () {
|
|
523
|
+
var attributeType = __assign(__assign({}, defaultAttributeType), { required: true });
|
|
524
|
+
var props = __assign(__assign({}, defaultImageLineAttributeProps), { attributeType: attributeType });
|
|
525
|
+
setUp({ props: props });
|
|
526
|
+
var title = screen.getByTestId('reltio-attribute-label');
|
|
527
|
+
expect(title).toHaveTextContent('Image');
|
|
528
|
+
expect(title).toHaveTextContent('*');
|
|
529
|
+
});
|
|
530
|
+
it('should render description correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
531
|
+
var attributeType, props, user;
|
|
532
|
+
return __generator(this, function (_a) {
|
|
533
|
+
switch (_a.label) {
|
|
534
|
+
case 0:
|
|
535
|
+
attributeType = __assign(__assign({}, defaultAttributeType), { description: 'Image description' });
|
|
536
|
+
props = __assign(__assign({}, defaultImageLineAttributeProps), { attributeType: attributeType });
|
|
537
|
+
user = setUp({ props: props }).user;
|
|
538
|
+
expect(screen.queryByRole('tooltip')).not.toBeInTheDocument();
|
|
539
|
+
return [4 /*yield*/, user.hover(screen.getByTestId('reltio-description-icon'))];
|
|
540
|
+
case 1:
|
|
541
|
+
_a.sent();
|
|
542
|
+
screen.getByText('Image description');
|
|
543
|
+
return [2 /*return*/];
|
|
544
|
+
}
|
|
545
|
+
});
|
|
546
|
+
}); });
|
|
547
|
+
it('should not render description if attribute does not have it', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
548
|
+
return __generator(this, function (_a) {
|
|
549
|
+
setUp({ props: defaultImageLineAttributeProps });
|
|
550
|
+
expect(screen.queryByTestId('reltio-description-icon')).not.toBeInTheDocument();
|
|
551
|
+
return [2 /*return*/];
|
|
198
552
|
});
|
|
553
|
+
}); });
|
|
554
|
+
it('should render attribute values correctly', function () {
|
|
555
|
+
setUp({ props: defaultImageLineAttributeProps });
|
|
556
|
+
var imageLine = screen.getByTestId('image-line-edit-mode');
|
|
557
|
+
resizeObserver.mockElementSize(imageLine, { contentBoxSize: { inlineSize: 1000 } });
|
|
558
|
+
act(function () {
|
|
559
|
+
resizeObserver.resize();
|
|
560
|
+
});
|
|
561
|
+
screen.getByTestId('reltio-upload-image-button');
|
|
562
|
+
var attributeValues = screen.getAllByTestId('reltio-attribute-value');
|
|
563
|
+
expect(attributeValues).toHaveLength(2);
|
|
564
|
+
expect(attributeValues[0]).toHaveAttribute('src', 'https://reltio.com/image.png');
|
|
565
|
+
within(attributeValues[1]).getByTestId('SvgDefaultImage');
|
|
566
|
+
});
|
|
567
|
+
});
|
|
568
|
+
describe('special attribute renderer', function () {
|
|
569
|
+
it('should render Roles component for roles', function () {
|
|
570
|
+
var attributeType = EntityAttrTypes.roles;
|
|
571
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: ['configuration/roles/OfficeStaff'] });
|
|
572
|
+
setUp({ props: props });
|
|
573
|
+
expect(screen.getByTestId('reltio-attribute-label')).toHaveTextContent(attributeType.label);
|
|
574
|
+
expect(screen.getAllByTestId('reltio-attribute-value')).toHaveLength(1);
|
|
575
|
+
expect(screen.getByRole('combobox')).toBeInTheDocument();
|
|
576
|
+
expect(screen.getByText('Office Staff')).toBeInTheDocument();
|
|
199
577
|
});
|
|
200
|
-
it('should
|
|
201
|
-
var
|
|
202
|
-
var
|
|
203
|
-
|
|
204
|
-
expect(
|
|
205
|
-
expect(
|
|
206
|
-
expect(
|
|
578
|
+
it('should render Tags component for tags and special icon before title', function () {
|
|
579
|
+
var attributeType = EntityAttrTypes.tags;
|
|
580
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: ['tag1'] });
|
|
581
|
+
setUp({ props: props });
|
|
582
|
+
expect(screen.getByTestId('reltio-attribute-label')).toHaveTextContent(attributeType.label);
|
|
583
|
+
expect(screen.getAllByTestId('reltio-attribute-value')).toHaveLength(1);
|
|
584
|
+
expect(screen.getByRole('textbox')).toBeInTheDocument();
|
|
585
|
+
expect(screen.getByText('tag1')).toBeInTheDocument();
|
|
586
|
+
});
|
|
587
|
+
it('should render empty Tags', function () {
|
|
588
|
+
var attributeType = EntityAttrTypes.tags;
|
|
589
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [] });
|
|
590
|
+
setUp({ props: props });
|
|
591
|
+
expect(screen.getByTestId('reltio-attribute-label')).toHaveTextContent(attributeType.label);
|
|
592
|
+
expect(screen.getAllByTestId('reltio-attribute-value')).toHaveLength(1);
|
|
593
|
+
expect(screen.getByRole('textbox')).toBeInTheDocument();
|
|
594
|
+
});
|
|
595
|
+
it('should render Attribute component for activeness attributes', function () {
|
|
596
|
+
var attributeType = EntityAttrTypes.endDate;
|
|
597
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [1690891216477] });
|
|
598
|
+
setUp({ props: props });
|
|
599
|
+
expect(screen.getByTestId('reltio-attribute-label')).toHaveTextContent(attributeType.label);
|
|
600
|
+
expect(screen.getAllByTestId('reltio-attribute-value')).toHaveLength(1);
|
|
601
|
+
expect(screen.getByRole('textbox')).toHaveValue('08/01/2023');
|
|
602
|
+
});
|
|
603
|
+
it('should return null if there are no activeness values and showEmptyEditors is falsy', function () {
|
|
604
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: EntityAttrTypes.endDate, values: [] });
|
|
605
|
+
var container = setUp({ props: props }).container;
|
|
606
|
+
expect(container).toBeEmptyDOMElement();
|
|
607
|
+
});
|
|
608
|
+
it('should render special "empty" activeness attribute if values empty and showEmptyEditors is true', function () {
|
|
609
|
+
var attributeType = EntityAttrTypes.endDate;
|
|
610
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [], showEmptyEditors: true });
|
|
611
|
+
setUp({ props: props });
|
|
612
|
+
expect(screen.getByTestId('reltio-attribute-label')).toHaveTextContent(attributeType.label);
|
|
613
|
+
expect(screen.getAllByTestId('reltio-attribute-value')).toHaveLength(1);
|
|
614
|
+
expect(screen.getByRole('textbox')).toHaveValue('');
|
|
615
|
+
});
|
|
616
|
+
it('should render null if values empty, showEmptyEditors is true but delete operation was performed', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
617
|
+
var props, _a, user, container;
|
|
618
|
+
return __generator(this, function (_b) {
|
|
619
|
+
switch (_b.label) {
|
|
620
|
+
case 0:
|
|
621
|
+
props = __assign(__assign({}, defaultProps), { attributeType: EntityAttrTypes.endDate, values: [], showEmptyEditors: true });
|
|
622
|
+
_a = setUp({ props: props }), user = _a.user, container = _a.container;
|
|
623
|
+
expect(container).not.toBeEmptyDOMElement();
|
|
624
|
+
return [4 /*yield*/, user.click(screen.getByTestId('reltio-delete-simple-attribute-button'))];
|
|
625
|
+
case 1:
|
|
626
|
+
_b.sent();
|
|
627
|
+
expect(container).toBeEmptyDOMElement();
|
|
628
|
+
return [2 /*return*/];
|
|
629
|
+
}
|
|
630
|
+
});
|
|
631
|
+
}); });
|
|
632
|
+
it('should call HasDeletionsContext.Provider.value.setHasDeletions on delete operation if context is defined', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
633
|
+
var props, contextValue, CustomProviders, _a, container, user;
|
|
634
|
+
return __generator(this, function (_b) {
|
|
635
|
+
switch (_b.label) {
|
|
636
|
+
case 0:
|
|
637
|
+
props = __assign(__assign({}, defaultProps), { attributeType: EntityAttrTypes.endDate, values: [], showEmptyEditors: true });
|
|
638
|
+
contextValue = { setHasDeletions: jest.fn(), hasDeletionsMap: {} };
|
|
639
|
+
CustomProviders = function (_a) {
|
|
640
|
+
var children = _a.children;
|
|
641
|
+
return (React.createElement(HasDeletionsContext.Provider, { value: contextValue }, children));
|
|
642
|
+
};
|
|
643
|
+
_a = setUp({ props: props, CustomProviders: CustomProviders }), container = _a.container, user = _a.user;
|
|
644
|
+
return [4 /*yield*/, user.click(screen.getByTestId('reltio-delete-simple-attribute-button'))];
|
|
645
|
+
case 1:
|
|
646
|
+
_b.sent();
|
|
647
|
+
expect(screen.getAllByTestId('reltio-attribute-value')).toHaveLength(1);
|
|
648
|
+
expect(contextValue.setHasDeletions).toHaveBeenCalledWith(props.attributeType.uri, true);
|
|
649
|
+
expect(container).not.toBeEmptyDOMElement();
|
|
650
|
+
return [2 /*return*/];
|
|
651
|
+
}
|
|
652
|
+
});
|
|
653
|
+
}); });
|
|
654
|
+
it('should not crash without context provider and use internal state for hasDeletions', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
655
|
+
var attributeType, props, _a, user, container;
|
|
656
|
+
return __generator(this, function (_b) {
|
|
657
|
+
switch (_b.label) {
|
|
658
|
+
case 0:
|
|
659
|
+
attributeType = EntityAttrTypes.endDate;
|
|
660
|
+
props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [], showEmptyEditors: true });
|
|
661
|
+
_a = setUp({ props: props }), user = _a.user, container = _a.container;
|
|
662
|
+
expect(container).not.toBeEmptyDOMElement();
|
|
663
|
+
return [4 /*yield*/, user.click(screen.getByTestId('reltio-delete-simple-attribute-button'))];
|
|
664
|
+
case 1:
|
|
665
|
+
_b.sent();
|
|
666
|
+
expect(screen.queryAllByTestId('reltio-attribute-value')).toHaveLength(0);
|
|
667
|
+
return [2 /*return*/];
|
|
668
|
+
}
|
|
669
|
+
});
|
|
670
|
+
}); });
|
|
671
|
+
it('should pass additional params to attribute component', function () {
|
|
672
|
+
var attributeType = EntityAttrTypes.endDate;
|
|
673
|
+
var additionalControlsRenderer = function () { return React.createElement("div", { "data-reltio-id": "additional-controls" }); };
|
|
674
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [1690891216477], additionalControlsRenderer: additionalControlsRenderer });
|
|
675
|
+
setUp({ props: props });
|
|
676
|
+
expect(screen.getByTestId('reltio-attribute-label')).toHaveTextContent(attributeType.label);
|
|
677
|
+
expect(screen.getAllByTestId('reltio-attribute-value')).toHaveLength(1);
|
|
678
|
+
expect(screen.getByTestId('additional-controls')).toBeInTheDocument();
|
|
207
679
|
});
|
|
208
680
|
});
|
|
209
|
-
describe('
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
{
|
|
248
|
-
parentUri: defaultProps.parentUri,
|
|
249
|
-
uri: '',
|
|
250
|
-
attributeTypeUri: attributeType.uri,
|
|
251
|
-
message: 'Cardinality error',
|
|
252
|
-
type: 'invalid',
|
|
253
|
-
severity: ErrorSeverity.ERROR
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
parentUri: defaultProps.parentUri,
|
|
257
|
-
uri: values[0].uri,
|
|
258
|
-
attributeTypeUri: attributeType.uri,
|
|
259
|
-
message: 'Attribute is invalid',
|
|
260
|
-
type: 'invalid',
|
|
261
|
-
severity: ErrorSeverity.WARNING
|
|
262
|
-
}
|
|
263
|
-
];
|
|
264
|
-
it('should filter active errors correctly', function () {
|
|
265
|
-
var mdmValues = __assign(__assign({}, defaultMdmValues), { profileErrors: errors });
|
|
266
|
-
var component = setUp({ mdmValues: mdmValues });
|
|
267
|
-
var attribute = component.find(AttributeRenderer);
|
|
268
|
-
expect(attribute.prop('errors')).toEqual([errors[0], errors[4], errors[5]]);
|
|
681
|
+
describe('errors', function () {
|
|
682
|
+
it('should render error message correctly', function () {
|
|
683
|
+
var profileErrors = [
|
|
684
|
+
{
|
|
685
|
+
type: ErrorType.invalid,
|
|
686
|
+
uri: '',
|
|
687
|
+
attributeTypeUri: 'configuration/entityTypes/HCP/attributes/Fruit',
|
|
688
|
+
parentUri: 'entities/sIeHttl',
|
|
689
|
+
message: 'Attribute is invalid',
|
|
690
|
+
source: ErrorSource.local,
|
|
691
|
+
path: []
|
|
692
|
+
}
|
|
693
|
+
];
|
|
694
|
+
var mdmValues = __assign(__assign({}, defaultMdmValues), { profileErrors: profileErrors });
|
|
695
|
+
var props = __assign(__assign({}, defaultProps), { values: [defaultValues[0]] });
|
|
696
|
+
setUp({ props: props, mdmValues: mdmValues });
|
|
697
|
+
var attribute = screen.getByTestId('reltio-edit-attribute');
|
|
698
|
+
expect(within(attribute).queryByText('Attribute is invalid')).not.toBeInTheDocument();
|
|
699
|
+
screen.getByText('Attribute is invalid');
|
|
700
|
+
});
|
|
701
|
+
it('should render active error correctly', function () {
|
|
702
|
+
var profileErrors = [
|
|
703
|
+
{
|
|
704
|
+
type: ErrorType.missed,
|
|
705
|
+
uri: '',
|
|
706
|
+
attributeTypeUri: 'configuration/entityTypes/HCP/attributes/Fruit',
|
|
707
|
+
parentUri: 'entities/sIeHttl',
|
|
708
|
+
message: 'Attribute is required',
|
|
709
|
+
source: ErrorSource.local,
|
|
710
|
+
path: []
|
|
711
|
+
}
|
|
712
|
+
];
|
|
713
|
+
var attributeType = __assign(__assign({}, defaultAttributeType), { required: true });
|
|
714
|
+
var mdmValues = __assign(__assign({}, defaultMdmValues), { profileErrors: profileErrors });
|
|
715
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType, values: [] });
|
|
716
|
+
setUp({ props: props, mdmValues: mdmValues });
|
|
717
|
+
var attribute = screen.getByTestId('reltio-edit-attribute');
|
|
718
|
+
within(attribute).getByText('Attribute is required');
|
|
269
719
|
});
|
|
270
|
-
it('should
|
|
271
|
-
var
|
|
272
|
-
var
|
|
273
|
-
|
|
274
|
-
|
|
720
|
+
it('should not render active error if attribute is hidden', function () {
|
|
721
|
+
var _a;
|
|
722
|
+
var profileErrors = [
|
|
723
|
+
{
|
|
724
|
+
type: ErrorType.missed,
|
|
725
|
+
uri: '',
|
|
726
|
+
attributeTypeUri: 'configuration/entityTypes/HCP/attributes/Fruit',
|
|
727
|
+
parentUri: 'entities/sIeHttl',
|
|
728
|
+
message: 'Attribute is required',
|
|
729
|
+
source: ErrorSource.local,
|
|
730
|
+
path: []
|
|
731
|
+
}
|
|
732
|
+
];
|
|
733
|
+
var mdmValues = __assign(__assign({}, defaultMdmValues), { profileErrors: profileErrors });
|
|
734
|
+
var hiddenAttributesContextValue = (_a = {},
|
|
735
|
+
_a[defaultProps.parentUri] = ['configuration/entityTypes/HCP/attributes/Fruit'],
|
|
736
|
+
_a);
|
|
737
|
+
setUp({ mdmValues: mdmValues, hiddenAttributesContextValue: hiddenAttributesContextValue });
|
|
738
|
+
expect(screen.queryByText('Attribute is required')).not.toBeInTheDocument();
|
|
275
739
|
});
|
|
276
740
|
});
|
|
277
741
|
});
|