@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,361 +9,376 @@ 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 {
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
49
|
+
import { render, screen, within } from '@testing-library/react';
|
|
50
|
+
import userEvent from '@testing-library/user-event';
|
|
51
|
+
import { ErrorType, MetadataPermissions, Mode } from '@reltio/mdm-sdk';
|
|
52
|
+
import { MdmModuleProvider } from '../contexts/MdmModuleContext';
|
|
53
|
+
import { ScrollToElementContext, ScrollType } from '../contexts/ScrollToElementContext';
|
|
18
54
|
import { nestedAttributeType } from './nestedAttrType.test-data';
|
|
19
55
|
import { nestedAttributeValue } from './nestedAttrValue.test-data';
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
56
|
+
import EditModeComplexAttribute from './EditModeComplexAttribute';
|
|
57
|
+
var defaultMdmValues = { dependentLookups: { editors: {}, structure: {}, initedTypeUris: [] } };
|
|
58
|
+
var defaultProps = {
|
|
59
|
+
metadata: {
|
|
60
|
+
entityTypes: [],
|
|
61
|
+
relationTypes: [
|
|
62
|
+
{
|
|
63
|
+
uri: 'configuration/relationTypes/InternalHCPtoHCP',
|
|
64
|
+
label: 'HCP to HCP',
|
|
65
|
+
attributes: [nestedAttributeType]
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
label: 'Label!!!',
|
|
70
|
+
attributeType: nestedAttributeType,
|
|
71
|
+
attributeValue: nestedAttributeValue,
|
|
72
|
+
attributeTypesList: nestedAttributeType.attributes,
|
|
73
|
+
mode: Mode.Editing,
|
|
74
|
+
onAddAttributes: jest.fn(),
|
|
75
|
+
onDeleteAttribute: jest.fn(),
|
|
76
|
+
onChangeAttribute: jest.fn(),
|
|
77
|
+
additionalControlsRenderer: jest.fn(function (_a) {
|
|
78
|
+
var attributeType = _a.attributeType;
|
|
79
|
+
return React.createElement("div", null,
|
|
80
|
+
"Additional Controls ",
|
|
81
|
+
attributeType.label);
|
|
82
|
+
})
|
|
83
|
+
};
|
|
84
|
+
var defaultScrollToElementContextValue = {
|
|
85
|
+
element: null,
|
|
86
|
+
highlightError: jest.fn(),
|
|
87
|
+
type: ScrollType.Error,
|
|
88
|
+
scrollIntoRef: jest.fn()
|
|
89
|
+
};
|
|
90
|
+
var setUp = function (_a) {
|
|
91
|
+
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.scrollToElementContextValue, scrollToElementContextValue = _e === void 0 ? defaultScrollToElementContextValue : _e;
|
|
92
|
+
var user = userEvent.setup();
|
|
93
|
+
var Providers = function (_a) {
|
|
94
|
+
var children = _a.children;
|
|
95
|
+
return (React.createElement(MdmModuleProvider, { values: mdmValues }, children));
|
|
47
96
|
};
|
|
48
|
-
var
|
|
49
|
-
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
React.createElement(ScrollToElementContext.Provider, { value: {
|
|
55
|
-
element: error,
|
|
56
|
-
highlightError: highlightErrorSpy,
|
|
57
|
-
type: ScrollType.Error,
|
|
58
|
-
scrollIntoRef: scrollIntoRefSpy
|
|
59
|
-
} },
|
|
60
|
-
React.createElement(EditModeComplexAttribute, __assign({}, props), children))));
|
|
97
|
+
var result = render(React.createElement(ScrollToElementContext.Provider, { value: scrollToElementContextValue },
|
|
98
|
+
React.createElement(EditModeComplexAttribute, __assign({}, props))), { wrapper: Providers });
|
|
99
|
+
var rerender = function (_a) {
|
|
100
|
+
var newProps = _a.props, newScrollToElementContextValue = _a.scrollToElementContextValue;
|
|
101
|
+
return result.rerender(React.createElement(ScrollToElementContext.Provider, { value: __assign(__assign({}, scrollToElementContextValue), newScrollToElementContextValue) },
|
|
102
|
+
React.createElement(EditModeComplexAttribute, __assign({}, props, newProps))));
|
|
61
103
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
104
|
+
return __assign(__assign({}, result), { rerender: rerender, user: user });
|
|
105
|
+
};
|
|
106
|
+
describe('Edit mode complex attribute tests', function () {
|
|
107
|
+
afterEach(function () {
|
|
66
108
|
jest.clearAllMocks();
|
|
67
109
|
});
|
|
68
110
|
it('should render expand button and label', function () {
|
|
69
|
-
var props = __assign({}, defaultProps);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
expect(
|
|
74
|
-
expect(
|
|
75
|
-
expect(
|
|
76
|
-
expect(component.find(EditModeAttributesList).length).toBe(0);
|
|
77
|
-
expect(findCreateAttributeButton(component).length).toBe(0);
|
|
78
|
-
var complexWrapper = component.find('.complexWrapper');
|
|
79
|
-
expect(complexWrapper.hasClass(scrollToAttributeError.errorClassName)).toBeTruthy();
|
|
80
|
-
expect(complexWrapper.getElement().ref).toBe(scrollToAttributeError.ref);
|
|
111
|
+
var props = __assign(__assign({}, defaultProps), { onDeleteAttribute: undefined });
|
|
112
|
+
setUp({ props: props });
|
|
113
|
+
screen.getByTestId('arrow-expand-button');
|
|
114
|
+
screen.getByText('Label!!!');
|
|
115
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
116
|
+
expect(screen.queryByTestId('reltio-delete-complex-attribute-button')).not.toBeInTheDocument();
|
|
117
|
+
expect(screen.queryByText('Create attribute')).not.toBeInTheDocument();
|
|
81
118
|
});
|
|
82
119
|
it('should render lazy variant of control if lazy prop is true', function () {
|
|
83
|
-
var props = __assign({ lazy: true }
|
|
84
|
-
|
|
85
|
-
expect(
|
|
86
|
-
|
|
87
|
-
expect(findDeleteButton(component).length).toBe(0);
|
|
88
|
-
expect(component.find(EditModeAttributesList).length).toBe(0);
|
|
89
|
-
expect(findCreateAttributeButton(component).length).toBe(1);
|
|
120
|
+
var props = __assign(__assign({}, defaultProps), { lazy: true });
|
|
121
|
+
setUp({ props: props });
|
|
122
|
+
expect(screen.queryByTestId('reltio-edit-mode-complex-attribute')).not.toBeInTheDocument();
|
|
123
|
+
screen.getByText('Create attribute');
|
|
90
124
|
});
|
|
91
125
|
it('should render delete button if onDeleteAttribute prop is specified', function () {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
expect(findDeleteButton(component).length).toBe(1);
|
|
126
|
+
setUp();
|
|
127
|
+
screen.getByTestId('reltio-delete-complex-attribute-button');
|
|
95
128
|
});
|
|
96
129
|
it('should not render delete button if hideDeleteButton prop is true', function () {
|
|
97
|
-
var props = __assign(__assign({}, defaultProps), {
|
|
98
|
-
|
|
99
|
-
expect(
|
|
130
|
+
var props = __assign(__assign({}, defaultProps), { hideDeleteButton: true });
|
|
131
|
+
setUp({ props: props });
|
|
132
|
+
expect(screen.queryByTestId('reltio-delete-complex-attribute-button')).not.toBeInTheDocument();
|
|
100
133
|
});
|
|
101
134
|
it('should not render delete button if there are no DELETE permissions', function () {
|
|
102
|
-
var
|
|
103
|
-
var
|
|
104
|
-
|
|
135
|
+
var attributeType = __assign(__assign({}, nestedAttributeType), { access: [MetadataPermissions.READ, MetadataPermissions.UPDATE] });
|
|
136
|
+
var props = __assign(__assign({}, defaultProps), { attributeType: attributeType });
|
|
137
|
+
setUp({ props: props });
|
|
138
|
+
expect(screen.queryByTestId('reltio-delete-complex-attribute-button')).not.toBeInTheDocument();
|
|
105
139
|
});
|
|
106
|
-
it('should call onDeleteAttribute prop with attributeType and value uri after click on delete button', function () {
|
|
107
|
-
var
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
140
|
+
it('should call onDeleteAttribute prop with attributeType and value uri after click on delete button', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
141
|
+
var user;
|
|
142
|
+
return __generator(this, function (_a) {
|
|
143
|
+
switch (_a.label) {
|
|
144
|
+
case 0:
|
|
145
|
+
user = setUp().user;
|
|
146
|
+
return [4 /*yield*/, user.click(screen.getByTestId('reltio-delete-complex-attribute-button'))];
|
|
147
|
+
case 1:
|
|
148
|
+
_a.sent();
|
|
149
|
+
expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
|
|
150
|
+
uri: defaultProps.attributeValue.uri,
|
|
151
|
+
attributeType: defaultProps.attributeType,
|
|
152
|
+
attributeValue: defaultProps.attributeValue
|
|
153
|
+
});
|
|
154
|
+
return [2 /*return*/];
|
|
155
|
+
}
|
|
114
156
|
});
|
|
115
|
-
});
|
|
157
|
+
}); });
|
|
116
158
|
it('should render additional controls if additionalControlsRenderer prop is specified', function () {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
var component = setUp(props);
|
|
123
|
-
var additionalControls = component.find(AdditionalControls);
|
|
124
|
-
expect(additionalControls.length).toBe(1);
|
|
125
|
-
expect(additionalControls.prop('attributeValue')).toBe(props.attributeValue);
|
|
126
|
-
expect(additionalControls.prop('attributeType')).toBe(props.attributeType);
|
|
127
|
-
});
|
|
128
|
-
it('should render EditModeAttributesList after click on expand button', function () {
|
|
129
|
-
var props = __assign(__assign({}, defaultProps), { onDeleteAttribute: jest.fn() });
|
|
130
|
-
var children = React.createElement("span", null, "children");
|
|
131
|
-
var component = setUp(props, children);
|
|
132
|
-
expect(component.find(EditModeAttributesList).length).toBe(0);
|
|
133
|
-
act(function () {
|
|
134
|
-
findExpandButton(component).prop('onClick')();
|
|
159
|
+
setUp();
|
|
160
|
+
screen.getByText('Additional Controls Additional Attributes');
|
|
161
|
+
expect(defaultProps.additionalControlsRenderer).toHaveBeenCalledWith({
|
|
162
|
+
attributeType: defaultProps.attributeType,
|
|
163
|
+
attributeValue: defaultProps.attributeValue
|
|
135
164
|
});
|
|
136
|
-
component.update();
|
|
137
|
-
var attributesList = component.find(EditModeAttributesList);
|
|
138
|
-
expect(attributesList.length).toBe(1);
|
|
139
|
-
expect(attributesList.prop('children')).toBe(children);
|
|
140
165
|
});
|
|
141
|
-
it('should render EditModeAttributesList
|
|
142
|
-
var props
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
166
|
+
it('should render EditModeAttributesList after click on expand button', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
167
|
+
var props, user;
|
|
168
|
+
return __generator(this, function (_a) {
|
|
169
|
+
switch (_a.label) {
|
|
170
|
+
case 0:
|
|
171
|
+
props = __assign(__assign({}, defaultProps), { children: React.createElement("div", null, "Children") });
|
|
172
|
+
user = setUp({ props: props }).user;
|
|
173
|
+
expect(screen.queryByText('More attributes')).not.toBeInTheDocument();
|
|
174
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
175
|
+
return [4 /*yield*/, user.click(screen.getByTestId('arrow-expand-button'))];
|
|
176
|
+
case 1:
|
|
177
|
+
_a.sent();
|
|
178
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(2);
|
|
179
|
+
screen.getByText('More attributes');
|
|
180
|
+
screen.getByText('Children');
|
|
181
|
+
return [2 /*return*/];
|
|
182
|
+
}
|
|
148
183
|
});
|
|
149
|
-
|
|
150
|
-
var attributesList = component.find(EditModeAttributesList);
|
|
151
|
-
expect(attributesList.length).toBe(1);
|
|
152
|
-
expect(attributesList.prop('children')).toBe(children);
|
|
153
|
-
expect(attributesList.prop('parentAttributeType')).toEqual(props.attributeType);
|
|
154
|
-
});
|
|
184
|
+
}); });
|
|
155
185
|
it('should render EditModeAttributesList if expand prop was passed', function () {
|
|
156
|
-
var props = __assign(__assign({}, defaultProps), { expanded: true,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
expect(attributesList.prop('children')).toBe(children);
|
|
162
|
-
});
|
|
163
|
-
it('should be expanded by default for new attributes', function () {
|
|
164
|
-
var props = __assign(__assign({}, defaultProps), { attributeValue: __assign(__assign({}, nestedAttributeValue), { uri: 'relations/sIeHttl/attributes/AdditionalAttributes/uri$$123' }), onDeleteAttribute: jest.fn() });
|
|
165
|
-
var children = React.createElement("span", null, "children");
|
|
166
|
-
var component = setUp(props, children);
|
|
167
|
-
var attributesList = component.find(EditModeAttributesList);
|
|
168
|
-
expect(attributesList.length).toBe(1);
|
|
169
|
-
expect(attributesList.prop('children')).toBe(children);
|
|
170
|
-
act(function () {
|
|
171
|
-
findExpandButton(component).at(0).prop('onClick')();
|
|
172
|
-
});
|
|
173
|
-
component.update();
|
|
174
|
-
expect(component.find(EditModeAttributesList).length).toBe(0);
|
|
186
|
+
var props = __assign(__assign({}, defaultProps), { expanded: true, children: React.createElement("div", null, "Children") });
|
|
187
|
+
setUp({ props: props });
|
|
188
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(2);
|
|
189
|
+
screen.getByText('More attributes');
|
|
190
|
+
screen.getByText('Children');
|
|
175
191
|
});
|
|
176
|
-
it('should
|
|
177
|
-
var props
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
192
|
+
it('should be expanded by default for new attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
193
|
+
var props, user;
|
|
194
|
+
return __generator(this, function (_a) {
|
|
195
|
+
switch (_a.label) {
|
|
196
|
+
case 0:
|
|
197
|
+
props = __assign(__assign({}, defaultProps), { attributeValue: __assign(__assign({}, nestedAttributeValue), { uri: 'relations/sIeHttl/attributes/AdditionalAttributes/uri$$123' }), children: React.createElement("div", null, "Children") });
|
|
198
|
+
user = setUp({ props: props }).user;
|
|
199
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(2);
|
|
200
|
+
screen.getByText('More attributes');
|
|
201
|
+
screen.getByText('Children');
|
|
202
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('arrow-expand-button')[0])];
|
|
203
|
+
case 1:
|
|
204
|
+
_a.sent();
|
|
205
|
+
expect(screen.queryByText('More attributes')).not.toBeInTheDocument();
|
|
206
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
207
|
+
return [2 /*return*/];
|
|
208
|
+
}
|
|
181
209
|
});
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
210
|
+
}); });
|
|
211
|
+
it('should render attributes correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
212
|
+
var user, complexAttributeActions, attributeActions, complexAttributeLabels, attributeTitles, attributeValues;
|
|
213
|
+
return __generator(this, function (_a) {
|
|
214
|
+
switch (_a.label) {
|
|
215
|
+
case 0:
|
|
216
|
+
user = setUp().user;
|
|
217
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('arrow-expand-button')[0])];
|
|
218
|
+
case 1:
|
|
219
|
+
_a.sent();
|
|
220
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('arrow-expand-button')[1])];
|
|
221
|
+
case 2:
|
|
222
|
+
_a.sent();
|
|
223
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('arrow-expand-button')[2])];
|
|
224
|
+
case 3:
|
|
225
|
+
_a.sent();
|
|
226
|
+
complexAttributeActions = screen.getAllByTestId('reltio-complex-attribute-actions');
|
|
227
|
+
expect(complexAttributeActions).toHaveLength(3);
|
|
228
|
+
expect(complexAttributeActions[0]).toHaveTextContent('Additional Controls Additional Attributes');
|
|
229
|
+
expect(complexAttributeActions[1]).toHaveTextContent('Additional Controls Sub Nested');
|
|
230
|
+
expect(complexAttributeActions[2]).toHaveTextContent('Additional Controls Sub Sub Nested');
|
|
231
|
+
attributeActions = screen.getAllByTestId('reltio-attribute-actions');
|
|
232
|
+
expect(attributeActions).toHaveLength(1);
|
|
233
|
+
expect(attributeActions[0]).toHaveTextContent('Additional Controls Attribute Value');
|
|
234
|
+
complexAttributeLabels = screen.getAllByTestId('reltio-attribute-complex-label');
|
|
235
|
+
expect(complexAttributeLabels).toHaveLength(3);
|
|
236
|
+
expect(complexAttributeLabels[0]).toHaveTextContent('Label!!!');
|
|
237
|
+
expect(complexAttributeLabels[1]).toHaveTextContent('<No label>');
|
|
238
|
+
expect(complexAttributeLabels[2]).toHaveTextContent('<No label>');
|
|
239
|
+
attributeTitles = screen.getAllByTestId('reltio-attribute-label');
|
|
240
|
+
expect(attributeTitles).toHaveLength(3);
|
|
241
|
+
expect(attributeTitles[0]).toHaveTextContent('Sub Nested');
|
|
242
|
+
expect(attributeTitles[1]).toHaveTextContent('Sub Sub Nested');
|
|
243
|
+
expect(attributeTitles[2]).toHaveTextContent('Attribute Value');
|
|
244
|
+
attributeValues = screen.getAllByTestId('reltio-attribute-value');
|
|
245
|
+
expect(attributeValues).toHaveLength(1);
|
|
246
|
+
expect(within(attributeValues[0]).getByRole('textbox')).toHaveValue('12321');
|
|
247
|
+
return [2 /*return*/];
|
|
248
|
+
}
|
|
197
249
|
});
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
250
|
+
}); });
|
|
251
|
+
it('should call onDeleteAttribute prop with deep nested attributeType and value uri after click on delete button in deep nested', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
252
|
+
var user;
|
|
253
|
+
return __generator(this, function (_a) {
|
|
254
|
+
switch (_a.label) {
|
|
255
|
+
case 0:
|
|
256
|
+
user = setUp().user;
|
|
257
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('arrow-expand-button')[0])];
|
|
258
|
+
case 1:
|
|
259
|
+
_a.sent();
|
|
260
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('arrow-expand-button')[1])];
|
|
261
|
+
case 2:
|
|
262
|
+
_a.sent();
|
|
263
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('arrow-expand-button')[2])];
|
|
264
|
+
case 3:
|
|
265
|
+
_a.sent();
|
|
266
|
+
return [4 /*yield*/, user.click(screen.getAllByTestId('reltio-delete-complex-attribute-button')[2])];
|
|
267
|
+
case 4:
|
|
268
|
+
_a.sent();
|
|
269
|
+
expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith({
|
|
270
|
+
uri: defaultProps.attributeValue.value.SubNested[0].value.SubSubNested[0].uri,
|
|
271
|
+
attributeType: defaultProps.attributeType.attributes[0].attributes[0],
|
|
272
|
+
attributeValue: defaultProps.attributeValue.value.SubNested[0].value.SubSubNested[0]
|
|
273
|
+
});
|
|
274
|
+
return [2 /*return*/];
|
|
275
|
+
}
|
|
209
276
|
});
|
|
210
|
-
|
|
211
|
-
complexes = component.find(EditModeComplexAttribute);
|
|
212
|
-
expect(complexes.length).toBe(3);
|
|
213
|
-
var subSubComplex = complexes.at(2);
|
|
214
|
-
act(function () {
|
|
215
|
-
findExpandButton(subSubComplex).prop('onClick')();
|
|
216
|
-
});
|
|
217
|
-
component.update();
|
|
218
|
-
};
|
|
219
|
-
it('should render deep nested attributes', function () {
|
|
220
|
-
var AdditionalControls = function () { return React.createElement("div", null); };
|
|
221
|
-
var props = __assign(__assign({}, defaultProps), { onAddAttributes: jest.fn(), onDeleteAttribute: jest.fn(), onChangeAttribute: jest.fn(), additionalControlsRenderer: function (_a) {
|
|
222
|
-
var attributeValue = _a.attributeValue, attributeType = _a.attributeType;
|
|
223
|
-
return (React.createElement(AdditionalControls, { attributeValue: attributeValue, attributeType: attributeType }));
|
|
224
|
-
}, crosswalks: [], mode: Mode.Editing, showEmptyEditors: true });
|
|
225
|
-
var component = setUp(props);
|
|
226
|
-
expect(component.find(EditModeComplexAttribute).length).toBe(1);
|
|
227
|
-
expandSubNesteds(component);
|
|
228
|
-
expect(component.find(EditModeComplexAttribute).length).toBe(3);
|
|
229
|
-
var deepComplex = component.find(EditModeComplexAttribute).at(2);
|
|
230
|
-
var deepComplexValue = props.attributeValue.value.SubNested[0].value.SubSubNested[0];
|
|
231
|
-
var deepComplexAttrType = props.attributeType.attributes[0].attributes[0];
|
|
232
|
-
expect(deepComplex.prop('attributeValue')).toBe(deepComplexValue);
|
|
233
|
-
expect(deepComplex.prop('attributeType')).toBe(deepComplexAttrType);
|
|
234
|
-
var deepAdditionalControlInsideComplex = deepComplex.find(AdditionalControls);
|
|
235
|
-
expect(deepAdditionalControlInsideComplex.length).toBe(2); // for complex and simple inside
|
|
236
|
-
expect(deepAdditionalControlInsideComplex.at(0).prop('attributeValue')).toBe(deepComplexValue);
|
|
237
|
-
expect(deepAdditionalControlInsideComplex.at(0).prop('attributeType')).toBe(deepComplexAttrType);
|
|
238
|
-
var deepSimple = component.find('SimpleAttributeEditor');
|
|
239
|
-
expect(deepSimple.length).toBe(1);
|
|
240
|
-
var deepSimpleValue = props.attributeValue.value.SubNested[0].value.SubSubNested[0].value.AttributeValue[0];
|
|
241
|
-
var deepSimpleAttrType = props.attributeType.attributes[0].attributes[0].attributes[0];
|
|
242
|
-
expect(deepSimple.prop('attributeValue')).toBe(deepSimpleValue);
|
|
243
|
-
expect(deepSimple.prop('attributeType')).toBe(deepSimpleAttrType);
|
|
244
|
-
var deepAdditionalControlInsideSimple = deepSimple.find(AdditionalControls);
|
|
245
|
-
expect(deepAdditionalControlInsideSimple.length).toBe(1);
|
|
246
|
-
expect(deepAdditionalControlInsideSimple.prop('attributeValue')).toBe(deepSimpleValue);
|
|
247
|
-
expect(deepAdditionalControlInsideSimple.prop('attributeType')).toBe(deepSimpleAttrType);
|
|
248
|
-
});
|
|
249
|
-
it('should call onDeleteAttribute prop with deep nested attributeType and value uri after click on delete button in deep nested', function () {
|
|
250
|
-
var props = __assign(__assign({}, defaultProps), { onAddAttributes: jest.fn(), onDeleteAttribute: jest.fn(), onChangeAttribute: jest.fn(), crosswalks: [], mode: Mode.Editing, showEmptyEditors: true });
|
|
251
|
-
var component = mount(React.createElement(MdmModuleProvider, { values: mdmValues },
|
|
252
|
-
React.createElement(EditModeComplexAttribute, __assign({}, props))));
|
|
253
|
-
expect(component.find(EditModeComplexAttribute).length).toBe(1);
|
|
254
|
-
expandSubNesteds(component);
|
|
255
|
-
expect(component.find(EditModeComplexAttribute).length).toBe(3);
|
|
256
|
-
var deepComplex = component.find(EditModeComplexAttribute).at(2);
|
|
257
|
-
act(function () {
|
|
258
|
-
findDeleteButton(deepComplex).prop('onClick')();
|
|
259
|
-
});
|
|
260
|
-
expect(props.onDeleteAttribute).toHaveBeenCalledWith({
|
|
261
|
-
uri: props.attributeValue.value.SubNested[0].value.SubSubNested[0].uri,
|
|
262
|
-
attributeType: props.attributeType.attributes[0].attributes[0],
|
|
263
|
-
attributeValue: props.attributeValue.value.SubNested[0].value.SubSubNested[0]
|
|
264
|
-
});
|
|
265
|
-
});
|
|
277
|
+
}); });
|
|
266
278
|
it('should not show error message if error prop is not specified', function () {
|
|
267
|
-
|
|
268
|
-
expect(
|
|
279
|
+
setUp();
|
|
280
|
+
expect(screen.queryByTestId('error-message')).not.toBeInTheDocument();
|
|
269
281
|
});
|
|
270
282
|
it('should show error message if ownError prop is specified', function () {
|
|
271
283
|
var props = __assign(__assign({}, defaultProps), { ownError: {
|
|
272
|
-
type:
|
|
273
|
-
message: 'error
|
|
284
|
+
type: ErrorType.invalid,
|
|
285
|
+
message: 'error description',
|
|
274
286
|
attributeTypeUri: 'any1',
|
|
275
287
|
parentUri: 'any2',
|
|
276
288
|
uri: 'any3'
|
|
277
289
|
} });
|
|
278
|
-
|
|
279
|
-
expect(
|
|
280
|
-
expect(
|
|
290
|
+
setUp({ props: props });
|
|
291
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
292
|
+
expect(screen.getByTestId('error-message')).toHaveTextContent(props.ownError.message);
|
|
281
293
|
});
|
|
282
294
|
it('should become expanded and show special error message if errors props contains descendants errors', function () {
|
|
283
|
-
var props = __assign(__assign({}, defaultProps), {
|
|
284
|
-
var
|
|
285
|
-
expect(
|
|
286
|
-
expect(
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
295
|
+
var props = __assign(__assign({}, defaultProps), { errors: [] });
|
|
296
|
+
var rerender = setUp({ props: props }).rerender;
|
|
297
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
298
|
+
expect(screen.queryByTestId('error-message')).not.toBeInTheDocument();
|
|
299
|
+
rerender({
|
|
300
|
+
props: {
|
|
301
|
+
errors: [
|
|
302
|
+
{
|
|
303
|
+
parentUri: 'relations/sIeHttl/attributes/AdditionalAttributes/2zoXFFwDl/SubNested/gdggfgfgdf/SubSubNested/1',
|
|
304
|
+
uri: '',
|
|
305
|
+
attributeTypeUri: 'configuration/relationTypes/InternalHCPtoHCP/attributes/AdditionalAttributes/attributes/SubNested/attributes/SubSubNested/attributes/AttributeValue',
|
|
306
|
+
message: 'Attribute is required',
|
|
307
|
+
type: ErrorType.missed
|
|
308
|
+
}
|
|
309
|
+
]
|
|
310
|
+
}
|
|
297
311
|
});
|
|
298
|
-
|
|
299
|
-
expect(
|
|
300
|
-
expect(component.find(ErrorWrapper).at(0).prop('errorMessage')).toBe('Has an incorrect value');
|
|
312
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(2);
|
|
313
|
+
expect(screen.getByTestId('error-message')).toHaveTextContent('Has an incorrect value');
|
|
301
314
|
});
|
|
302
|
-
it('should become collapsed after setting "state" prop to "deleted"', function () {
|
|
303
|
-
var
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
315
|
+
it('should become collapsed after setting "state" prop to "deleted"', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
316
|
+
var _a, user, rerender;
|
|
317
|
+
return __generator(this, function (_b) {
|
|
318
|
+
switch (_b.label) {
|
|
319
|
+
case 0:
|
|
320
|
+
_a = setUp(), user = _a.user, rerender = _a.rerender;
|
|
321
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
322
|
+
expect(screen.getByTestId('reltio-attribute-complex-label')).not.toHaveClass('deleted');
|
|
323
|
+
expect(screen.getByTestId('arrow-expand-button')).not.toBeDisabled();
|
|
324
|
+
screen.getByTestId('reltio-delete-complex-attribute-button');
|
|
325
|
+
return [4 /*yield*/, user.click(screen.getByTestId('arrow-expand-button'))];
|
|
326
|
+
case 1:
|
|
327
|
+
_b.sent();
|
|
328
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(2);
|
|
329
|
+
rerender({ props: { state: 'deleted' } });
|
|
330
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
331
|
+
expect(screen.getByTestId('reltio-attribute-complex-label')).toHaveClass('deleted');
|
|
332
|
+
expect(screen.getByTestId('arrow-expand-button')).toBeDisabled();
|
|
333
|
+
expect(screen.queryByTestId('reltio-delete-complex-attribute-button')).not.toBeInTheDocument();
|
|
334
|
+
return [2 /*return*/];
|
|
335
|
+
}
|
|
311
336
|
});
|
|
312
|
-
|
|
313
|
-
expect(isComplexAttributeExpanded(component)).toBe(true);
|
|
314
|
-
component.setProps({
|
|
315
|
-
state: 'deleted'
|
|
316
|
-
});
|
|
317
|
-
component.update();
|
|
318
|
-
expect(isComplexAttributeExpanded(component)).toBe(false);
|
|
319
|
-
expect(findDeleteButton(component).length).toBe(0);
|
|
320
|
-
expect(findLabel(component).hasClass('deleted')).toBe(true);
|
|
321
|
-
expect(findExpandButton(component).prop('disabled')).toBe(true);
|
|
322
|
-
});
|
|
337
|
+
}); });
|
|
323
338
|
it('should render "edited" badge after setting "state" prop to "edited"', function () {
|
|
324
|
-
var
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
state: 'edited'
|
|
329
|
-
});
|
|
330
|
-
component.update();
|
|
331
|
-
expect(component.find('.actions').text()).toBe('(edited)');
|
|
339
|
+
var rerender = setUp().rerender;
|
|
340
|
+
expect(screen.queryByText('(edited)')).not.toBeInTheDocument();
|
|
341
|
+
rerender({ props: { state: 'edited' } });
|
|
342
|
+
screen.getByText('(edited)');
|
|
332
343
|
});
|
|
333
344
|
describe('useScrollToAttributeError tests', function () {
|
|
334
345
|
var fullError = {
|
|
335
346
|
type: 'invalid',
|
|
336
347
|
attributeTypeUri: defaultProps.attributeType.uri,
|
|
337
|
-
parentUri:
|
|
348
|
+
parentUri: null,
|
|
349
|
+
name: '',
|
|
338
350
|
uri: defaultProps.attributeValue.uri,
|
|
339
351
|
source: 'validationService',
|
|
340
352
|
severity: 'ERROR'
|
|
341
353
|
};
|
|
342
354
|
it('should not highlight error if it have wrong uri', function () {
|
|
343
|
-
var
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
355
|
+
var error = __assign(__assign({}, fullError), { uri: 'different' });
|
|
356
|
+
var scrollToElementContextValue = __assign(__assign({}, defaultScrollToElementContextValue), { element: error });
|
|
357
|
+
setUp({ scrollToElementContextValue: scrollToElementContextValue });
|
|
358
|
+
expect(screen.getByTestId('reltio-edit-mode-complex-attribute')).not.toHaveClass('highlightError');
|
|
359
|
+
expect(scrollToElementContextValue.scrollIntoRef).not.toHaveBeenCalled();
|
|
348
360
|
});
|
|
349
361
|
it('should highlight error if it have same parent uri, uri, and attribute type uri', function () {
|
|
350
|
-
var
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
scrollIntoRef: scrollIntoRefSpy,
|
|
355
|
-
type: ScrollType.Error
|
|
356
|
-
};
|
|
357
|
-
expect(component.find('EditModeComplexAttribute').prop('highlightedError')).toMatchObject(highlightedError);
|
|
358
|
-
expect(useScrollToAttributeError.mock.calls[0][0]).toMatchObject({ highlightedError: highlightedError });
|
|
362
|
+
var scrollToElementContextValue = __assign(__assign({}, defaultScrollToElementContextValue), { element: fullError });
|
|
363
|
+
setUp({ scrollToElementContextValue: scrollToElementContextValue });
|
|
364
|
+
expect(screen.getByTestId('reltio-edit-mode-complex-attribute')).toHaveClass('highlightError');
|
|
365
|
+
expect(scrollToElementContextValue.scrollIntoRef).toHaveBeenCalled();
|
|
359
366
|
});
|
|
360
367
|
it('should pass isHighlightedPath=false prop if path is not contains uri', function () {
|
|
361
|
-
var
|
|
362
|
-
expect(
|
|
368
|
+
var rerender = setUp().rerender;
|
|
369
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
370
|
+
var error = __assign(__assign({}, fullError), { path: [] });
|
|
371
|
+
var scrollToElementContextValue = __assign(__assign({}, defaultScrollToElementContextValue), { element: error });
|
|
372
|
+
rerender({ scrollToElementContextValue: scrollToElementContextValue });
|
|
373
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
363
374
|
});
|
|
364
375
|
it('should pass isHighlightedPath=true prop if path is contains uri', function () {
|
|
365
|
-
var
|
|
366
|
-
expect(
|
|
376
|
+
var rerender = setUp().rerender;
|
|
377
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(1);
|
|
378
|
+
var error = __assign(__assign({}, fullError), { path: [{ value: defaultProps.attributeValue }] });
|
|
379
|
+
var scrollToElementContextValue = __assign(__assign({}, defaultScrollToElementContextValue), { element: error });
|
|
380
|
+
rerender({ scrollToElementContextValue: scrollToElementContextValue });
|
|
381
|
+
expect(screen.getAllByTestId('reltio-edit-mode-complex-attribute')).toHaveLength(2);
|
|
367
382
|
});
|
|
368
383
|
});
|
|
369
384
|
});
|