@reltio/components 1.4.2027 → 1.4.2028
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/cjs/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +0 -1
- package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +5 -14
- package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +11 -9
- package/cjs/features/graph/ZoomSlider/ZoomSlider.js +2 -2
- package/cjs/features/graph/ZoomSlider/ZoomSlider.test.js +85 -37
- package/cjs/features/history/DateRangeSelector/DateRangeSelector.specs.js +188 -117
- package/cjs/features/history/HistoryFilterButton/HistoryFilterButton.js +1 -1
- package/cjs/features/history/HistoryGraph/components/HistoryCircle/HistoryCircle.specs.js +38 -41
- package/cjs/features/history/HistoryGraph/components/HistoryLink/HistoryLink.specs.js +17 -16
- package/cjs/features/history/HistoryHeader/HistoryHeader.spec.js +21 -31
- package/cjs/features/history/HistoryPanelEmptyState/HistoryPanelEmptyState.specs.js +4 -9
- package/cjs/features/history/HistoryRow/HistoryRow.js +1 -1
- package/cjs/features/history/HistoryRow/HistoryRow.specs.js +74 -34
- package/cjs/features/history/HistoryTree/HistoryTree.js +1 -1
- package/cjs/features/history/HistoryView/HistoryView.specs.js +77 -43
- package/cjs/features/workflow/AddWorkflowButton/AddWorkflowButton.spec.js +83 -34
- package/cjs/features/workflow/AttributesChanges/AttributesChanges.js +1 -1
- package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
- package/cjs/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
- package/cjs/features/workflow/DueDateField/DueDateField.spec.js +51 -102
- package/cjs/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
- package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +438 -124
- package/cjs/features/workflow/hooks/useChangeRequest.specs.js +17 -27
- package/cjs/features/workflow/hooks/useWorkflowColor.specs.js +23 -47
- package/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +0 -1
- package/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +5 -14
- package/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +11 -9
- package/features/graph/ZoomSlider/ZoomSlider.js +2 -2
- package/features/graph/ZoomSlider/ZoomSlider.test.js +85 -37
- package/features/history/DateRangeSelector/DateRangeSelector.specs.js +188 -117
- package/features/history/HistoryFilterButton/HistoryFilterButton.js +1 -1
- package/features/history/HistoryGraph/components/HistoryCircle/HistoryCircle.specs.js +38 -41
- package/features/history/HistoryGraph/components/HistoryLink/HistoryLink.specs.js +17 -16
- package/features/history/HistoryHeader/HistoryHeader.spec.js +21 -31
- package/features/history/HistoryPanelEmptyState/HistoryPanelEmptyState.specs.js +4 -9
- package/features/history/HistoryRow/HistoryRow.js +1 -1
- package/features/history/HistoryRow/HistoryRow.specs.js +74 -34
- package/features/history/HistoryTree/HistoryTree.js +1 -1
- package/features/history/HistoryView/HistoryView.specs.js +77 -43
- package/features/workflow/AddWorkflowButton/AddWorkflowButton.spec.js +83 -34
- package/features/workflow/AttributesChanges/AttributesChanges.js +1 -1
- package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
- package/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
- package/features/workflow/DueDateField/DueDateField.spec.js +51 -102
- package/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
- package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +439 -125
- package/features/workflow/hooks/useChangeRequest.specs.js +17 -24
- package/features/workflow/hooks/useWorkflowColor.specs.js +23 -44
- package/package.json +1 -1
- package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -249
- package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -44
- package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -38
- package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.js +0 -218
- package/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -244
- package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -39
- package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -33
- package/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.js +0 -213
|
@@ -9,9 +9,46 @@ 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
49
|
import i18n from 'ui-i18n';
|
|
14
|
-
import {
|
|
50
|
+
import { render, screen } from '@testing-library/react';
|
|
51
|
+
import userEvent from '@testing-library/user-event';
|
|
15
52
|
import { HistoryChangeTypes } from '../types';
|
|
16
53
|
import { getActivityLabel } from '../../activity-log';
|
|
17
54
|
import { getContributorColor } from '@reltio/mdm-sdk';
|
|
@@ -25,7 +62,7 @@ describe('HistoryRow tests', function () {
|
|
|
25
62
|
timestamp: 1622451175422
|
|
26
63
|
};
|
|
27
64
|
var onClick = jest.fn();
|
|
28
|
-
var
|
|
65
|
+
var defaultProps = {
|
|
29
66
|
change: change,
|
|
30
67
|
isCurrent: false,
|
|
31
68
|
isSelected: false,
|
|
@@ -34,44 +71,47 @@ describe('HistoryRow tests', function () {
|
|
|
34
71
|
beforeAll(function () {
|
|
35
72
|
jest.clearAllMocks();
|
|
36
73
|
});
|
|
74
|
+
var setUp = function (props) {
|
|
75
|
+
if (props === void 0) { props = defaultProps; }
|
|
76
|
+
var user = userEvent.setup();
|
|
77
|
+
return __assign(__assign({}, render(React.createElement(HistoryRow, __assign({}, props)))), { user: user });
|
|
78
|
+
};
|
|
37
79
|
it('should render correctly', function () {
|
|
38
|
-
|
|
39
|
-
expect(getContributorColor).toHaveBeenCalledWith(
|
|
40
|
-
expect(
|
|
41
|
-
|
|
42
|
-
expect(
|
|
43
|
-
expect(
|
|
44
|
-
|
|
45
|
-
expect(
|
|
46
|
-
expect(headerTitle.hasClass('bold')).toBe(false);
|
|
47
|
-
expect(header.find('.date').text()).toBe(i18n.date(props.change.timestamp, 'L LT'));
|
|
48
|
-
expect(wrapper.find('.historyRow > .title').length).toBe(0);
|
|
49
|
-
expect(wrapper.find('.user').text()).toBe(props.change.user);
|
|
50
|
-
expect(wrapper.hasClass('selected')).toBeFalsy();
|
|
80
|
+
setUp();
|
|
81
|
+
expect(getContributorColor).toHaveBeenCalledWith(defaultProps.change.uri);
|
|
82
|
+
expect(screen.getByText(getActivityLabel(defaultProps.change.type))).toBeInTheDocument();
|
|
83
|
+
expect(screen.getByText(i18n.date(defaultProps.change.timestamp, 'L LT'))).toBeInTheDocument();
|
|
84
|
+
expect(screen.getByText(defaultProps.change.user)).toBeInTheDocument();
|
|
85
|
+
expect(screen.queryByText('Current view')).not.toBeInTheDocument();
|
|
86
|
+
expect(screen.getByTestId('history-row')).not.toHaveClass('selected');
|
|
87
|
+
expect(screen.getByTestId('history-row-header')).not.toHaveClass('bold');
|
|
51
88
|
});
|
|
52
89
|
it('should render correct current row if isCurrent === true', function () {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
expect(header
|
|
56
|
-
expect(
|
|
57
|
-
var headerTitle = header.find('.title');
|
|
58
|
-
expect(headerTitle.text()).toBe('Current view');
|
|
59
|
-
expect(headerTitle.hasClass('bold')).toBe(true);
|
|
60
|
-
expect(header.find('.date').length).toBe(0);
|
|
90
|
+
setUp(__assign(__assign({}, defaultProps), { isCurrent: true }));
|
|
91
|
+
expect(screen.getByText('Current view')).toBeInTheDocument();
|
|
92
|
+
expect(screen.getByTestId('history-row-header')).toHaveClass('bold');
|
|
93
|
+
expect(screen.queryByText(i18n.date(defaultProps.change.timestamp, 'L LT'))).not.toBeInTheDocument();
|
|
61
94
|
});
|
|
62
95
|
it('should show match rules if change.matchGroups is not empty', function () {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
expect(matchRules.length).toBe(1);
|
|
66
|
-
expect(matchRules.text()).toBe('Match rule: first, second');
|
|
96
|
+
setUp(__assign(__assign({}, defaultProps), { change: __assign(__assign({}, change), { matchGroups: ['first', 'second'] }) }));
|
|
97
|
+
expect(screen.getByText('Match rule: first, second')).toBeInTheDocument();
|
|
67
98
|
});
|
|
68
99
|
it('should render correctly if isSelected === true', function () {
|
|
69
|
-
|
|
70
|
-
expect(
|
|
71
|
-
});
|
|
72
|
-
it('should call props.onClick when click on the row', function () {
|
|
73
|
-
var wrapper = shallow(React.createElement(HistoryRow, __assign({}, props)));
|
|
74
|
-
wrapper.simulate('click');
|
|
75
|
-
expect(onClick).toHaveBeenCalled();
|
|
100
|
+
setUp(__assign(__assign({}, defaultProps), { isSelected: true }));
|
|
101
|
+
expect(screen.getByTestId('history-row')).toHaveClass('selected');
|
|
76
102
|
});
|
|
103
|
+
it('should call props.onClick when click on the row', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
104
|
+
var user;
|
|
105
|
+
return __generator(this, function (_a) {
|
|
106
|
+
switch (_a.label) {
|
|
107
|
+
case 0:
|
|
108
|
+
user = setUp().user;
|
|
109
|
+
return [4 /*yield*/, user.click(screen.getByTestId('history-row'))];
|
|
110
|
+
case 1:
|
|
111
|
+
_a.sent();
|
|
112
|
+
expect(onClick).toHaveBeenCalled();
|
|
113
|
+
return [2 /*return*/];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}); });
|
|
77
117
|
});
|
|
@@ -97,7 +97,7 @@ export var HistoryTree = function (_a) {
|
|
|
97
97
|
setSelectedIndex(index);
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
|
-
return (React.createElement("div", { className: styles.historyTree },
|
|
100
|
+
return (React.createElement("div", { className: styles.historyTree, "data-reltio-id": "history-tree" },
|
|
101
101
|
isLoading && React.createElement(LinearLoadIndicator, null),
|
|
102
102
|
React.createElement("div", { className: classnames(styles.graph, (_b = {}, _b[styles.shadow] = isScrollable, _b)), onScroll: handleGraphScroll, ref: graphRef },
|
|
103
103
|
React.createElement(HistoryGraph, { onHistoryCircleMouseOver: handleHistoryCircleMouseOver, graphData: graphData }),
|
|
@@ -9,19 +9,47 @@ 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
|
|
49
|
+
import { render, screen } from '@testing-library/react';
|
|
50
|
+
import userEvent from '@testing-library/user-event';
|
|
15
51
|
import * as useHistoryTreeHook from '../hooks/useHistoryTree';
|
|
16
|
-
import { ContributorsPanel } from '../ContributorsPanel';
|
|
17
|
-
import { HistoryTree } from '../HistoryTree';
|
|
18
52
|
import HistoryView from './HistoryView';
|
|
19
|
-
jest.mock('../HistoryTree', function () { return ({
|
|
20
|
-
HistoryTree: function () { return null; }
|
|
21
|
-
}); });
|
|
22
|
-
jest.mock('../ContributorsPanel', function () { return ({
|
|
23
|
-
ContributorsPanel: function () { return null; }
|
|
24
|
-
}); });
|
|
25
53
|
describe('HistoryView tests', function () {
|
|
26
54
|
var historyWithTotal = {
|
|
27
55
|
total: 2,
|
|
@@ -38,7 +66,7 @@ describe('HistoryView tests', function () {
|
|
|
38
66
|
}
|
|
39
67
|
]
|
|
40
68
|
};
|
|
41
|
-
var
|
|
69
|
+
var defaultProps = {
|
|
42
70
|
isLoading: false,
|
|
43
71
|
canLoadMore: false,
|
|
44
72
|
onLoadMore: jest.fn(),
|
|
@@ -60,38 +88,44 @@ describe('HistoryView tests', function () {
|
|
|
60
88
|
var useHistoryTreeMock = jest
|
|
61
89
|
.spyOn(useHistoryTreeHook, 'useHistoryTree')
|
|
62
90
|
.mockReturnValue({ historyData: historyData, findPreviousChange: findPreviousChange });
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
91
|
+
var setUp = function (props) {
|
|
92
|
+
if (props === void 0) { props = defaultProps; }
|
|
93
|
+
var user = userEvent.setup();
|
|
94
|
+
return __assign(__assign({}, render(React.createElement(HistoryView, __assign({}, props)))), { user: user });
|
|
95
|
+
};
|
|
96
|
+
it('should render correct default state', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
97
|
+
var contributorItems;
|
|
98
|
+
return __generator(this, function (_a) {
|
|
99
|
+
setUp();
|
|
100
|
+
expect(useHistoryTreeMock).toHaveBeenCalledWith({
|
|
101
|
+
entityUri: defaultProps.entityUri,
|
|
102
|
+
historyChanges: defaultProps.historyWithTotal.changes,
|
|
103
|
+
selectedUris: defaultProps.contributorsUris
|
|
104
|
+
});
|
|
105
|
+
contributorItems = screen.getAllByTestId('reltio-contributor-item');
|
|
106
|
+
expect(contributorItems).toHaveLength(4);
|
|
107
|
+
expect(contributorItems[0]).toHaveAttribute('data-reltio-contributor', 'entities/uri0000');
|
|
108
|
+
expect(contributorItems[1]).toHaveAttribute('data-reltio-contributor', 'entities/uri1111');
|
|
109
|
+
expect(contributorItems[2]).toHaveAttribute('data-reltio-contributor', 'entities/uri2222');
|
|
110
|
+
expect(contributorItems[3]).toHaveAttribute('data-reltio-contributor', 'entities/uri3333');
|
|
111
|
+
expect(screen.getByTestId('history-tree')).toBeInTheDocument();
|
|
112
|
+
expect(screen.getByTestId('reltio-history-graph')).toBeInTheDocument();
|
|
113
|
+
return [2 /*return*/];
|
|
85
114
|
});
|
|
86
|
-
});
|
|
87
|
-
it('should render ContributorsPanel with new selectedValues when call ContributorsPanel onSelectValues prop', function () {
|
|
88
|
-
var
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
115
|
+
}); });
|
|
116
|
+
it('should render ContributorsPanel with new selectedValues when call ContributorsPanel onSelectValues prop', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
117
|
+
var user, contributorItems;
|
|
118
|
+
return __generator(this, function (_a) {
|
|
119
|
+
switch (_a.label) {
|
|
120
|
+
case 0:
|
|
121
|
+
user = setUp().user;
|
|
122
|
+
contributorItems = screen.getAllByTestId('reltio-contributor-item');
|
|
123
|
+
return [4 /*yield*/, user.click(contributorItems[2])];
|
|
124
|
+
case 1:
|
|
125
|
+
_a.sent();
|
|
126
|
+
expect(contributorItems[2]).toHaveClass('inactive');
|
|
127
|
+
return [2 /*return*/];
|
|
128
|
+
}
|
|
93
129
|
});
|
|
94
|
-
|
|
95
|
-
expect(wrapper.find(ContributorsPanel).prop('selectedValues').sort()).toEqual(newSelectedValues.sort());
|
|
96
|
-
});
|
|
130
|
+
}); });
|
|
97
131
|
});
|
|
@@ -9,14 +9,53 @@ 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 Button from '@mui/material/Button';
|
|
49
|
+
import { render, screen } from '@testing-library/react';
|
|
50
|
+
import userEvent from '@testing-library/user-event';
|
|
16
51
|
import { AddWorkflowButton } from './AddWorkflowButton';
|
|
17
|
-
import { AddWorkflowDialog } from '../AddWorkflowDialog';
|
|
18
52
|
import { MdmModuleProvider } from '../../../contexts/MdmModuleContext';
|
|
19
|
-
jest.mock('../
|
|
53
|
+
jest.mock('../hooks/useWorkflowDefinitions', function () { return ({
|
|
54
|
+
useWorkflowDefinitions: jest.fn().mockReturnValue({ definitions: [] })
|
|
55
|
+
}); });
|
|
56
|
+
jest.mock('../hooks/useWorkflowProcessInstance', function () { return ({
|
|
57
|
+
useWorkflowProcessInstance: jest.fn().mockReturnValue({})
|
|
58
|
+
}); });
|
|
20
59
|
var defaultPermissions = {
|
|
21
60
|
'workflow:config.definition': {
|
|
22
61
|
READ: ['alenat']
|
|
@@ -38,8 +77,12 @@ var defaultMdmValues = {
|
|
|
38
77
|
};
|
|
39
78
|
var setUp = function (mdmValues) {
|
|
40
79
|
if (mdmValues === void 0) { mdmValues = defaultMdmValues; }
|
|
41
|
-
|
|
42
|
-
|
|
80
|
+
var user = userEvent.setup();
|
|
81
|
+
var Providers = function (_a) {
|
|
82
|
+
var children = _a.children;
|
|
83
|
+
return (React.createElement(MdmModuleProvider, { values: mdmValues }, children));
|
|
84
|
+
};
|
|
85
|
+
return __assign(__assign({}, render(React.createElement(AddWorkflowButton, null), { wrapper: Providers })), { user: user });
|
|
43
86
|
};
|
|
44
87
|
describe('AddWorkflowButton tests', function () {
|
|
45
88
|
it('should not render button if "workflow:data.process" permission is missing', function () {
|
|
@@ -49,8 +92,8 @@ describe('AddWorkflowButton tests', function () {
|
|
|
49
92
|
}
|
|
50
93
|
} }) });
|
|
51
94
|
var mdmValues = __assign(__assign({}, defaultMdmValues), { user: user });
|
|
52
|
-
|
|
53
|
-
expect(
|
|
95
|
+
setUp(mdmValues);
|
|
96
|
+
expect(screen.queryByText('Add')).not.toBeInTheDocument();
|
|
54
97
|
});
|
|
55
98
|
it('should not render button if "workflow:config.definition" permission is missing', function () {
|
|
56
99
|
var user = __assign(__assign({}, defaultUser), { userPermissions: __assign(__assign({}, defaultUser.userPermissions), { permissions: {
|
|
@@ -59,36 +102,42 @@ describe('AddWorkflowButton tests', function () {
|
|
|
59
102
|
}
|
|
60
103
|
} }) });
|
|
61
104
|
var mdmValues = __assign(__assign({}, defaultMdmValues), { user: user });
|
|
62
|
-
|
|
63
|
-
expect(
|
|
105
|
+
setUp(mdmValues);
|
|
106
|
+
expect(screen.queryByText('Add')).not.toBeInTheDocument();
|
|
64
107
|
});
|
|
65
108
|
it('should render main parts correctly if all permissions exists', function () {
|
|
66
|
-
|
|
67
|
-
expect(
|
|
68
|
-
expect(component.find(AddWorkflowDialog)).toHaveLength(1);
|
|
109
|
+
setUp();
|
|
110
|
+
expect(screen.getByText('Add')).toBeInTheDocument();
|
|
69
111
|
});
|
|
70
|
-
it('handleOpen handler should work correctly', function () {
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
112
|
+
it('handleOpen handler should work correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
+
var user;
|
|
114
|
+
return __generator(this, function (_a) {
|
|
115
|
+
switch (_a.label) {
|
|
116
|
+
case 0:
|
|
117
|
+
user = setUp().user;
|
|
118
|
+
return [4 /*yield*/, user.click(screen.getByText('Add'))];
|
|
119
|
+
case 1:
|
|
120
|
+
_a.sent();
|
|
121
|
+
expect(screen.getByText('Add new workflow')).toBeInTheDocument();
|
|
122
|
+
return [2 /*return*/];
|
|
77
123
|
}
|
|
78
124
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
125
|
+
}); });
|
|
126
|
+
it('handleClose handler should work correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
127
|
+
var user;
|
|
128
|
+
return __generator(this, function (_a) {
|
|
129
|
+
switch (_a.label) {
|
|
130
|
+
case 0:
|
|
131
|
+
user = setUp().user;
|
|
132
|
+
return [4 /*yield*/, user.click(screen.getByText('Add'))];
|
|
133
|
+
case 1:
|
|
134
|
+
_a.sent();
|
|
135
|
+
return [4 /*yield*/, user.click(screen.getByText('Cancel'))];
|
|
136
|
+
case 2:
|
|
137
|
+
_a.sent();
|
|
138
|
+
expect(screen.queryByText('Add new workflow')).not.toBeInTheDocument();
|
|
139
|
+
return [2 /*return*/];
|
|
88
140
|
}
|
|
89
|
-
component.find(AddWorkflowDialog).prop('onClose')();
|
|
90
141
|
});
|
|
91
|
-
|
|
92
|
-
expect(component.find(AddWorkflowDialog).prop('anchorEl')).toBe(null);
|
|
93
|
-
});
|
|
142
|
+
}); });
|
|
94
143
|
});
|
|
@@ -26,7 +26,7 @@ export var AttributesChanges = function (_a) {
|
|
|
26
26
|
var entityUri = ifElse(any(isCreateEntityOperation), always(getEntityUriForChangeRequest(dcrUri, entityInfo.uri)), always(getEntityUriForLink(entityInfo)))(propOr([], entityInfo.uri, changes));
|
|
27
27
|
var screen = ifElse(any(isCreateEntityOperation), always('dcrReview'), always('profile'))(propOr([], entityInfo.uri, changes));
|
|
28
28
|
return (React.createElement(AttributesChangesContext.Provider, { value: objectsInfo },
|
|
29
|
-
React.createElement("div", { className: styles.container },
|
|
29
|
+
React.createElement("div", { className: styles.container, "data-reltio-id": "changes-container" },
|
|
30
30
|
React.createElement(EntityUriLink, { className: styles.uri, value: entityUri, screen: screen },
|
|
31
31
|
React.createElement("div", { className: styles.label }, getLabel(entityInfo.label))),
|
|
32
32
|
React.createElement(DCRChangesList, { changes: itemsToShow }),
|
|
@@ -16,7 +16,7 @@ export var ChangeView = function (_a) {
|
|
|
16
16
|
!isNil(value) && (React.createElement("span", { className: styles.difference },
|
|
17
17
|
value,
|
|
18
18
|
newValue && oldValue && (React.createElement(React.Fragment, null,
|
|
19
|
-
React.createElement(ArrowRightAltIcon, { className: styles.arrow }),
|
|
19
|
+
React.createElement(ArrowRightAltIcon, { "data-reltio-id": "arrow-right", className: styles.arrow }),
|
|
20
20
|
newValue)))),
|
|
21
21
|
operation && (React.createElement(Chip, { variant: "outlined", label: getOperationLabel(operation), className: classnames(styles.chip, operation) }))));
|
|
22
22
|
};
|
|
@@ -1,33 +1,90 @@
|
|
|
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 Link from '@mui/material/Link';
|
|
49
|
+
import { render, screen } from '@testing-library/react';
|
|
50
|
+
import userEvent from '@testing-library/user-event';
|
|
5
51
|
import { ShowMoreLink } from './ShowMoreLink';
|
|
6
52
|
describe('ShowMoreLink tests', function () {
|
|
53
|
+
afterEach(function () {
|
|
54
|
+
jest.clearAllMocks();
|
|
55
|
+
});
|
|
56
|
+
var onClick = jest.fn();
|
|
57
|
+
var defaultProps = {
|
|
58
|
+
onClick: onClick,
|
|
59
|
+
suggestionsCount: 10,
|
|
60
|
+
isExpanded: false
|
|
61
|
+
};
|
|
62
|
+
var setUp = function (props) {
|
|
63
|
+
if (props === void 0) { props = defaultProps; }
|
|
64
|
+
var user = userEvent.setup();
|
|
65
|
+
return __assign(__assign({}, render(React.createElement(ShowMoreLink, __assign({}, props)))), { user: user });
|
|
66
|
+
};
|
|
7
67
|
it('should render main parts in collapsed mode', function () {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var isExpanded = false;
|
|
11
|
-
var component = shallow(React.createElement(ShowMoreLink, { onClick: onClick, suggestionsCount: count, isExpanded: isExpanded }));
|
|
12
|
-
expect(component.find(Link)).toHaveLength(1);
|
|
13
|
-
expect(component.find('.linkLabel').text()).toBe("View ".concat(count, " more suggestions"));
|
|
68
|
+
setUp();
|
|
69
|
+
expect(screen.getByText("View ".concat(defaultProps.suggestionsCount, " more suggestions"))).toBeInTheDocument();
|
|
14
70
|
});
|
|
15
71
|
it('should render main parts in expanded mode', function () {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var component = shallow(React.createElement(ShowMoreLink, { onClick: onClick, suggestionsCount: count, isExpanded: isExpanded }));
|
|
20
|
-
expect(component.find(Link)).toHaveLength(1);
|
|
21
|
-
expect(component.find('.linkLabel').text()).toBe('View less suggestions');
|
|
72
|
+
setUp(__assign(__assign({}, defaultProps), { isExpanded: true }));
|
|
73
|
+
expect(screen.queryByText("View ".concat(defaultProps.suggestionsCount, " more suggestions"))).not.toBeInTheDocument();
|
|
74
|
+
expect(screen.getByText('View less suggestions')).toBeInTheDocument();
|
|
22
75
|
});
|
|
23
|
-
it('should call onClick after click', function () {
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
76
|
+
it('should call onClick after click', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
77
|
+
var user;
|
|
78
|
+
return __generator(this, function (_a) {
|
|
79
|
+
switch (_a.label) {
|
|
80
|
+
case 0:
|
|
81
|
+
user = setUp(__assign(__assign({}, defaultProps), { isExpanded: true })).user;
|
|
82
|
+
return [4 /*yield*/, user.click(screen.getByRole('button'))];
|
|
83
|
+
case 1:
|
|
84
|
+
_a.sent();
|
|
85
|
+
expect(onClick).toHaveBeenCalled();
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
}
|
|
30
88
|
});
|
|
31
|
-
|
|
32
|
-
});
|
|
89
|
+
}); });
|
|
33
90
|
});
|