@reltio/components 1.4.2027 → 1.4.2029
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/AddWorkflowDialog/AddWorkflowDialog.spec.js +20 -0
- 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/cjs/features/workflow/hooks/useWorkflowDefinitions.js +5 -1
- 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/AddWorkflowDialog/AddWorkflowDialog.spec.js +20 -0
- 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/features/workflow/hooks/useWorkflowDefinitions.js +5 -1
- 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
|
@@ -15,11 +15,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var react_1 = __importDefault(require("react"));
|
|
18
|
-
var
|
|
18
|
+
var react_2 = require("@testing-library/react");
|
|
19
19
|
var constants_1 = require("./constants");
|
|
20
20
|
var HistoryCircle_1 = require("./HistoryCircle");
|
|
21
21
|
describe('HistoryCircle tests', function () {
|
|
22
|
-
var
|
|
22
|
+
var defaultProps = {
|
|
23
23
|
x: 10,
|
|
24
24
|
y: 15,
|
|
25
25
|
color: '#FFFAAA',
|
|
@@ -28,56 +28,53 @@ describe('HistoryCircle tests', function () {
|
|
|
28
28
|
showCollapseIcon: false,
|
|
29
29
|
showLine: false
|
|
30
30
|
};
|
|
31
|
+
var setUp = function (props) {
|
|
32
|
+
if (props === void 0) { props = defaultProps; }
|
|
33
|
+
return (0, react_2.render)(react_1.default.createElement(HistoryCircle_1.HistoryCircle, __assign({}, props)));
|
|
34
|
+
};
|
|
31
35
|
it('should render correctly', function () {
|
|
32
|
-
var
|
|
33
|
-
expect(
|
|
34
|
-
expect(
|
|
35
|
-
expect(
|
|
36
|
-
var circle =
|
|
37
|
-
expect(circle
|
|
38
|
-
expect(circle.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
strokeDasharray: undefined,
|
|
44
|
-
strokeWidth: 2
|
|
45
|
-
});
|
|
36
|
+
var container = setUp().container;
|
|
37
|
+
expect(container.querySelectorAll('g')).toHaveLength(1);
|
|
38
|
+
expect(container.querySelector('#line')).not.toBeInTheDocument();
|
|
39
|
+
expect(container.querySelector('#icon')).not.toBeInTheDocument();
|
|
40
|
+
var circle = container.querySelector('circle');
|
|
41
|
+
expect(circle).toHaveAttribute('cx', "".concat(defaultProps.x));
|
|
42
|
+
expect(circle).toHaveAttribute('cy', "".concat(defaultProps.y));
|
|
43
|
+
expect(circle).toHaveAttribute('r', "".concat(constants_1.BUMP_RADIUS));
|
|
44
|
+
expect(circle).toHaveAttribute('fill', defaultProps.color);
|
|
45
|
+
expect(circle).toHaveAttribute('stroke-width', '2');
|
|
46
|
+
expect(circle).not.toHaveAttribute('stroke-dasharray');
|
|
46
47
|
});
|
|
47
48
|
it('should render line above circle if showLine === true', function () {
|
|
48
|
-
var
|
|
49
|
-
var line =
|
|
50
|
-
expect(line
|
|
51
|
-
expect(line.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
height: 2,
|
|
56
|
-
fill: props.color
|
|
57
|
-
});
|
|
49
|
+
var container = setUp(__assign(__assign({}, defaultProps), { showLine: true })).container;
|
|
50
|
+
var line = container.querySelector('#line');
|
|
51
|
+
expect(line).toHaveAttribute('x', "".concat(defaultProps.x - constants_1.BUMP_RADIUS - constants_1.LINE_MARGIN));
|
|
52
|
+
expect(line).toHaveAttribute('y', "".concat(defaultProps.y - constants_1.BUMP_RADIUS - constants_1.LINE_MARGIN));
|
|
53
|
+
expect(line).toHaveAttribute('width', "".concat(constants_1.BUMP_RADIUS * 2 + constants_1.LINE_MARGIN * 2));
|
|
54
|
+
expect(line).toHaveAttribute('height', '2');
|
|
55
|
+
expect(line).toHaveAttribute('fill', defaultProps.color);
|
|
58
56
|
});
|
|
59
57
|
it('should render dashed circle if isDashed === true', function () {
|
|
60
|
-
var
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
});
|
|
58
|
+
var container = setUp(__assign(__assign({}, defaultProps), { isDashed: true })).container;
|
|
59
|
+
var circle = container.querySelector('circle');
|
|
60
|
+
expect(circle).toHaveAttribute('fill', '#fff');
|
|
61
|
+
expect(circle).toHaveAttribute('stroke-dasharray', '1,1');
|
|
65
62
|
});
|
|
66
63
|
it('should render collapse icon if showCollapseIcon === true', function () {
|
|
67
|
-
var
|
|
68
|
-
var icon =
|
|
69
|
-
expect(icon
|
|
70
|
-
expect(icon.
|
|
64
|
+
var container = setUp(__assign(__assign({}, defaultProps), { showCollapseIcon: true })).container;
|
|
65
|
+
var icon = container.querySelector('#icon');
|
|
66
|
+
expect(icon).toBeInTheDocument();
|
|
67
|
+
expect(icon.querySelectorAll('rect')).toHaveLength(1);
|
|
71
68
|
});
|
|
72
69
|
it('should render expand icon if showCollapseIcon === true and isCollapsed === true', function () {
|
|
73
|
-
var
|
|
74
|
-
var icon =
|
|
75
|
-
expect(icon
|
|
76
|
-
expect(icon.
|
|
70
|
+
var container = setUp(__assign(__assign({}, defaultProps), { showCollapseIcon: true, isCollapsed: true })).container;
|
|
71
|
+
var icon = container.querySelector('#icon');
|
|
72
|
+
expect(icon).toBeInTheDocument();
|
|
73
|
+
expect(icon.querySelectorAll('rect')).toHaveLength(2);
|
|
77
74
|
});
|
|
78
75
|
it('should pass rest props to root element', function () {
|
|
79
76
|
var svgProps = { className: 'history-circle' };
|
|
80
|
-
|
|
81
|
-
expect(
|
|
77
|
+
setUp(__assign(__assign({}, defaultProps), svgProps));
|
|
78
|
+
expect(react_2.screen.getByTestId('history-circle')).toHaveAttribute('class', svgProps.className);
|
|
82
79
|
});
|
|
83
80
|
});
|
|
@@ -38,11 +38,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
var react_1 = __importDefault(require("react"));
|
|
41
|
-
var
|
|
41
|
+
var react_2 = require("@testing-library/react");
|
|
42
42
|
var helpers = __importStar(require("../../helpers"));
|
|
43
43
|
var HistoryLink_1 = require("./HistoryLink");
|
|
44
44
|
describe('HistoryLink tests', function () {
|
|
45
|
-
var
|
|
45
|
+
var defaultProps = {
|
|
46
46
|
x: 10,
|
|
47
47
|
y: 15,
|
|
48
48
|
toX: 20,
|
|
@@ -54,22 +54,23 @@ describe('HistoryLink tests', function () {
|
|
|
54
54
|
beforeAll(function () {
|
|
55
55
|
jest.clearAllMocks();
|
|
56
56
|
});
|
|
57
|
+
var setUp = function (props) {
|
|
58
|
+
if (props === void 0) { props = defaultProps; }
|
|
59
|
+
return (0, react_2.render)(react_1.default.createElement(HistoryLink_1.HistoryLink, __assign({}, props)));
|
|
60
|
+
};
|
|
57
61
|
it('should render correctly', function () {
|
|
58
|
-
var
|
|
59
|
-
expect(getHistoryLinkCurveSpy).toHaveBeenCalledWith(
|
|
60
|
-
|
|
61
|
-
expect(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
strokeDasharray: undefined
|
|
67
|
-
});
|
|
62
|
+
var container = setUp().container;
|
|
63
|
+
expect(getHistoryLinkCurveSpy).toHaveBeenCalledWith(defaultProps.x, defaultProps.y, defaultProps.toX, defaultProps.toY);
|
|
64
|
+
var path = container.querySelector('path');
|
|
65
|
+
expect(path).toHaveAttribute('d', getHistoryLinkCurveSpy.mock.results[0].value);
|
|
66
|
+
expect(path).toHaveAttribute('stroke', defaultProps.color);
|
|
67
|
+
expect(path).toHaveAttribute('fill', 'none');
|
|
68
|
+
expect(path).toHaveAttribute('stroke-width', '2');
|
|
69
|
+
expect(path).not.toHaveAttribute('stroke-dasharray');
|
|
68
70
|
});
|
|
69
71
|
it('should render dashed path if isDashed === true', function () {
|
|
70
|
-
var
|
|
71
|
-
expect(getHistoryLinkCurveSpy).toHaveBeenCalledWith(
|
|
72
|
-
expect(
|
|
73
|
-
expect(wrapper.find('path').prop('strokeDasharray')).toBe('3,3');
|
|
72
|
+
var container = setUp(__assign(__assign({}, defaultProps), { isDashed: true })).container;
|
|
73
|
+
expect(getHistoryLinkCurveSpy).toHaveBeenCalledWith(defaultProps.x, defaultProps.y, defaultProps.toX, defaultProps.toY);
|
|
74
|
+
expect(container.querySelector('path')).toHaveAttribute('stroke-dasharray', '3,3');
|
|
74
75
|
});
|
|
75
76
|
});
|
|
@@ -15,12 +15,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var react_1 = __importDefault(require("react"));
|
|
18
|
-
var
|
|
18
|
+
var react_2 = require("@testing-library/react");
|
|
19
19
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
20
|
-
var Divider_1 = __importDefault(require("@mui/material/Divider"));
|
|
21
|
-
var Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
22
|
-
var HistoryFilterButton_1 = require("../HistoryFilterButton");
|
|
23
|
-
var HistoryMenuButton_1 = require("../HistoryMenuButton");
|
|
24
20
|
var types_1 = require("../types");
|
|
25
21
|
var HistoryHeader_1 = require("./HistoryHeader");
|
|
26
22
|
describe('HistoryHeader tests', function () {
|
|
@@ -33,7 +29,7 @@ describe('HistoryHeader tests', function () {
|
|
|
33
29
|
activities: [types_1.HistoryActivityType.UPDATE, types_1.HistoryActivityType.UNMERGE],
|
|
34
30
|
attributes: []
|
|
35
31
|
};
|
|
36
|
-
var
|
|
32
|
+
var defaultProps = {
|
|
37
33
|
filter: filter,
|
|
38
34
|
onApplyFilter: jest.fn(),
|
|
39
35
|
onClearFilter: jest.fn(),
|
|
@@ -41,38 +37,32 @@ describe('HistoryHeader tests', function () {
|
|
|
41
37
|
uri: 'configuration/entityTypes/HCA',
|
|
42
38
|
label: 'HCA',
|
|
43
39
|
attributes: []
|
|
44
|
-
}
|
|
40
|
+
},
|
|
41
|
+
total: 5
|
|
42
|
+
};
|
|
43
|
+
var setUp = function (props) {
|
|
44
|
+
if (props === void 0) { props = defaultProps; }
|
|
45
|
+
return (0, react_2.render)(react_1.default.createElement(HistoryHeader_1.HistoryHeader, __assign({}, props)));
|
|
45
46
|
};
|
|
46
47
|
it('should render correctly', function () {
|
|
47
|
-
|
|
48
|
-
expect(
|
|
49
|
-
expect(
|
|
50
|
-
expect(
|
|
51
|
-
expect(
|
|
52
|
-
expect(wrapper.find(HistoryFilterButton_1.HistoryFilterButton).props()).toMatchObject({
|
|
53
|
-
entityType: props.entityType,
|
|
54
|
-
filter: props.filter,
|
|
55
|
-
onApplyFilter: props.onApplyFilter
|
|
56
|
-
});
|
|
57
|
-
expect(wrapper.find(HistoryMenuButton_1.HistoryMenuButton)).toHaveLength(1);
|
|
48
|
+
setUp();
|
|
49
|
+
expect(react_2.screen.getByText('History')).toBeInTheDocument();
|
|
50
|
+
expect(react_2.screen.getByText('5 contributing profiles')).toBeInTheDocument();
|
|
51
|
+
expect(react_2.screen.getByTestId('drop-down-menu-button')).toBeInTheDocument();
|
|
52
|
+
expect(react_2.screen.getByTestId('history-filter-button')).toBeInTheDocument();
|
|
58
53
|
});
|
|
59
54
|
it('should render correctly for 0 profiles', function () {
|
|
60
|
-
|
|
61
|
-
expect(
|
|
55
|
+
setUp(__assign(__assign({}, defaultProps), { total: 0 }));
|
|
56
|
+
expect(react_2.screen.getByText('0 contributing profiles')).toBeInTheDocument();
|
|
62
57
|
});
|
|
63
58
|
it('should render empty state', function () {
|
|
64
|
-
|
|
65
|
-
expect(
|
|
66
|
-
expect(
|
|
67
|
-
expect(
|
|
68
|
-
expect(wrapper.find(HistoryMenuButton_1.HistoryMenuButton)).toHaveLength(1);
|
|
59
|
+
setUp(__assign(__assign({}, defaultProps), { total: undefined }));
|
|
60
|
+
expect(react_2.screen.queryByText(/^\d+\scontributing\sprofile(s)?$/)).not.toBeInTheDocument();
|
|
61
|
+
expect(react_2.screen.getByTestId('drop-down-menu-button')).toBeInTheDocument();
|
|
62
|
+
expect(react_2.screen.getByTestId('history-filter-button')).toBeInTheDocument();
|
|
69
63
|
});
|
|
70
64
|
it('should render correctly for 1 profile', function () {
|
|
71
|
-
|
|
72
|
-
expect(
|
|
73
|
-
});
|
|
74
|
-
it('should render correctly for undefined total', function () {
|
|
75
|
-
var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryHeader_1.HistoryHeader, __assign({}, props, { total: undefined })));
|
|
76
|
-
expect(wrapper.find('.count')).toHaveLength(0);
|
|
65
|
+
setUp(__assign(__assign({}, defaultProps), { total: 1 }));
|
|
66
|
+
expect(react_2.screen.getByText('1 contributing profile')).toBeInTheDocument();
|
|
77
67
|
});
|
|
78
68
|
});
|
|
@@ -4,17 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
var react_1 = __importDefault(require("react"));
|
|
7
|
-
var
|
|
8
|
-
var SidePanelEmptyState_1 = require("../../../SidePanelEmptyState");
|
|
7
|
+
var react_2 = require("@testing-library/react");
|
|
9
8
|
var HistoryPanelEmptyState_1 = require("./HistoryPanelEmptyState");
|
|
10
9
|
describe('HistoryPanelEmptyState tests', function () {
|
|
11
10
|
it('should render correct default state', function () {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
expect(
|
|
15
|
-
expect(emptyState.props()).toMatchObject({
|
|
16
|
-
text: 'History in the making',
|
|
17
|
-
secondaryText: 'When you create an event or perform an activity, it will show up here.'
|
|
18
|
-
});
|
|
11
|
+
(0, react_2.render)(react_1.default.createElement(HistoryPanelEmptyState_1.HistoryPanelEmptyState, null));
|
|
12
|
+
expect(react_2.screen.getByText('History in the making')).toBeInTheDocument();
|
|
13
|
+
expect(react_2.screen.getByText('When you create an event or perform an activity, it will show up here.')).toBeInTheDocument();
|
|
19
14
|
});
|
|
20
15
|
});
|
|
@@ -23,7 +23,7 @@ var HistoryRow = function (_a) {
|
|
|
23
23
|
_b)), onClick: onClick },
|
|
24
24
|
react_1.default.createElement("div", { className: styles.rowHeader },
|
|
25
25
|
react_1.default.createElement("div", { className: styles.badge }),
|
|
26
|
-
react_1.default.createElement(Typography_1.default, { className: (0, classnames_1.default)(styles.title, { bold: isCurrent }) }, isCurrent ? ui_i18n_1.default.text('Current view') : (0, activity_log_1.getActivityLabel)(type)),
|
|
26
|
+
react_1.default.createElement(Typography_1.default, { "data-reltio-id": "history-row-header", className: (0, classnames_1.default)(styles.title, { bold: isCurrent }) }, isCurrent ? ui_i18n_1.default.text('Current view') : (0, activity_log_1.getActivityLabel)(type)),
|
|
27
27
|
!isCurrent && react_1.default.createElement(Typography_1.default, { className: styles.date }, ui_i18n_1.default.date(timestamp, 'L LT'))),
|
|
28
28
|
matchGroups && (react_1.default.createElement(Typography_1.default, { className: styles.title },
|
|
29
29
|
ui_i18n_1.default.text('Match rule:'),
|
|
@@ -10,13 +10,50 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
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);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
13
49
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
51
|
};
|
|
16
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
53
|
var react_1 = __importDefault(require("react"));
|
|
18
54
|
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
19
|
-
var
|
|
55
|
+
var react_2 = require("@testing-library/react");
|
|
56
|
+
var user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
20
57
|
var types_1 = require("../types");
|
|
21
58
|
var activity_log_1 = require("../../activity-log");
|
|
22
59
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
@@ -30,7 +67,7 @@ describe('HistoryRow tests', function () {
|
|
|
30
67
|
timestamp: 1622451175422
|
|
31
68
|
};
|
|
32
69
|
var onClick = jest.fn();
|
|
33
|
-
var
|
|
70
|
+
var defaultProps = {
|
|
34
71
|
change: change,
|
|
35
72
|
isCurrent: false,
|
|
36
73
|
isSelected: false,
|
|
@@ -39,44 +76,47 @@ describe('HistoryRow tests', function () {
|
|
|
39
76
|
beforeAll(function () {
|
|
40
77
|
jest.clearAllMocks();
|
|
41
78
|
});
|
|
79
|
+
var setUp = function (props) {
|
|
80
|
+
if (props === void 0) { props = defaultProps; }
|
|
81
|
+
var user = user_event_1.default.setup();
|
|
82
|
+
return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(HistoryRow_1.HistoryRow, __assign({}, props)))), { user: user });
|
|
83
|
+
};
|
|
42
84
|
it('should render correctly', function () {
|
|
43
|
-
|
|
44
|
-
expect(mdm_sdk_1.getContributorColor).toHaveBeenCalledWith(
|
|
45
|
-
expect(
|
|
46
|
-
|
|
47
|
-
expect(
|
|
48
|
-
expect(
|
|
49
|
-
|
|
50
|
-
expect(
|
|
51
|
-
expect(headerTitle.hasClass('bold')).toBe(false);
|
|
52
|
-
expect(header.find('.date').text()).toBe(ui_i18n_1.default.date(props.change.timestamp, 'L LT'));
|
|
53
|
-
expect(wrapper.find('.historyRow > .title').length).toBe(0);
|
|
54
|
-
expect(wrapper.find('.user').text()).toBe(props.change.user);
|
|
55
|
-
expect(wrapper.hasClass('selected')).toBeFalsy();
|
|
85
|
+
setUp();
|
|
86
|
+
expect(mdm_sdk_1.getContributorColor).toHaveBeenCalledWith(defaultProps.change.uri);
|
|
87
|
+
expect(react_2.screen.getByText((0, activity_log_1.getActivityLabel)(defaultProps.change.type))).toBeInTheDocument();
|
|
88
|
+
expect(react_2.screen.getByText(ui_i18n_1.default.date(defaultProps.change.timestamp, 'L LT'))).toBeInTheDocument();
|
|
89
|
+
expect(react_2.screen.getByText(defaultProps.change.user)).toBeInTheDocument();
|
|
90
|
+
expect(react_2.screen.queryByText('Current view')).not.toBeInTheDocument();
|
|
91
|
+
expect(react_2.screen.getByTestId('history-row')).not.toHaveClass('selected');
|
|
92
|
+
expect(react_2.screen.getByTestId('history-row-header')).not.toHaveClass('bold');
|
|
56
93
|
});
|
|
57
94
|
it('should render correct current row if isCurrent === true', function () {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
expect(header
|
|
61
|
-
expect(
|
|
62
|
-
var headerTitle = header.find('.title');
|
|
63
|
-
expect(headerTitle.text()).toBe('Current view');
|
|
64
|
-
expect(headerTitle.hasClass('bold')).toBe(true);
|
|
65
|
-
expect(header.find('.date').length).toBe(0);
|
|
95
|
+
setUp(__assign(__assign({}, defaultProps), { isCurrent: true }));
|
|
96
|
+
expect(react_2.screen.getByText('Current view')).toBeInTheDocument();
|
|
97
|
+
expect(react_2.screen.getByTestId('history-row-header')).toHaveClass('bold');
|
|
98
|
+
expect(react_2.screen.queryByText(ui_i18n_1.default.date(defaultProps.change.timestamp, 'L LT'))).not.toBeInTheDocument();
|
|
66
99
|
});
|
|
67
100
|
it('should show match rules if change.matchGroups is not empty', function () {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
expect(matchRules.length).toBe(1);
|
|
71
|
-
expect(matchRules.text()).toBe('Match rule: first, second');
|
|
101
|
+
setUp(__assign(__assign({}, defaultProps), { change: __assign(__assign({}, change), { matchGroups: ['first', 'second'] }) }));
|
|
102
|
+
expect(react_2.screen.getByText('Match rule: first, second')).toBeInTheDocument();
|
|
72
103
|
});
|
|
73
104
|
it('should render correctly if isSelected === true', function () {
|
|
74
|
-
|
|
75
|
-
expect(
|
|
76
|
-
});
|
|
77
|
-
it('should call props.onClick when click on the row', function () {
|
|
78
|
-
var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryRow_1.HistoryRow, __assign({}, props)));
|
|
79
|
-
wrapper.simulate('click');
|
|
80
|
-
expect(onClick).toHaveBeenCalled();
|
|
105
|
+
setUp(__assign(__assign({}, defaultProps), { isSelected: true }));
|
|
106
|
+
expect(react_2.screen.getByTestId('history-row')).toHaveClass('selected');
|
|
81
107
|
});
|
|
108
|
+
it('should call props.onClick when click on the row', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
109
|
+
var user;
|
|
110
|
+
return __generator(this, function (_a) {
|
|
111
|
+
switch (_a.label) {
|
|
112
|
+
case 0:
|
|
113
|
+
user = setUp().user;
|
|
114
|
+
return [4 /*yield*/, user.click(react_2.screen.getByTestId('history-row'))];
|
|
115
|
+
case 1:
|
|
116
|
+
_a.sent();
|
|
117
|
+
expect(onClick).toHaveBeenCalled();
|
|
118
|
+
return [2 /*return*/];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}); });
|
|
82
122
|
});
|
|
@@ -126,7 +126,7 @@ var HistoryTree = function (_a) {
|
|
|
126
126
|
setSelectedIndex(index);
|
|
127
127
|
}
|
|
128
128
|
};
|
|
129
|
-
return (react_1.default.createElement("div", { className: styles.historyTree },
|
|
129
|
+
return (react_1.default.createElement("div", { className: styles.historyTree, "data-reltio-id": "history-tree" },
|
|
130
130
|
isLoading && react_1.default.createElement(LinearLoadIndicator_1.LinearLoadIndicator, null),
|
|
131
131
|
react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.graph, (_b = {}, _b[styles.shadow] = isScrollable, _b)), onScroll: handleGraphScroll, ref: graphRef },
|
|
132
132
|
react_1.default.createElement(HistoryGraph_1.HistoryGraph, { onHistoryCircleMouseOver: handleHistoryCircleMouseOver, graphData: graphData }),
|
|
@@ -33,23 +33,51 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
33
33
|
__setModuleDefault(result, mod);
|
|
34
34
|
return result;
|
|
35
35
|
};
|
|
36
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
37
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
38
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
39
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
40
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
41
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
42
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
46
|
+
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);
|
|
47
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
48
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
49
|
+
function step(op) {
|
|
50
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
51
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
52
|
+
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;
|
|
53
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
54
|
+
switch (op[0]) {
|
|
55
|
+
case 0: case 1: t = op; break;
|
|
56
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
57
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
58
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
59
|
+
default:
|
|
60
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
61
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
62
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
63
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
64
|
+
if (t[2]) _.ops.pop();
|
|
65
|
+
_.trys.pop(); continue;
|
|
66
|
+
}
|
|
67
|
+
op = body.call(thisArg, _);
|
|
68
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
69
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
|
+
}
|
|
71
|
+
};
|
|
36
72
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
73
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
74
|
};
|
|
39
75
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
76
|
var react_1 = __importDefault(require("react"));
|
|
41
|
-
var
|
|
42
|
-
var
|
|
77
|
+
var react_2 = require("@testing-library/react");
|
|
78
|
+
var user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
43
79
|
var useHistoryTreeHook = __importStar(require("../hooks/useHistoryTree"));
|
|
44
|
-
var ContributorsPanel_1 = require("../ContributorsPanel");
|
|
45
|
-
var HistoryTree_1 = require("../HistoryTree");
|
|
46
80
|
var HistoryView_1 = __importDefault(require("./HistoryView"));
|
|
47
|
-
jest.mock('../HistoryTree', function () { return ({
|
|
48
|
-
HistoryTree: function () { return null; }
|
|
49
|
-
}); });
|
|
50
|
-
jest.mock('../ContributorsPanel', function () { return ({
|
|
51
|
-
ContributorsPanel: function () { return null; }
|
|
52
|
-
}); });
|
|
53
81
|
describe('HistoryView tests', function () {
|
|
54
82
|
var historyWithTotal = {
|
|
55
83
|
total: 2,
|
|
@@ -66,7 +94,7 @@ describe('HistoryView tests', function () {
|
|
|
66
94
|
}
|
|
67
95
|
]
|
|
68
96
|
};
|
|
69
|
-
var
|
|
97
|
+
var defaultProps = {
|
|
70
98
|
isLoading: false,
|
|
71
99
|
canLoadMore: false,
|
|
72
100
|
onLoadMore: jest.fn(),
|
|
@@ -88,38 +116,44 @@ describe('HistoryView tests', function () {
|
|
|
88
116
|
var useHistoryTreeMock = jest
|
|
89
117
|
.spyOn(useHistoryTreeHook, 'useHistoryTree')
|
|
90
118
|
.mockReturnValue({ historyData: historyData, findPreviousChange: findPreviousChange });
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
119
|
+
var setUp = function (props) {
|
|
120
|
+
if (props === void 0) { props = defaultProps; }
|
|
121
|
+
var user = user_event_1.default.setup();
|
|
122
|
+
return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(HistoryView_1.default, __assign({}, props)))), { user: user });
|
|
123
|
+
};
|
|
124
|
+
it('should render correct default state', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
125
|
+
var contributorItems;
|
|
126
|
+
return __generator(this, function (_a) {
|
|
127
|
+
setUp();
|
|
128
|
+
expect(useHistoryTreeMock).toHaveBeenCalledWith({
|
|
129
|
+
entityUri: defaultProps.entityUri,
|
|
130
|
+
historyChanges: defaultProps.historyWithTotal.changes,
|
|
131
|
+
selectedUris: defaultProps.contributorsUris
|
|
132
|
+
});
|
|
133
|
+
contributorItems = react_2.screen.getAllByTestId('reltio-contributor-item');
|
|
134
|
+
expect(contributorItems).toHaveLength(4);
|
|
135
|
+
expect(contributorItems[0]).toHaveAttribute('data-reltio-contributor', 'entities/uri0000');
|
|
136
|
+
expect(contributorItems[1]).toHaveAttribute('data-reltio-contributor', 'entities/uri1111');
|
|
137
|
+
expect(contributorItems[2]).toHaveAttribute('data-reltio-contributor', 'entities/uri2222');
|
|
138
|
+
expect(contributorItems[3]).toHaveAttribute('data-reltio-contributor', 'entities/uri3333');
|
|
139
|
+
expect(react_2.screen.getByTestId('history-tree')).toBeInTheDocument();
|
|
140
|
+
expect(react_2.screen.getByTestId('reltio-history-graph')).toBeInTheDocument();
|
|
141
|
+
return [2 /*return*/];
|
|
113
142
|
});
|
|
114
|
-
});
|
|
115
|
-
it('should render ContributorsPanel with new selectedValues when call ContributorsPanel onSelectValues prop', function () {
|
|
116
|
-
var
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
143
|
+
}); });
|
|
144
|
+
it('should render ContributorsPanel with new selectedValues when call ContributorsPanel onSelectValues prop', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
145
|
+
var user, contributorItems;
|
|
146
|
+
return __generator(this, function (_a) {
|
|
147
|
+
switch (_a.label) {
|
|
148
|
+
case 0:
|
|
149
|
+
user = setUp().user;
|
|
150
|
+
contributorItems = react_2.screen.getAllByTestId('reltio-contributor-item');
|
|
151
|
+
return [4 /*yield*/, user.click(contributorItems[2])];
|
|
152
|
+
case 1:
|
|
153
|
+
_a.sent();
|
|
154
|
+
expect(contributorItems[2]).toHaveClass('inactive');
|
|
155
|
+
return [2 /*return*/];
|
|
156
|
+
}
|
|
121
157
|
});
|
|
122
|
-
|
|
123
|
-
expect(wrapper.find(ContributorsPanel_1.ContributorsPanel).prop('selectedValues').sort()).toEqual(newSelectedValues.sort());
|
|
124
|
-
});
|
|
158
|
+
}); });
|
|
125
159
|
});
|