@reltio/components 1.4.2071 → 1.4.2073
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/AttributesView/AttributesView.js +1 -1
- package/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -3
- package/ColumnsSettings/helpers.d.ts +3 -1
- package/ColumnsSettings/types.d.ts +8 -0
- package/CommentsContainer/CommentsContainer.js +1 -1
- package/ConfigureColumnsPopup/ConfigureColumnsPopup.d.ts +23 -40
- package/ConfigureColumnsPopup/ConfigureColumnsPopup.js +6 -26
- package/EditModeAttributesList/EditModeAttributesList.js +1 -1
- package/EditModeAttributesPager/EditModeAttributesPager.test.js +1 -1
- package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +1 -1
- package/MetadataTypesSelector/MetadataTypesSelector.d.ts +2 -1
- package/MetadataTypesSelector/components/SelectMetadataTypesList/SelectMetadataTypesList.d.ts +5 -6
- package/MoreAttributesButton/useMoreAttributesItems.d.ts +1 -1
- package/ReadOnlyAttributesList/ReadOnlyAttributesList.js +1 -1
- package/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +1 -1
- package/ReadOnlyAttributesView/ReadOnlyAttributesView.js +1 -1
- package/ScrollableTabs/ScrollableTabs.test.js +69 -19
- package/SearchHighlighter/SearchHighlighter.test.js +18 -7
- package/SelectAttributesList/SelectAttributesList.d.ts +11 -6
- package/SelectAttributesList/SelectAttributesList.js +5 -2
- package/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.test.js +109 -60
- package/SidePanelContentHeader/SidePanelContentHeader.js +2 -2
- package/SidePanelContentHeader/SidePanelContentHeader.test.js +104 -0
- package/SidePanelEmptyState/SidePanelEmptyState.js +1 -1
- package/SidePanelEmptyState/SidePanelEmptyState.test.js +24 -0
- package/SimpleAttribute/SimpleAttribute.js +1 -1
- package/SimpleAttribute/SimpleAttribute.test.js +155 -80
- package/SimpleAttributeEditor/SimpleAttributeEditor.test.js +339 -330
- package/SimpleAttributeEditor/useAttributeValuePermissions.js +1 -1
- package/SimpleDropDownSelector/SimpleDropDownSelector.test.js +86 -10
- package/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.js +1 -1
- package/SimpleDropDownSelector/components/DropDownValue/DropDownValue.js +1 -1
- package/SimpleMatchRulesBlock/SimpleMatchRulesBlock.test.js +128 -32
- package/SmallIconButton/SmallIconButton.test.js +98 -25
- package/TableWithBars/TableWithBars.test.js +98 -60
- package/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.js +1 -1
- package/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.js +1 -1
- package/Tags/Tags.d.ts +0 -1
- package/Tags/Tags.test.js +8 -7
- package/TransitiveMatchBlock/TransitiveMatchBlock.test.js +78 -22
- package/TransitiveMatchRule/TransitiveMatchRule.test.js +78 -37
- package/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.js +1 -1
- package/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.test.js +12 -18
- package/UploadFileButton/UploadFileButton.d.ts +2 -2
- package/UploadFileButton/UploadFileButton.test.js +199 -0
- package/UploadImageDialog/UploadImageDialog.test.js +1 -0
- package/UploadImageDialog/components/DividerWithText/DividerWithText.js +1 -1
- package/UploadImageDialog/components/ErrorSnackbar/ErrorSnackbar.test.js +80 -22
- package/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.js +1 -1
- package/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.test.js +162 -49
- package/ValueChip/ValueChip.test.js +7 -23
- package/VirtualGroupedList/VirtualGroupedList.d.ts +19 -31
- package/VirtualGroupedList/VirtualGroupedList.js +11 -36
- package/VirtualGroupedList/VirtualGroupedList.test.js +224 -0
- package/VirtualGroupedList/helpers.d.ts +7 -2
- package/VirtualGroupedList/helpers.js +3 -1
- package/VirtualGroupedList/index.d.ts +1 -1
- package/VirtualGroupedList/types.d.ts +10 -6
- package/VirtualGroupedList/useScrollToFocusItem.d.ts +8 -5
- package/WhiteSearchInput/{WhiteSearchInput.spec.js → WhiteSearchInput.test.js} +3 -8
- package/cjs/AttributesView/AttributesView.js +2 -2
- package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -3
- package/cjs/ColumnsSettings/helpers.d.ts +3 -1
- package/cjs/ColumnsSettings/types.d.ts +8 -0
- package/cjs/ColumnsSettings/types.js +2 -0
- package/cjs/CommentsContainer/CommentsContainer.js +1 -1
- package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.d.ts +23 -40
- package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.js +6 -26
- package/cjs/EditModeAttributesList/EditModeAttributesList.js +2 -2
- package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +2 -2
- package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +2 -2
- package/cjs/MetadataTypesSelector/MetadataTypesSelector.d.ts +2 -1
- package/cjs/MetadataTypesSelector/components/SelectMetadataTypesList/SelectMetadataTypesList.d.ts +5 -6
- package/cjs/MoreAttributesButton/useMoreAttributesItems.d.ts +1 -1
- package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.js +2 -2
- package/cjs/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +2 -2
- package/cjs/ReadOnlyAttributesView/ReadOnlyAttributesView.js +2 -2
- package/cjs/ScrollableTabs/ScrollableTabs.test.js +69 -19
- package/cjs/SearchHighlighter/SearchHighlighter.test.js +18 -7
- package/cjs/SelectAttributesList/SelectAttributesList.d.ts +11 -6
- package/cjs/SelectAttributesList/SelectAttributesList.js +5 -2
- package/cjs/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.test.js +109 -60
- package/cjs/SidePanelContentHeader/SidePanelContentHeader.js +2 -2
- package/cjs/SidePanelContentHeader/SidePanelContentHeader.test.js +109 -0
- package/cjs/SidePanelEmptyState/SidePanelEmptyState.js +1 -1
- package/cjs/SidePanelEmptyState/SidePanelEmptyState.test.js +29 -0
- package/cjs/SimpleAttribute/SimpleAttribute.js +1 -1
- package/cjs/SimpleAttribute/SimpleAttribute.test.js +155 -80
- package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.test.js +338 -352
- package/cjs/SimpleAttributeEditor/useAttributeValuePermissions.js +2 -2
- package/cjs/SimpleDropDownSelector/SimpleDropDownSelector.test.js +86 -10
- package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.js +1 -1
- package/cjs/SimpleDropDownSelector/components/DropDownValue/DropDownValue.js +1 -1
- package/cjs/SimpleMatchRulesBlock/SimpleMatchRulesBlock.test.js +127 -31
- package/cjs/SmallIconButton/SmallIconButton.test.js +98 -25
- package/cjs/TableWithBars/TableWithBars.test.js +98 -60
- package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.js +1 -1
- package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.js +1 -1
- package/cjs/Tags/Tags.d.ts +0 -1
- package/cjs/Tags/Tags.test.js +8 -7
- package/cjs/TransitiveMatchBlock/TransitiveMatchBlock.test.js +77 -21
- package/cjs/TransitiveMatchRule/TransitiveMatchRule.test.js +78 -37
- package/cjs/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.js +1 -1
- package/cjs/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.test.js +12 -18
- package/cjs/UploadFileButton/UploadFileButton.d.ts +2 -2
- package/cjs/UploadFileButton/UploadFileButton.test.js +204 -0
- package/cjs/UploadImageDialog/UploadImageDialog.test.js +1 -0
- package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.js +1 -1
- package/cjs/UploadImageDialog/components/ErrorSnackbar/ErrorSnackbar.test.js +80 -22
- package/cjs/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.js +1 -1
- package/cjs/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.test.js +162 -49
- package/cjs/ValueChip/ValueChip.test.js +7 -23
- package/cjs/VirtualGroupedList/VirtualGroupedList.d.ts +19 -31
- package/cjs/VirtualGroupedList/VirtualGroupedList.js +11 -36
- package/cjs/VirtualGroupedList/VirtualGroupedList.test.js +252 -0
- package/cjs/VirtualGroupedList/helpers.d.ts +7 -2
- package/cjs/VirtualGroupedList/helpers.js +3 -1
- package/cjs/VirtualGroupedList/index.d.ts +1 -1
- package/cjs/VirtualGroupedList/types.d.ts +10 -6
- package/cjs/VirtualGroupedList/useScrollToFocusItem.d.ts +8 -5
- package/cjs/WhiteSearchInput/{WhiteSearchInput.spec.js → WhiteSearchInput.test.js} +3 -8
- package/cjs/features/activity-log/ActivitiesFactory/ActivitiesFactory.js +1 -0
- package/cjs/features/activity-log/ActivitiesFactory/ActivitiesFactory.test.js +5 -0
- package/cjs/features/activity-log/ActivityFilterEditor/helpers.js +2 -1
- package/cjs/features/activity-log/ActivityFilterEditor/helpers.test.js +3 -1
- package/cjs/features/activity-log/ActivityLogFilter/ActivityLogFilter.test.js +16 -15
- package/cjs/features/activity-log/types.d.ts +1 -0
- package/cjs/features/activity-log/types.js +1 -0
- package/cjs/features/activity-log/utils/activities.js +1 -0
- package/cjs/features/activity-log/utils/filters.js +5 -1
- package/cjs/features/activity-log/utils/filters.test.js +4 -2
- package/cjs/features/crosswalks/hooks/useAttributeActions.test.js +24 -25
- package/cjs/features/crosswalks/hooks/useCrosswalkActions.test.js +10 -11
- package/cjs/features/history/types.d.ts +1 -0
- package/cjs/features/workflow/hooks/useChangeRequest.test.js +5 -6
- package/cjs/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +8 -9
- package/cjs/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
- package/features/activity-log/ActivitiesFactory/ActivitiesFactory.js +1 -0
- package/features/activity-log/ActivitiesFactory/ActivitiesFactory.test.js +5 -0
- package/features/activity-log/ActivityFilterEditor/helpers.js +2 -1
- package/features/activity-log/ActivityFilterEditor/helpers.test.js +3 -1
- package/features/activity-log/ActivityLogFilter/ActivityLogFilter.test.js +16 -15
- package/features/activity-log/types.d.ts +1 -0
- package/features/activity-log/types.js +1 -0
- package/features/activity-log/utils/activities.js +1 -0
- package/features/activity-log/utils/filters.js +5 -1
- package/features/activity-log/utils/filters.test.js +4 -2
- package/features/crosswalks/hooks/useAttributeActions.test.js +1 -2
- package/features/crosswalks/hooks/useCrosswalkActions.test.js +1 -2
- package/features/history/types.d.ts +1 -0
- package/features/workflow/hooks/useChangeRequest.test.js +1 -2
- package/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +1 -2
- package/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
- package/package.json +1 -1
- package/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -49
- package/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -24
- package/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -103
- package/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -13
- package/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -21
- package/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -20
- package/UploadFileButton/UploadFileButton.spec.js +0 -219
- package/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -9
- package/VirtualGroupedList/VirtualGroupedList.spec.js +0 -282
- package/cjs/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -54
- package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.d.ts +0 -1
- package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -29
- package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts +0 -1
- package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -108
- package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts +0 -1
- package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -18
- package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts +0 -1
- package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -26
- package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts +0 -1
- package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -25
- package/cjs/UploadFileButton/UploadFileButton.spec.d.ts +0 -1
- package/cjs/UploadFileButton/UploadFileButton.spec.js +0 -224
- package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts +0 -1
- package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -14
- package/cjs/VirtualGroupedList/VirtualGroupedList.spec.d.ts +0 -1
- package/cjs/VirtualGroupedList/VirtualGroupedList.spec.js +0 -287
- package/cjs/WhiteSearchInput/WhiteSearchInput.spec.d.ts +0 -1
- /package/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → ColumnsSettings/types.js} +0 -0
- /package/{SidePanelEmptyState/SidePanelEmptyState.spec.d.ts → SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
- /package/{SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts → SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
- /package/{SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts → UploadFileButton/UploadFileButton.test.d.ts} +0 -0
- /package/{TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts → VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
- /package/{TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
- /package/{UploadFileButton/UploadFileButton.spec.d.ts → cjs/SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
- /package/{UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts → cjs/SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
- /package/{VirtualGroupedList/VirtualGroupedList.spec.d.ts → cjs/UploadFileButton/UploadFileButton.test.d.ts} +0 -0
- /package/{WhiteSearchInput/WhiteSearchInput.spec.d.ts → cjs/VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
- /package/cjs/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
- /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
- /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
- /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
- /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
|
@@ -28,13 +28,15 @@ describe('filter utils tests', function () {
|
|
|
28
28
|
ActivityTypes.USER_SEARCH,
|
|
29
29
|
ActivityTypes.COMMENT_ADDED,
|
|
30
30
|
ActivityTypes.SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE,
|
|
31
|
-
ActivityTypes.ENTITY_CHANGED
|
|
31
|
+
ActivityTypes.ENTITY_CHANGED,
|
|
32
|
+
ActivityTypes.ATTRIBUTE_UNMASKED
|
|
32
33
|
]
|
|
33
34
|
};
|
|
34
35
|
var expectedResult = "(startsWith(label, 'USER_SEARCH')" +
|
|
35
36
|
" or startsWith(label, 'COMMENT_ADDED')" +
|
|
36
37
|
" or startsWith(label, 'SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE')" +
|
|
37
|
-
' or equals(items.data.type, ENTITY_CHANGED)
|
|
38
|
+
' or equals(items.data.type, ENTITY_CHANGED)' +
|
|
39
|
+
" or startsWith(label, 'ATTRIBUTE_UNMASKED'))" +
|
|
38
40
|
" and (not equals(user, 'collaboration-service'))";
|
|
39
41
|
expect(buildActivitiesFilterString(filter)).toEqual(expectedResult);
|
|
40
42
|
});
|
|
@@ -46,8 +46,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
import { useAttributeActions } from './useAttributeActions';
|
|
49
|
-
import { act } from '
|
|
50
|
-
import { renderHook } from '@testing-library/react-hooks';
|
|
49
|
+
import { renderHook, act } from '@testing-library/react-hooks';
|
|
51
50
|
import { createAttribute, entityCumulativeDelete, entityCumulativeUpdate, ignoreAttribute, pinAttribute, removeRelation, updateAttribute } from '@reltio/mdm-sdk';
|
|
52
51
|
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { entityCumulativeDelete: jest.fn(), entityCumulativeUpdate: jest.fn(), ignoreAttribute: jest.fn(), pinAttribute: jest.fn(), removeRelation: jest.fn(), updateAttribute: jest.fn(), createAttribute: jest.fn() })); });
|
|
53
52
|
describe('useAttributeActions', function () {
|
|
@@ -46,8 +46,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
import { useCrosswalkActions } from './useCrosswalkActions';
|
|
49
|
-
import { act } from '
|
|
50
|
-
import { renderHook } from '@testing-library/react-hooks';
|
|
49
|
+
import { renderHook, act } from '@testing-library/react-hooks';
|
|
51
50
|
import { addCrosswalk, addCrosswalkInContributor, editCrosswalkAttribute, deleteCrosswalkAttribute, deleteCrosswalk } from '@reltio/mdm-sdk';
|
|
52
51
|
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { addCrosswalk: jest.fn(), addCrosswalkInContributor: jest.fn(), editCrosswalkAttribute: jest.fn(), deleteCrosswalkAttribute: jest.fn(), deleteCrosswalk: jest.fn() })); });
|
|
53
52
|
describe('useCrosswalkActions tests', function () {
|
|
@@ -37,6 +37,7 @@ export declare const HistoryChangeTypes: {
|
|
|
37
37
|
COMMENT_UPDATED: ActivityTypes.COMMENT_UPDATED;
|
|
38
38
|
COMMENT_DELETED: ActivityTypes.COMMENT_DELETED;
|
|
39
39
|
ANALYTICS_ATTRIBUTES_CHANGED: ActivityTypes.ANALYTICS_ATTRIBUTES_CHANGED;
|
|
40
|
+
ATTRIBUTE_UNMASKED: ActivityTypes.ATTRIBUTE_UNMASKED;
|
|
40
41
|
SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE: ActivityTypes.SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE;
|
|
41
42
|
GROUP_CREATED: ActivityTypes.GROUP_CREATED;
|
|
42
43
|
GROUP_REMOVED: ActivityTypes.GROUP_REMOVED;
|
|
@@ -45,9 +45,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
45
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
import { renderHook } from '@testing-library/react-hooks';
|
|
48
|
+
import { renderHook, act } from '@testing-library/react-hooks';
|
|
49
49
|
import { getDataChangeRequest, getEntitiesByUris } from '@reltio/mdm-sdk';
|
|
50
|
-
import { act } from 'react-dom/test-utils';
|
|
51
50
|
import { ErrorPopup } from '../../../ErrorPopup';
|
|
52
51
|
import { useChangeRequest } from './useChangeRequest';
|
|
53
52
|
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getDataChangeRequest: jest.fn(), getEntitiesByUris: jest.fn() })); });
|
|
@@ -55,8 +55,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
55
55
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
56
|
};
|
|
57
57
|
import React from 'react';
|
|
58
|
-
import { renderHook } from '@testing-library/react-hooks';
|
|
59
|
-
import { act } from 'react-dom/test-utils';
|
|
58
|
+
import { renderHook, act } from '@testing-library/react-hooks';
|
|
60
59
|
import { getFilteredEntities, getEntity } from '@reltio/mdm-sdk';
|
|
61
60
|
import { MdmModuleProvider } from '../../contexts/MdmModuleContext';
|
|
62
61
|
import { useCommentsEntitiesMap } from './useCommentsEntitiesMap';
|
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
item: {
|
|
6
|
-
item: Record<string, unknown>;
|
|
7
|
-
moveTo?: number;
|
|
8
|
-
};
|
|
2
|
+
import { VirtualGroupedListItem, VirtualGroupedListMainItem } from '../../VirtualGroupedList/types';
|
|
3
|
+
type Item<T> = T & {
|
|
4
|
+
notSelectable?: boolean;
|
|
9
5
|
};
|
|
10
|
-
type Props = {
|
|
11
|
-
items: Item[];
|
|
6
|
+
type Props<T, S> = {
|
|
7
|
+
items: VirtualGroupedListMainItem<Item<T>>[];
|
|
12
8
|
open: boolean;
|
|
13
9
|
onSelectFocusedItem: (item: {
|
|
14
|
-
item: Item
|
|
15
|
-
groupData: Item
|
|
10
|
+
item: Item<T>;
|
|
11
|
+
groupData: VirtualGroupedListItem<Item<T>>;
|
|
16
12
|
}) => void;
|
|
17
|
-
selectedItems:
|
|
13
|
+
selectedItems: S[];
|
|
18
14
|
onClose?: (event: React.KeyboardEvent) => void;
|
|
19
15
|
};
|
|
20
|
-
export declare const useKeyboardNavigation: ({ items, open, onSelectFocusedItem, selectedItems, onClose }: Props) => {
|
|
16
|
+
export declare const useKeyboardNavigation: <T, S>({ items, open, onSelectFocusedItem, selectedItems, onClose }: Props<T, S>) => {
|
|
21
17
|
focusIndex: number;
|
|
22
18
|
handleKeyDown: (event: React.KeyboardEvent) => boolean;
|
|
23
19
|
};
|
package/package.json
CHANGED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { shallow } from 'enzyme';
|
|
3
|
-
import { act } from 'react-dom/test-utils';
|
|
4
|
-
import Typography from '@mui/material/Typography';
|
|
5
|
-
import Divider from '@mui/material/Divider';
|
|
6
|
-
import { SmallIconButtonWithTooltip } from '../SmallIconButton';
|
|
7
|
-
import { SidePanelContentHeader } from './SidePanelContentHeader';
|
|
8
|
-
describe('SidePanelContentHeader test', function () {
|
|
9
|
-
var mainTitle = 'mainTitle';
|
|
10
|
-
var secondTitle = 'secondTitle';
|
|
11
|
-
var rightContent = 'rightContent';
|
|
12
|
-
it('should renders all component well', function () {
|
|
13
|
-
var onCloseFn = jest.fn();
|
|
14
|
-
var component = shallow(React.createElement(SidePanelContentHeader, { onClose: onCloseFn, mainTitle: mainTitle, secondTitle: secondTitle, rightContent: rightContent }));
|
|
15
|
-
expect(component.find(SmallIconButtonWithTooltip)).toHaveLength(1);
|
|
16
|
-
var typographies = component.find(Typography);
|
|
17
|
-
expect(typographies).toHaveLength(2);
|
|
18
|
-
expect(typographies.at(0).text()).toContain(mainTitle);
|
|
19
|
-
expect(typographies.at(1).text()).toContain(secondTitle);
|
|
20
|
-
expect(component.find(Divider)).toHaveLength(1);
|
|
21
|
-
expect(component.text()).toContain(rightContent);
|
|
22
|
-
});
|
|
23
|
-
it('should renders component witn content', function () {
|
|
24
|
-
var onCloseFn = jest.fn();
|
|
25
|
-
var textContent = 'Test content';
|
|
26
|
-
var content = React.createElement("div", null, textContent);
|
|
27
|
-
var component = shallow(React.createElement(SidePanelContentHeader, { onClose: onCloseFn, content: content }));
|
|
28
|
-
expect(component.find(SmallIconButtonWithTooltip)).toHaveLength(1);
|
|
29
|
-
expect(component.text()).toEqual(textContent);
|
|
30
|
-
});
|
|
31
|
-
it('should not render Divider with empty secondTitle', function () {
|
|
32
|
-
var onCloseFn = jest.fn();
|
|
33
|
-
var component = shallow(React.createElement(SidePanelContentHeader, { onClose: onCloseFn, mainTitle: mainTitle, rightContent: rightContent }));
|
|
34
|
-
expect(component.find(SmallIconButtonWithTooltip)).toHaveLength(1);
|
|
35
|
-
var typographies = component.find(Typography);
|
|
36
|
-
expect(typographies).toHaveLength(1);
|
|
37
|
-
expect(typographies.at(0).text()).toContain(mainTitle);
|
|
38
|
-
expect(component.find(Divider)).toHaveLength(0);
|
|
39
|
-
expect(component.text()).toContain(rightContent);
|
|
40
|
-
});
|
|
41
|
-
it('should call onClose after button click', function () {
|
|
42
|
-
var onCloseFn = jest.fn();
|
|
43
|
-
var component = shallow(React.createElement(SidePanelContentHeader, { onClose: onCloseFn, mainTitle: mainTitle, secondTitle: secondTitle, rightContent: rightContent }));
|
|
44
|
-
act(function () {
|
|
45
|
-
component.find(SmallIconButtonWithTooltip).prop('onClick')({});
|
|
46
|
-
});
|
|
47
|
-
expect(onCloseFn).toHaveBeenCalled();
|
|
48
|
-
});
|
|
49
|
-
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { shallow } from 'enzyme';
|
|
3
|
-
import { SidePanelEmptyState } from './SidePanelEmptyState';
|
|
4
|
-
import { AttributesList as AttributesListIcon, NoData as NoDataIcon } from '../icons';
|
|
5
|
-
describe('SidePanelEmptyState test', function () {
|
|
6
|
-
it('should render correct default state', function () {
|
|
7
|
-
var wrapper = shallow(React.createElement(SidePanelEmptyState, { text: "test" }));
|
|
8
|
-
expect(wrapper.find(AttributesListIcon).length).toBe(1);
|
|
9
|
-
expect(wrapper.find('.textBox')).toHaveLength(1);
|
|
10
|
-
expect(wrapper.find('.text').text()).toBe('test');
|
|
11
|
-
expect(wrapper.find('.secondaryText').length).toBe(0);
|
|
12
|
-
});
|
|
13
|
-
it('should render icon passed in IconRenderer', function () {
|
|
14
|
-
var wrapper = shallow(React.createElement(SidePanelEmptyState, { IconRenderer: NoDataIcon, text: "test" }));
|
|
15
|
-
expect(wrapper.find(NoDataIcon).length).toBe(1);
|
|
16
|
-
expect(wrapper.find('.text').text()).toBe('test');
|
|
17
|
-
});
|
|
18
|
-
it('should render secondary text', function () {
|
|
19
|
-
var wrapper = shallow(React.createElement(SidePanelEmptyState, { text: "test", secondaryText: "secondaryTest" }));
|
|
20
|
-
expect(wrapper.find(AttributesListIcon).length).toBe(1);
|
|
21
|
-
expect(wrapper.find('.text').text()).toBe('test');
|
|
22
|
-
expect(wrapper.find('.secondaryText').text()).toBe('secondaryTest');
|
|
23
|
-
});
|
|
24
|
-
});
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import React from 'react';
|
|
13
|
-
import { render, screen } from '@testing-library/react';
|
|
14
|
-
import SimpleAttributeEditor from './SimpleAttributeEditor';
|
|
15
|
-
import { Mode } from '@reltio/mdm-sdk';
|
|
16
|
-
import { MdmModuleProvider } from '../contexts/MdmModuleContext';
|
|
17
|
-
import { AlwaysVisibleAttributesContext } from '../contexts/AllwaysVisibleAttributesContext';
|
|
18
|
-
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { checkMetadataPermission: function () { return false; } })); });
|
|
19
|
-
var mdmValues = {
|
|
20
|
-
dependentLookups: {
|
|
21
|
-
editors: {}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
describe('SimpleAttributeEditor without permissions', function () {
|
|
25
|
-
var onAddFn = jest.fn();
|
|
26
|
-
var onDeleteFn = jest.fn();
|
|
27
|
-
var onChangeFn = jest.fn();
|
|
28
|
-
var defaultProps = {
|
|
29
|
-
mode: Mode.Editing,
|
|
30
|
-
isReltioCrosswalk: true,
|
|
31
|
-
onAddAttributes: onAddFn,
|
|
32
|
-
onDeleteAttribute: onDeleteFn,
|
|
33
|
-
onChangeAttribute: onChangeFn
|
|
34
|
-
};
|
|
35
|
-
var setUp = function (_a) {
|
|
36
|
-
var props = _a.props, _b = _a.alwaysVisibleAttributes, alwaysVisibleAttributes = _b === void 0 ? [] : _b;
|
|
37
|
-
return render(React.createElement(AlwaysVisibleAttributesContext.Provider, { value: alwaysVisibleAttributes },
|
|
38
|
-
React.createElement(MdmModuleProvider, { values: mdmValues },
|
|
39
|
-
React.createElement(SimpleAttributeEditor, __assign({}, defaultProps, props)))));
|
|
40
|
-
};
|
|
41
|
-
it('should render just text, if there is only READ permission', function () {
|
|
42
|
-
var props = {
|
|
43
|
-
attributeValue: {
|
|
44
|
-
value: 'some string',
|
|
45
|
-
uri: '1'
|
|
46
|
-
},
|
|
47
|
-
attributeType: {
|
|
48
|
-
access: ['READ'],
|
|
49
|
-
type: 'String',
|
|
50
|
-
uri: 'configuration/entityTypes/HCA/attributes/InternalCustomer'
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
setUp({ props: props });
|
|
54
|
-
expect(screen.getByText('some string')).toBeInTheDocument();
|
|
55
|
-
expect(screen.queryByTestId('reltio-delete-simple-attribute-button')).not.toBeInTheDocument();
|
|
56
|
-
});
|
|
57
|
-
it('should render text and DELETE button, if there are only READ and DELETE permission', function () {
|
|
58
|
-
var props = {
|
|
59
|
-
attributeValue: {
|
|
60
|
-
value: 'some string',
|
|
61
|
-
uri: '1'
|
|
62
|
-
},
|
|
63
|
-
attributeType: {
|
|
64
|
-
access: ['READ', 'DELETE'],
|
|
65
|
-
type: 'String',
|
|
66
|
-
uri: 'configuration/entityTypes/HCA/attributes/InternalCustomer'
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
setUp({ props: props });
|
|
70
|
-
expect(screen.getByText('some string')).toBeInTheDocument();
|
|
71
|
-
expect(screen.getByTestId('reltio-delete-simple-attribute-button')).toBeInTheDocument();
|
|
72
|
-
});
|
|
73
|
-
it('should render always visible attribute without value correct, if there are only READ permission', function () {
|
|
74
|
-
var props = {
|
|
75
|
-
attributeValue: {
|
|
76
|
-
uri: 'uri$$'
|
|
77
|
-
},
|
|
78
|
-
attributeType: {
|
|
79
|
-
access: ['READ'],
|
|
80
|
-
type: 'String',
|
|
81
|
-
uri: 'configuration/entityTypes/HCA/attributes/InternalCustomer'
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
setUp({ props: props, alwaysVisibleAttributes: ['configuration/entityTypes/HCA/attributes/InternalCustomer'] });
|
|
85
|
-
expect(screen.queryByRole('textbox')).not.toBeInTheDocument();
|
|
86
|
-
expect(screen.queryByTestId('reltio-delete-simple-attribute-button')).not.toBeInTheDocument();
|
|
87
|
-
});
|
|
88
|
-
it('should render always visible attribute without value correct, if there are only READ and DELETE permission', function () {
|
|
89
|
-
var props = {
|
|
90
|
-
attributeValue: {
|
|
91
|
-
uri: 'uri$$'
|
|
92
|
-
},
|
|
93
|
-
attributeType: {
|
|
94
|
-
access: ['READ', 'DELETE'],
|
|
95
|
-
type: 'String',
|
|
96
|
-
uri: 'configuration/entityTypes/HCA/attributes/InternalCustomer'
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
setUp({ props: props, alwaysVisibleAttributes: ['configuration/entityTypes/HCA/attributes/InternalCustomer'] });
|
|
100
|
-
expect(screen.queryByRole('textbox')).not.toBeInTheDocument();
|
|
101
|
-
expect(screen.getByTestId('reltio-delete-simple-attribute-button')).toBeInTheDocument();
|
|
102
|
-
});
|
|
103
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render, screen } from '@testing-library/react';
|
|
3
|
-
import { DropDownPlaceholder } from './DropDownPlaceholder';
|
|
4
|
-
describe('DropDownPlaceholder tests', function () {
|
|
5
|
-
it('should render children', function () {
|
|
6
|
-
render(React.createElement(DropDownPlaceholder, null, "text"));
|
|
7
|
-
expect(screen.getByText('text')).toBeInTheDocument();
|
|
8
|
-
});
|
|
9
|
-
it('should transfer innerProps', function () {
|
|
10
|
-
render(React.createElement(DropDownPlaceholder, { innerProps: { className: 'testClassName' } }, "text"));
|
|
11
|
-
expect(screen.getByText('text')).toHaveClass('testClassName');
|
|
12
|
-
});
|
|
13
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ReactWrapper, shallow } from 'enzyme';
|
|
3
|
-
import { ExpandedValueTooltip } from '../../../ExpandedValueTooltip';
|
|
4
|
-
import { AttributeCellRenderer } from './AttributeCellRenderer';
|
|
5
|
-
describe('AttributeCellRenderer', function () {
|
|
6
|
-
it('should render main parts', function () {
|
|
7
|
-
var wrapper = shallow(React.createElement(AttributeCellRenderer, null));
|
|
8
|
-
var cell = wrapper.find(ExpandedValueTooltip);
|
|
9
|
-
expect(cell).toHaveLength(1);
|
|
10
|
-
expect(cell.prop('value')).toEqual('');
|
|
11
|
-
expect(new ReactWrapper(cell.prop('children')).text()).toBe('');
|
|
12
|
-
});
|
|
13
|
-
it('should render correct value', function () {
|
|
14
|
-
var value = 'Test';
|
|
15
|
-
var wrapper = shallow(React.createElement(AttributeCellRenderer, { value: value }));
|
|
16
|
-
var cell = wrapper.find(ExpandedValueTooltip);
|
|
17
|
-
expect(cell).toHaveLength(1);
|
|
18
|
-
expect(cell.prop('value')).toEqual(value);
|
|
19
|
-
expect(new ReactWrapper(cell.prop('children')).text()).toBe(value);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ReactWrapper, shallow } from 'enzyme';
|
|
3
|
-
import DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';
|
|
4
|
-
import { ExpandedValueTooltip } from '../../../ExpandedValueTooltip';
|
|
5
|
-
import { HeadCellRenderer } from './HeadCellRenderer';
|
|
6
|
-
describe('HeadCellRenderer', function () {
|
|
7
|
-
it('should render main parts', function () {
|
|
8
|
-
var header = 'Test header';
|
|
9
|
-
var wrapper = shallow(React.createElement(HeadCellRenderer, { headCellData: { label: header } }));
|
|
10
|
-
var cell = wrapper.find(DefaultHeadCellRenderer);
|
|
11
|
-
expect(cell).toHaveLength(1);
|
|
12
|
-
var headCellData = cell.prop('headCellData');
|
|
13
|
-
var cellData = new ReactWrapper(headCellData.label);
|
|
14
|
-
expect(cellData).toHaveLength(1);
|
|
15
|
-
var labelWrapper = cellData.find(ExpandedValueTooltip);
|
|
16
|
-
expect(labelWrapper).toHaveLength(1);
|
|
17
|
-
expect(labelWrapper.prop('value')).toEqual(header);
|
|
18
|
-
expect(new ReactWrapper(labelWrapper.prop('children')).text()).toBe(header);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
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);
|
|
12
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
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;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
import React from 'react';
|
|
38
|
-
import { mount } from 'enzyme';
|
|
39
|
-
import { act } from 'react-dom/test-utils';
|
|
40
|
-
import Button from '@mui/material/Button';
|
|
41
|
-
import Link from '@mui/material/Link';
|
|
42
|
-
import Typography from '@mui/material/Typography';
|
|
43
|
-
import { ErrorPopup } from '../ErrorPopup';
|
|
44
|
-
import { ExpandedValueTooltip } from '../ExpandedValueTooltip';
|
|
45
|
-
import { UploadFileButton } from './UploadFileButton';
|
|
46
|
-
describe('UploadFileButton tests', function () {
|
|
47
|
-
describe('init mode behavior', function () {
|
|
48
|
-
var onUpload, supportedFileTypes;
|
|
49
|
-
beforeEach(function () {
|
|
50
|
-
onUpload = jest.fn().mockReturnValue(Promise.resolve({ link: 'link' }));
|
|
51
|
-
supportedFileTypes = ['*.txt', '*.csv'];
|
|
52
|
-
});
|
|
53
|
-
it('should show upload button by default', function () {
|
|
54
|
-
var component = mount(React.createElement(UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
|
|
55
|
-
expect(component.find(Button)).toHaveLength(1);
|
|
56
|
-
});
|
|
57
|
-
it('should set correct properties for input', function () {
|
|
58
|
-
var component = mount(React.createElement(UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
|
|
59
|
-
expect(component.find('input').prop('accept')).toBe('*.txt,*.csv');
|
|
60
|
-
expect(component.find('input').prop('type')).toBe('file');
|
|
61
|
-
});
|
|
62
|
-
it('should call onUpload', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
63
|
-
var component, event;
|
|
64
|
-
return __generator(this, function (_a) {
|
|
65
|
-
switch (_a.label) {
|
|
66
|
-
case 0:
|
|
67
|
-
component = mount(React.createElement(UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
|
|
68
|
-
event = { target: { files: [{ name: 'test' }] } };
|
|
69
|
-
return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
70
|
-
return __generator(this, function (_a) {
|
|
71
|
-
component.find('input').simulate('change', event);
|
|
72
|
-
return [2 /*return*/];
|
|
73
|
-
});
|
|
74
|
-
}); })];
|
|
75
|
-
case 1:
|
|
76
|
-
_a.sent();
|
|
77
|
-
expect(onUpload).toHaveBeenCalledWith({ name: 'test' });
|
|
78
|
-
return [2 /*return*/];
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}); });
|
|
82
|
-
it('should invoke onError on file upload error', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
83
|
-
var onError, ERROR_MESSAGE, onUpload, component, event;
|
|
84
|
-
return __generator(this, function (_a) {
|
|
85
|
-
switch (_a.label) {
|
|
86
|
-
case 0:
|
|
87
|
-
onError = jest.fn();
|
|
88
|
-
ERROR_MESSAGE = 'Error';
|
|
89
|
-
onUpload = jest.fn().mockRejectedValue(ERROR_MESSAGE);
|
|
90
|
-
component = mount(React.createElement(UploadFileButton, { onUpload: onUpload, onError: onError, supportedFileTypes: supportedFileTypes }));
|
|
91
|
-
event = { target: { files: [{ name: 'test' }] } };
|
|
92
|
-
return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
93
|
-
return __generator(this, function (_a) {
|
|
94
|
-
component.find('input').simulate('change', event);
|
|
95
|
-
return [2 /*return*/];
|
|
96
|
-
});
|
|
97
|
-
}); })];
|
|
98
|
-
case 1:
|
|
99
|
-
_a.sent();
|
|
100
|
-
expect(onError).toHaveBeenCalledWith(ERROR_MESSAGE);
|
|
101
|
-
return [2 /*return*/];
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}); });
|
|
105
|
-
it('should use default onError prop if it is not specified', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
106
|
-
var addErrorSpy, ERROR_MESSAGE, onUpload, component, event;
|
|
107
|
-
return __generator(this, function (_a) {
|
|
108
|
-
switch (_a.label) {
|
|
109
|
-
case 0:
|
|
110
|
-
addErrorSpy = jest.spyOn(ErrorPopup, 'addError').mockImplementation(function () { });
|
|
111
|
-
ERROR_MESSAGE = 'Error';
|
|
112
|
-
onUpload = jest.fn().mockRejectedValue(ERROR_MESSAGE);
|
|
113
|
-
component = mount(React.createElement(UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
|
|
114
|
-
event = { target: { files: [{ name: 'test' }] } };
|
|
115
|
-
return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
116
|
-
return __generator(this, function (_a) {
|
|
117
|
-
component.find('input').simulate('change', event);
|
|
118
|
-
return [2 /*return*/];
|
|
119
|
-
});
|
|
120
|
-
}); })];
|
|
121
|
-
case 1:
|
|
122
|
-
_a.sent();
|
|
123
|
-
expect(addErrorSpy).toHaveBeenCalledWith({
|
|
124
|
-
title: 'File upload error',
|
|
125
|
-
message: ERROR_MESSAGE
|
|
126
|
-
});
|
|
127
|
-
return [2 /*return*/];
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}); });
|
|
131
|
-
it('should use errorMessage for error popup if it available', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
132
|
-
var addErrorSpy, ERROR_OBJECT, onUpload, component, event;
|
|
133
|
-
return __generator(this, function (_a) {
|
|
134
|
-
switch (_a.label) {
|
|
135
|
-
case 0:
|
|
136
|
-
addErrorSpy = jest.spyOn(ErrorPopup, 'addError').mockImplementation(function () { });
|
|
137
|
-
ERROR_OBJECT = { errorMessage: 'errorMessage text' };
|
|
138
|
-
onUpload = jest.fn().mockRejectedValue(ERROR_OBJECT);
|
|
139
|
-
component = mount(React.createElement(UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
|
|
140
|
-
event = { target: { files: [{ name: 'test' }] } };
|
|
141
|
-
return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
142
|
-
return __generator(this, function (_a) {
|
|
143
|
-
component.find('input').simulate('change', event);
|
|
144
|
-
return [2 /*return*/];
|
|
145
|
-
});
|
|
146
|
-
}); })];
|
|
147
|
-
case 1:
|
|
148
|
-
_a.sent();
|
|
149
|
-
expect(addErrorSpy).toHaveBeenCalledWith({
|
|
150
|
-
title: 'File upload error',
|
|
151
|
-
message: ERROR_OBJECT.errorMessage
|
|
152
|
-
});
|
|
153
|
-
return [2 /*return*/];
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
}); });
|
|
157
|
-
});
|
|
158
|
-
describe('uploaded mode behavior', function () {
|
|
159
|
-
var onUpload, onCancel, supportedFileTypes;
|
|
160
|
-
beforeEach(function () {
|
|
161
|
-
onUpload = jest.fn().mockImplementation(function () { return Promise.resolve({ link: 'link' }); });
|
|
162
|
-
onCancel = jest.fn();
|
|
163
|
-
supportedFileTypes = ['*.txt', '*.csv'];
|
|
164
|
-
});
|
|
165
|
-
it('should show link and cancel button after file uploading', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
166
|
-
var component, event, linkComponent;
|
|
167
|
-
return __generator(this, function (_a) {
|
|
168
|
-
switch (_a.label) {
|
|
169
|
-
case 0:
|
|
170
|
-
component = mount(React.createElement(UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
|
|
171
|
-
event = { target: { files: [{ name: 'test' }] } };
|
|
172
|
-
return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
173
|
-
return __generator(this, function (_a) {
|
|
174
|
-
component.find('input').simulate('change', event);
|
|
175
|
-
return [2 /*return*/];
|
|
176
|
-
});
|
|
177
|
-
}); })];
|
|
178
|
-
case 1:
|
|
179
|
-
_a.sent();
|
|
180
|
-
return [4 /*yield*/, Promise.resolve()];
|
|
181
|
-
case 2:
|
|
182
|
-
_a.sent();
|
|
183
|
-
component.update();
|
|
184
|
-
linkComponent = component.find(Link);
|
|
185
|
-
expect(linkComponent.text()).toBe('test');
|
|
186
|
-
return [2 /*return*/];
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}); });
|
|
190
|
-
it('should show link and cancel button in uploaded mode', function () {
|
|
191
|
-
var link = 'link';
|
|
192
|
-
var filename = 'filename';
|
|
193
|
-
var component = mount(React.createElement(UploadFileButton, { link: link, filename: filename }));
|
|
194
|
-
component.update();
|
|
195
|
-
expect(component.find(ExpandedValueTooltip)).toHaveLength(1);
|
|
196
|
-
var linkComponent = component.find(Link);
|
|
197
|
-
expect(linkComponent.prop('href')).toBe('link');
|
|
198
|
-
expect(linkComponent.text()).toBe('filename');
|
|
199
|
-
});
|
|
200
|
-
it('should render text instead of link if isValidLink prop is false', function () {
|
|
201
|
-
var link = 'link';
|
|
202
|
-
var filename = 'filename';
|
|
203
|
-
var component = mount(React.createElement(UploadFileButton, { link: link, filename: filename, isValidLink: false }));
|
|
204
|
-
component.update();
|
|
205
|
-
expect(component.find(ExpandedValueTooltip)).toHaveLength(1);
|
|
206
|
-
expect(component.find(Link)).toHaveLength(0);
|
|
207
|
-
expect(component.find(Typography).text()).toBe('filename');
|
|
208
|
-
});
|
|
209
|
-
it('should invoke onCancel on cancel icon click', function () {
|
|
210
|
-
var link = 'link';
|
|
211
|
-
var filename = 'filename';
|
|
212
|
-
var component = mount(React.createElement(UploadFileButton, { link: link, onCancel: onCancel, filename: filename }));
|
|
213
|
-
component.update();
|
|
214
|
-
var cancelIcon = component.find('svg');
|
|
215
|
-
cancelIcon.simulate('click');
|
|
216
|
-
expect(onCancel).toHaveBeenCalled();
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { shallow } from 'enzyme';
|
|
3
|
-
import { DividerWithText } from './DividerWithText';
|
|
4
|
-
describe('DividerWithText tests', function () {
|
|
5
|
-
it('should render correctly', function () {
|
|
6
|
-
var component = shallow(React.createElement(DividerWithText, null, "Hello world"));
|
|
7
|
-
expect(component.find('.text').text()).toBe('Hello world');
|
|
8
|
-
});
|
|
9
|
-
});
|