@reltio/components 1.4.2071 → 1.4.2072
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/crosswalks/hooks/useAttributeActions.test.js +24 -25
- package/cjs/features/crosswalks/hooks/useCrosswalkActions.test.js +10 -11
- 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/crosswalks/hooks/useAttributeActions.test.js +1 -2
- package/features/crosswalks/hooks/useCrosswalkActions.test.js +1 -2
- 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
package/Tags/Tags.d.ts
CHANGED
package/Tags/Tags.test.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Tag } from './components/Tag';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import { MdmModuleProvider } from '../contexts/MdmModuleContext';
|
|
5
4
|
import { Tags } from './Tags';
|
|
6
5
|
describe('Tags tests', function () {
|
|
7
6
|
var values = ['tag1'];
|
|
8
7
|
var className = 'class1';
|
|
8
|
+
var entity = { uri: 'uri1' };
|
|
9
|
+
var uiPath = 'https://uiPath';
|
|
9
10
|
it('should render SpecialAttributesArray with correct props', function () {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
expect(
|
|
13
|
-
expect(
|
|
11
|
+
render(React.createElement(MdmModuleProvider, { values: { entity: entity, uiPath: uiPath } },
|
|
12
|
+
React.createElement(Tags, { values: values, className: className })));
|
|
13
|
+
expect(screen.getByTestId('reltio-attribute-value')).toHaveClass('class1');
|
|
14
|
+
expect(screen.getByText('tag1')).toHaveAttribute('href', 'https://uiPath#p~com.reltio.plugins.tags.TagPerspective_e~uri1_tag~tag1');
|
|
14
15
|
});
|
|
15
16
|
});
|
|
@@ -1,9 +1,54 @@
|
|
|
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
|
+
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
|
+
};
|
|
1
48
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import { MatchRulesBadge } from '../MatchRulesBadge';
|
|
6
|
-
import { TransitiveMatchBlock, MatchRuleBadgeWithTooltip } from './TransitiveMatchBlock';
|
|
49
|
+
import { render, screen, within } from '@testing-library/react';
|
|
50
|
+
import userEvent from '@testing-library/user-event';
|
|
51
|
+
import { TransitiveMatchBlock } from './TransitiveMatchBlock';
|
|
7
52
|
var matchRules = [
|
|
8
53
|
{ uri: 'uri1', label: 'label1' },
|
|
9
54
|
{ uri: 'uri2', label: 'label2' }
|
|
@@ -12,23 +57,34 @@ var transitiveMatchRules = [
|
|
|
12
57
|
{ label: 'TLabel1', matchRules: matchRules },
|
|
13
58
|
{ label: 'TLabel2', matchRules: matchRules }
|
|
14
59
|
];
|
|
60
|
+
var defaultProps = { transitiveMatchRules: transitiveMatchRules };
|
|
61
|
+
var setUp = function (props) {
|
|
62
|
+
if (props === void 0) { props = {}; }
|
|
63
|
+
var user = userEvent.setup();
|
|
64
|
+
return __assign({ user: user }, render(React.createElement(TransitiveMatchBlock, __assign({}, defaultProps, props))));
|
|
65
|
+
};
|
|
15
66
|
describe('TransitiveMatchBlock test', function () {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
67
|
+
it('should expand TransitiveMatchRule correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
68
|
+
var user, matchRules;
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0:
|
|
72
|
+
user = setUp().user;
|
|
73
|
+
expect(screen.getByText('Transitive matches')).toBeInTheDocument();
|
|
74
|
+
expect(screen.queryByTestId('match-rule-wrapper')).not.toBeInTheDocument();
|
|
75
|
+
return [4 /*yield*/, user.click(screen.getByTestId('arrow-expand-button'))];
|
|
76
|
+
case 1:
|
|
77
|
+
_a.sent();
|
|
78
|
+
matchRules = screen.getAllByTestId('match-rule-wrapper');
|
|
79
|
+
expect(matchRules).toHaveLength(2);
|
|
80
|
+
expect(within(matchRules[0]).getByText('TLabel1')).toBeInTheDocument();
|
|
81
|
+
expect(within(matchRules[0]).getByText('Match rules')).toBeInTheDocument();
|
|
82
|
+
expect(within(matchRules[0]).getByText('- label1')).toBeInTheDocument();
|
|
83
|
+
expect(within(matchRules[1]).getByText('TLabel2')).toBeInTheDocument();
|
|
84
|
+
expect(within(matchRules[1]).getByText('Match rules')).toBeInTheDocument();
|
|
85
|
+
expect(within(matchRules[1]).getByText('- label2')).toBeInTheDocument();
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
}
|
|
23
88
|
});
|
|
24
|
-
|
|
25
|
-
var transitiveMatchRuleComponents = getTransitiveMatchRule(component);
|
|
26
|
-
expect(transitiveMatchRuleComponents).toHaveLength(2);
|
|
27
|
-
expect(transitiveMatchRuleComponents.at(0).prop('label')).toBe(transitiveMatchRules[0].label);
|
|
28
|
-
expect(transitiveMatchRuleComponents.at(1).prop('label')).toBe(transitiveMatchRules[1].label);
|
|
29
|
-
});
|
|
30
|
-
it('should render correct MatchRulesBadge', function () {
|
|
31
|
-
var component = shallow(React.createElement(TransitiveMatchBlock, { transitiveMatchRules: transitiveMatchRules }));
|
|
32
|
-
expect(component.find(MatchRuleBadgeWithTooltip).text()).toBe('Transitive matches');
|
|
33
|
-
});
|
|
89
|
+
}); });
|
|
34
90
|
});
|
|
@@ -9,45 +9,86 @@ 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 { SimpleMatchRulesBuilder } from '../SimpleMatchRulesBuilder';
|
|
16
|
-
import { SimpleMatchRules } from '../SimpleMatchRules';
|
|
17
|
-
import { ArrowExpandButton } from '../ArrowExpandButton';
|
|
49
|
+
import { render, screen } from '@testing-library/react';
|
|
50
|
+
import userEvent from '@testing-library/user-event';
|
|
18
51
|
import { TransitiveMatchRule } from './TransitiveMatchRule';
|
|
19
52
|
describe('TransitiveMatchRule tests', function () {
|
|
20
|
-
var
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
var defaultProps = {
|
|
54
|
+
label: 'TLabel1',
|
|
55
|
+
matchRules: [
|
|
56
|
+
{ uri: 'uri1', label: 'label1' },
|
|
57
|
+
{ uri: 'uri2', label: 'label2' }
|
|
58
|
+
]
|
|
59
|
+
};
|
|
60
|
+
var setUp = function (props) {
|
|
61
|
+
if (props === void 0) { props = {}; }
|
|
62
|
+
var user = userEvent.setup();
|
|
63
|
+
return __assign({ user: user }, render(React.createElement(TransitiveMatchRule, __assign({}, defaultProps, props))));
|
|
64
|
+
};
|
|
65
|
+
it('should render SimpleMatchRulesBuilder when expanded', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
66
|
+
var user, expandButton, matchRules;
|
|
67
|
+
return __generator(this, function (_a) {
|
|
68
|
+
switch (_a.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
user = setUp().user;
|
|
71
|
+
expect(screen.getByText(defaultProps.label)).toBeInTheDocument();
|
|
72
|
+
expect(screen.queryByTestId('simple-match-rules')).not.toBeInTheDocument();
|
|
73
|
+
expandButton = screen.getByTestId('arrow-expand-button');
|
|
74
|
+
expect(expandButton.firstChild).not.toHaveClass('expanded');
|
|
75
|
+
return [4 /*yield*/, user.click(expandButton)];
|
|
76
|
+
case 1:
|
|
77
|
+
_a.sent();
|
|
78
|
+
expect(expandButton.firstChild).toHaveClass('expanded');
|
|
79
|
+
expect(screen.getByTestId('simple-match-rules')).toBeInTheDocument();
|
|
80
|
+
expect(screen.getByText('Match rules')).toBeInTheDocument();
|
|
81
|
+
matchRules = screen.getAllByTestId('match-rule-info');
|
|
82
|
+
expect(matchRules).toHaveLength(defaultProps.matchRules.length);
|
|
83
|
+
expect(matchRules[0]).toHaveTextContent('• label1');
|
|
84
|
+
expect(matchRules[1]).toHaveTextContent('• label2');
|
|
85
|
+
return [4 /*yield*/, user.click(screen.getByTestId('arrow-expand-button'))];
|
|
86
|
+
case 2:
|
|
87
|
+
_a.sent();
|
|
88
|
+
expect(expandButton.firstChild).not.toHaveClass('expanded');
|
|
89
|
+
expect(screen.queryByTestId('simple-match-rules')).not.toBeInTheDocument();
|
|
90
|
+
return [2 /*return*/];
|
|
91
|
+
}
|
|
49
92
|
});
|
|
50
|
-
|
|
51
|
-
expect(getArrowExpandButton(component).prop('expanded')).toBe(true);
|
|
52
|
-
});
|
|
93
|
+
}); });
|
|
53
94
|
});
|
|
@@ -6,7 +6,7 @@ export var TransitiveMatchRulesTooltip = function (_a) {
|
|
|
6
6
|
var styles = useStyles();
|
|
7
7
|
return (React.createElement(React.Fragment, null, transitiveMatchRules.map(function (_a, index) {
|
|
8
8
|
var label = _a.label, matchRules = _a.matchRules;
|
|
9
|
-
return (React.createElement("div", { key: index, className: styles.ruleWrapper },
|
|
9
|
+
return (React.createElement("div", { key: index, "data-reltio-id": "match-rule-wrapper", className: styles.ruleWrapper },
|
|
10
10
|
React.createElement("div", { className: styles.label }, label),
|
|
11
11
|
React.createElement(MatchRulesTooltip, { matchRules: matchRules })));
|
|
12
12
|
})));
|
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen, within } from '@testing-library/react';
|
|
3
3
|
import { TransitiveMatchRulesTooltip } from './TransitiveMatchRulesTooltip';
|
|
4
|
-
import { MatchRulesTooltip } from '../MatchRulesTooltip';
|
|
5
4
|
describe('TransitiveMatchRulesTooltip tests', function () {
|
|
6
5
|
var rules = [
|
|
7
|
-
{ label: 'label1', matchRules: [{ uri: 'uri1', label: '
|
|
8
|
-
{ label: 'label2', matchRules: [{ uri: 'uri2', label: '
|
|
6
|
+
{ label: 'label1', matchRules: [{ uri: 'uri1', label: 'label11' }] },
|
|
7
|
+
{ label: 'label2', matchRules: [{ uri: 'uri2', label: 'label22' }] }
|
|
9
8
|
];
|
|
10
|
-
var getLabel = function (component) { return component.find('.label'); };
|
|
11
|
-
var getMatchRulesTooltip = function (component) { return component.find(MatchRulesTooltip); };
|
|
12
9
|
it('should render all rules', function () {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
expect(
|
|
19
|
-
expect(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var component = shallow(React.createElement(TransitiveMatchRulesTooltip, { transitiveMatchRules: rules }));
|
|
23
|
-
expect(getMatchRulesTooltip(component.find('.ruleWrapper').at(0)).prop('matchRules')).toBe(rules[0].matchRules);
|
|
24
|
-
expect(getMatchRulesTooltip(component.find('.ruleWrapper').at(1)).prop('matchRules')).toBe(rules[1].matchRules);
|
|
10
|
+
render(React.createElement(TransitiveMatchRulesTooltip, { transitiveMatchRules: rules }));
|
|
11
|
+
var matchRules = screen.getAllByTestId('match-rule-wrapper');
|
|
12
|
+
expect(matchRules).toHaveLength(rules.length);
|
|
13
|
+
expect(within(matchRules[0]).getByText('label1')).toBeInTheDocument();
|
|
14
|
+
expect(within(matchRules[0]).getByText('Match rules')).toBeInTheDocument();
|
|
15
|
+
expect(within(matchRules[0]).getByText('- label11')).toBeInTheDocument();
|
|
16
|
+
expect(within(matchRules[1]).getByText('label2')).toBeInTheDocument();
|
|
17
|
+
expect(within(matchRules[1]).getByText('Match rules')).toBeInTheDocument();
|
|
18
|
+
expect(within(matchRules[1]).getByText('- label22')).toBeInTheDocument();
|
|
25
19
|
});
|
|
26
20
|
});
|
|
@@ -0,0 +1,199 @@
|
|
|
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
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
23
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
import React from 'react';
|
|
49
|
+
import { render, screen } from '@testing-library/react';
|
|
50
|
+
import userEvent from '@testing-library/user-event';
|
|
51
|
+
import { ErrorPopup } from '../ErrorPopup';
|
|
52
|
+
import { getMuiIconByName } from '../test-utils';
|
|
53
|
+
import { UploadFileButton } from './UploadFileButton';
|
|
54
|
+
describe('UploadFileButton tests', function () {
|
|
55
|
+
var defaultProps = {
|
|
56
|
+
onCancel: jest.fn(),
|
|
57
|
+
onError: jest.fn(),
|
|
58
|
+
onUpload: jest.fn().mockResolvedValue({ link: 'link' }),
|
|
59
|
+
supportedFileTypes: ['.txt', '.csv']
|
|
60
|
+
};
|
|
61
|
+
var setUp = function (props) {
|
|
62
|
+
if (props === void 0) { props = {}; }
|
|
63
|
+
var user = userEvent.setup();
|
|
64
|
+
return __assign({ user: user }, render(React.createElement(UploadFileButton, __assign({}, defaultProps, props))));
|
|
65
|
+
};
|
|
66
|
+
beforeEach(function () {
|
|
67
|
+
jest.clearAllMocks();
|
|
68
|
+
});
|
|
69
|
+
describe('init mode behavior', function () {
|
|
70
|
+
it('should show upload button by default', function () {
|
|
71
|
+
setUp();
|
|
72
|
+
expect(screen.getByRole('button', { name: 'Select File' })).toBeInTheDocument();
|
|
73
|
+
});
|
|
74
|
+
it('should set correct properties for input', function () {
|
|
75
|
+
setUp();
|
|
76
|
+
expect(screen.getByText('Select File')).toBeInTheDocument();
|
|
77
|
+
var fileUploader = screen.getByTestId('file-uploader');
|
|
78
|
+
expect(fileUploader).toHaveAttribute('accept', '.txt,.csv');
|
|
79
|
+
expect(fileUploader).toHaveAttribute('type', 'file');
|
|
80
|
+
});
|
|
81
|
+
it('should call onUpload', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
82
|
+
var user, file;
|
|
83
|
+
return __generator(this, function (_a) {
|
|
84
|
+
switch (_a.label) {
|
|
85
|
+
case 0:
|
|
86
|
+
user = setUp().user;
|
|
87
|
+
file = new File(['file'], 'file.csv', { type: 'text/csv' });
|
|
88
|
+
return [4 /*yield*/, user.upload(screen.getByTestId('file-uploader'), file)];
|
|
89
|
+
case 1:
|
|
90
|
+
_a.sent();
|
|
91
|
+
expect(defaultProps.onUpload).toHaveBeenCalledWith(file);
|
|
92
|
+
return [2 /*return*/];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}); });
|
|
96
|
+
it('should invoke onError on file upload error', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
97
|
+
var errorMessage, onUpload, user, file;
|
|
98
|
+
return __generator(this, function (_a) {
|
|
99
|
+
switch (_a.label) {
|
|
100
|
+
case 0:
|
|
101
|
+
errorMessage = 'Error';
|
|
102
|
+
onUpload = jest.fn().mockRejectedValue(errorMessage);
|
|
103
|
+
user = setUp({ onUpload: onUpload }).user;
|
|
104
|
+
file = new File(['file'], 'file.csv', { type: 'text/csv' });
|
|
105
|
+
return [4 /*yield*/, user.upload(screen.getByTestId('file-uploader'), file)];
|
|
106
|
+
case 1:
|
|
107
|
+
_a.sent();
|
|
108
|
+
expect(defaultProps.onError).toHaveBeenCalledWith(errorMessage);
|
|
109
|
+
return [2 /*return*/];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}); });
|
|
113
|
+
it('should use default onError prop if it is not specified', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
114
|
+
var errorMessage, addErrorSpy, onUpload, user, file;
|
|
115
|
+
return __generator(this, function (_a) {
|
|
116
|
+
switch (_a.label) {
|
|
117
|
+
case 0:
|
|
118
|
+
errorMessage = 'Error';
|
|
119
|
+
addErrorSpy = jest.spyOn(ErrorPopup, 'addError');
|
|
120
|
+
onUpload = jest.fn().mockRejectedValue(errorMessage);
|
|
121
|
+
user = setUp({ onUpload: onUpload, onError: undefined }).user;
|
|
122
|
+
file = new File(['file'], 'file.csv', { type: 'text/csv' });
|
|
123
|
+
return [4 /*yield*/, user.upload(screen.getByTestId('file-uploader'), file)];
|
|
124
|
+
case 1:
|
|
125
|
+
_a.sent();
|
|
126
|
+
expect(addErrorSpy).toHaveBeenCalledWith({
|
|
127
|
+
title: 'File upload error',
|
|
128
|
+
message: errorMessage
|
|
129
|
+
});
|
|
130
|
+
return [2 /*return*/];
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}); });
|
|
134
|
+
it('should use errorMessage for error popup if it available', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
135
|
+
var errorObject, addErrorSpy, onUpload, user, file;
|
|
136
|
+
return __generator(this, function (_a) {
|
|
137
|
+
switch (_a.label) {
|
|
138
|
+
case 0:
|
|
139
|
+
errorObject = { errorMessage: 'errorMessage text' };
|
|
140
|
+
addErrorSpy = jest.spyOn(ErrorPopup, 'addError');
|
|
141
|
+
onUpload = jest.fn().mockRejectedValue(errorObject);
|
|
142
|
+
user = setUp({ onUpload: onUpload, onError: undefined }).user;
|
|
143
|
+
file = new File(['file'], 'file.csv', { type: 'text/csv' });
|
|
144
|
+
return [4 /*yield*/, user.upload(screen.getByTestId('file-uploader'), file)];
|
|
145
|
+
case 1:
|
|
146
|
+
_a.sent();
|
|
147
|
+
expect(addErrorSpy).toHaveBeenCalledWith({
|
|
148
|
+
title: 'File upload error',
|
|
149
|
+
message: errorObject.errorMessage
|
|
150
|
+
});
|
|
151
|
+
return [2 /*return*/];
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}); });
|
|
155
|
+
});
|
|
156
|
+
describe('uploaded mode behavior', function () {
|
|
157
|
+
it('should show link and cancel button after file uploading', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
158
|
+
var user, file;
|
|
159
|
+
return __generator(this, function (_a) {
|
|
160
|
+
switch (_a.label) {
|
|
161
|
+
case 0:
|
|
162
|
+
user = setUp().user;
|
|
163
|
+
file = new File(['file'], 'file.csv', { type: 'text/csv' });
|
|
164
|
+
return [4 /*yield*/, user.upload(screen.getByTestId('file-uploader'), file)];
|
|
165
|
+
case 1:
|
|
166
|
+
_a.sent();
|
|
167
|
+
expect(screen.getByText('file.csv').tagName).toBe('A');
|
|
168
|
+
expect(getMuiIconByName('Cancel')).toBeInTheDocument();
|
|
169
|
+
return [2 /*return*/];
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}); });
|
|
173
|
+
it('should show link and cancel button in uploaded mode', function () {
|
|
174
|
+
setUp({ link: 'link', filename: 'filename' });
|
|
175
|
+
var link = screen.getByRole('link');
|
|
176
|
+
expect(link).toHaveTextContent('filename');
|
|
177
|
+
expect(link).toHaveAttribute('href', 'link');
|
|
178
|
+
expect(getMuiIconByName('Cancel')).toBeInTheDocument();
|
|
179
|
+
});
|
|
180
|
+
it('should render text instead of link if isValidLink prop is false', function () {
|
|
181
|
+
setUp({ link: 'link', filename: 'filename', isValidLink: false });
|
|
182
|
+
expect(screen.getByText('filename')).not.toHaveAttribute('href');
|
|
183
|
+
expect(screen.queryByRole('link')).not.toBeInTheDocument();
|
|
184
|
+
});
|
|
185
|
+
it('should invoke onCancel on cancel icon click', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
186
|
+
return __generator(this, function (_a) {
|
|
187
|
+
switch (_a.label) {
|
|
188
|
+
case 0:
|
|
189
|
+
setUp({ link: 'link', filename: 'filename' });
|
|
190
|
+
return [4 /*yield*/, userEvent.click(getMuiIconByName('Cancel'))];
|
|
191
|
+
case 1:
|
|
192
|
+
_a.sent();
|
|
193
|
+
expect(defaultProps.onCancel).toHaveBeenCalled();
|
|
194
|
+
return [2 /*return*/];
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}); });
|
|
198
|
+
});
|
|
199
|
+
});
|
|
@@ -85,6 +85,7 @@ describe('UploadImageDialog tests', function () {
|
|
|
85
85
|
setUp();
|
|
86
86
|
expect(screen.getByText('Drag an image here')).toBeInTheDocument();
|
|
87
87
|
expect(screen.getByText("Acceptable image types would include JPG, PNG, TIFF, GIF, BMP. Maximum image size: ".concat(MAX_IMAGE_SIZE, "Mb"))).toBeInTheDocument();
|
|
88
|
+
expect(screen.getByTestId('divider-with-text')).toHaveTextContent('or');
|
|
88
89
|
expect(screen.getByPlaceholderText('Paste an image URL here')).toBeInTheDocument();
|
|
89
90
|
expect(screen.getByText('Select image')).toBeInTheDocument();
|
|
90
91
|
expect(screen.getByText('Send')).toBeInTheDocument();
|
|
@@ -6,7 +6,7 @@ import { useStyles } from './styles';
|
|
|
6
6
|
export var DividerWithText = function (_a) {
|
|
7
7
|
var children = _a.children, className = _a.className;
|
|
8
8
|
var styles = useStyles();
|
|
9
|
-
return (React.createElement(Box, { className: classnames(styles.root, className) },
|
|
9
|
+
return (React.createElement(Box, { "data-reltio-id": "divider-with-text", className: classnames(styles.root, className) },
|
|
10
10
|
React.createElement(Box, { className: styles.border }),
|
|
11
11
|
React.createElement(Typography, { className: styles.text }, children),
|
|
12
12
|
React.createElement(Box, { className: styles.border })));
|