@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.
Files changed (69) hide show
  1. package/cjs/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +0 -1
  2. package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +5 -14
  3. package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +11 -9
  4. package/cjs/features/graph/ZoomSlider/ZoomSlider.js +2 -2
  5. package/cjs/features/graph/ZoomSlider/ZoomSlider.test.js +85 -37
  6. package/cjs/features/history/DateRangeSelector/DateRangeSelector.specs.js +188 -117
  7. package/cjs/features/history/HistoryFilterButton/HistoryFilterButton.js +1 -1
  8. package/cjs/features/history/HistoryGraph/components/HistoryCircle/HistoryCircle.specs.js +38 -41
  9. package/cjs/features/history/HistoryGraph/components/HistoryLink/HistoryLink.specs.js +17 -16
  10. package/cjs/features/history/HistoryHeader/HistoryHeader.spec.js +21 -31
  11. package/cjs/features/history/HistoryPanelEmptyState/HistoryPanelEmptyState.specs.js +4 -9
  12. package/cjs/features/history/HistoryRow/HistoryRow.js +1 -1
  13. package/cjs/features/history/HistoryRow/HistoryRow.specs.js +74 -34
  14. package/cjs/features/history/HistoryTree/HistoryTree.js +1 -1
  15. package/cjs/features/history/HistoryView/HistoryView.specs.js +77 -43
  16. package/cjs/features/workflow/AddWorkflowButton/AddWorkflowButton.spec.js +83 -34
  17. package/cjs/features/workflow/AddWorkflowDialog/AddWorkflowDialog.spec.js +20 -0
  18. package/cjs/features/workflow/AttributesChanges/AttributesChanges.js +1 -1
  19. package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
  20. package/cjs/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
  21. package/cjs/features/workflow/DueDateField/DueDateField.spec.js +51 -102
  22. package/cjs/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
  23. package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +438 -124
  24. package/cjs/features/workflow/hooks/useChangeRequest.specs.js +17 -27
  25. package/cjs/features/workflow/hooks/useWorkflowColor.specs.js +23 -47
  26. package/cjs/features/workflow/hooks/useWorkflowDefinitions.js +5 -1
  27. package/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +0 -1
  28. package/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +5 -14
  29. package/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +11 -9
  30. package/features/graph/ZoomSlider/ZoomSlider.js +2 -2
  31. package/features/graph/ZoomSlider/ZoomSlider.test.js +85 -37
  32. package/features/history/DateRangeSelector/DateRangeSelector.specs.js +188 -117
  33. package/features/history/HistoryFilterButton/HistoryFilterButton.js +1 -1
  34. package/features/history/HistoryGraph/components/HistoryCircle/HistoryCircle.specs.js +38 -41
  35. package/features/history/HistoryGraph/components/HistoryLink/HistoryLink.specs.js +17 -16
  36. package/features/history/HistoryHeader/HistoryHeader.spec.js +21 -31
  37. package/features/history/HistoryPanelEmptyState/HistoryPanelEmptyState.specs.js +4 -9
  38. package/features/history/HistoryRow/HistoryRow.js +1 -1
  39. package/features/history/HistoryRow/HistoryRow.specs.js +74 -34
  40. package/features/history/HistoryTree/HistoryTree.js +1 -1
  41. package/features/history/HistoryView/HistoryView.specs.js +77 -43
  42. package/features/workflow/AddWorkflowButton/AddWorkflowButton.spec.js +83 -34
  43. package/features/workflow/AddWorkflowDialog/AddWorkflowDialog.spec.js +20 -0
  44. package/features/workflow/AttributesChanges/AttributesChanges.js +1 -1
  45. package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
  46. package/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
  47. package/features/workflow/DueDateField/DueDateField.spec.js +51 -102
  48. package/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
  49. package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +439 -125
  50. package/features/workflow/hooks/useChangeRequest.specs.js +17 -24
  51. package/features/workflow/hooks/useWorkflowColor.specs.js +23 -44
  52. package/features/workflow/hooks/useWorkflowDefinitions.js +5 -1
  53. package/package.json +1 -1
  54. package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
  55. package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -249
  56. package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
  57. package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -44
  58. package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
  59. package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -38
  60. package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
  61. package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.js +0 -218
  62. package/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
  63. package/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -244
  64. package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
  65. package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -39
  66. package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
  67. package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -33
  68. package/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
  69. 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 enzyme_1 = require("enzyme");
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 props = {
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 wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryCircle_1.HistoryCircle, __assign({}, props)));
33
- expect(wrapper.find('g').length).toBe(1);
34
- expect(wrapper.find('#line').length).toBe(0);
35
- expect(wrapper.find('#icon').length).toBe(0);
36
- var circle = wrapper.find('circle');
37
- expect(circle.length).toBe(1);
38
- expect(circle.props()).toMatchObject({
39
- cx: props.x,
40
- cy: props.y,
41
- r: constants_1.BUMP_RADIUS,
42
- fill: props.color,
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 wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryCircle_1.HistoryCircle, __assign({}, props, { showLine: true })));
49
- var line = wrapper.find('#line');
50
- expect(line.length).toBe(1);
51
- expect(line.props()).toMatchObject({
52
- x: props.x - constants_1.BUMP_RADIUS - constants_1.LINE_MARGIN,
53
- y: props.y - constants_1.BUMP_RADIUS - constants_1.LINE_MARGIN,
54
- width: constants_1.BUMP_RADIUS * 2 + constants_1.LINE_MARGIN * 2,
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 wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryCircle_1.HistoryCircle, __assign({}, props, { isDashed: true })));
61
- expect(wrapper.find('circle').props()).toMatchObject({
62
- fill: '#fff',
63
- strokeDasharray: '1,1'
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 wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryCircle_1.HistoryCircle, __assign({}, props, { showCollapseIcon: true })));
68
- var icon = wrapper.find('#icon');
69
- expect(icon.length).toBe(1);
70
- expect(icon.find('rect').length).toBe(1);
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 wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryCircle_1.HistoryCircle, __assign({}, props, { showCollapseIcon: true, isCollapsed: true })));
74
- var icon = wrapper.find('#icon');
75
- expect(icon.length).toBe(1);
76
- expect(icon.find('rect').length).toBe(2);
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryCircle_1.HistoryCircle, __assign({}, props, svgProps)));
81
- expect(wrapper.find('g').prop('className')).toEqual(svgProps.className);
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 enzyme_1 = require("enzyme");
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 props = {
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 wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryLink_1.HistoryLink, __assign({}, props)));
59
- expect(getHistoryLinkCurveSpy).toHaveBeenCalledWith(props.x, props.y, props.toX, props.toY);
60
- expect(wrapper.find('path').length).toBe(1);
61
- expect(wrapper.find('path').props()).toMatchObject({
62
- d: getHistoryLinkCurveSpy.mock.results[0].value,
63
- stroke: props.color,
64
- fill: 'none',
65
- strokeWidth: 2,
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 wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryLink_1.HistoryLink, __assign({}, props, { isDashed: true })));
71
- expect(getHistoryLinkCurveSpy).toHaveBeenCalledWith(props.x, props.y, props.toX, props.toY);
72
- expect(wrapper.find('path').length).toBe(1);
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 enzyme_1 = require("enzyme");
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 props = {
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryHeader_1.HistoryHeader, __assign({}, props, { total: 5 })));
48
- expect(wrapper.find(Typography_1.default).at(0).text()).toBe('History');
49
- expect(wrapper.find(Divider_1.default)).toHaveLength(1);
50
- expect(wrapper.find('.count').text()).toBe('5 contributing profiles');
51
- expect(wrapper.find(HistoryFilterButton_1.HistoryFilterButton)).toHaveLength(1);
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryHeader_1.HistoryHeader, __assign({}, props, { total: 0 })));
61
- expect(wrapper.find('.count').text()).toBe('0 contributing profiles');
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryHeader_1.HistoryHeader, __assign({}, props)));
65
- expect(wrapper.find(Divider_1.default)).toHaveLength(0);
66
- expect(wrapper.find('.count')).toHaveLength(0);
67
- expect(wrapper.find(HistoryFilterButton_1.HistoryFilterButton)).toHaveLength(1);
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryHeader_1.HistoryHeader, __assign({}, props, { total: 1 })));
72
- expect(wrapper.find('.count').text()).toBe('1 contributing profile');
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 enzyme_1 = require("enzyme");
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryPanelEmptyState_1.HistoryPanelEmptyState, null));
13
- var emptyState = wrapper.find(SidePanelEmptyState_1.SidePanelEmptyState);
14
- expect(emptyState.length).toBe(1);
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 enzyme_1 = require("enzyme");
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 props = {
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryRow_1.HistoryRow, __assign({}, props)));
44
- expect(mdm_sdk_1.getContributorColor).toHaveBeenCalledWith(props.change.uri);
45
- expect(wrapper.find('.historyRow').length).toBe(1);
46
- var header = wrapper.find('.rowHeader');
47
- expect(header.length).toBe(1);
48
- expect(header.find('.badge').length).toBe(1);
49
- var headerTitle = header.find('.title');
50
- expect(headerTitle.text()).toBe((0, activity_log_1.getActivityLabel)(props.change.type));
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryRow_1.HistoryRow, __assign({}, props, { isCurrent: true })));
59
- var header = wrapper.find('.rowHeader');
60
- expect(header.length).toBe(1);
61
- expect(header.find('.badge').length).toBe(1);
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryRow_1.HistoryRow, __assign({}, props, { change: __assign(__assign({}, change), { matchGroups: ['first', 'second'] }) })));
69
- var matchRules = wrapper.find('.historyRow > .title');
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
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(HistoryRow_1.HistoryRow, __assign({}, props, { isSelected: true })));
75
- expect(wrapper.hasClass('selected')).toBeTruthy();
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 enzyme_1 = require("enzyme");
42
- var test_utils_1 = require("react-dom/test-utils");
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 props = {
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
- it('should render correct default state', function () {
92
- var wrapper = (0, enzyme_1.mount)(react_1.default.createElement(HistoryView_1.default, __assign({}, props)));
93
- expect(useHistoryTreeMock).toHaveBeenCalledWith({
94
- entityUri: props.entityUri,
95
- historyChanges: props.historyWithTotal.changes,
96
- selectedUris: props.contributorsUris
97
- });
98
- expect(wrapper.find(ContributorsPanel_1.ContributorsPanel).length).toBe(1);
99
- expect(wrapper.find(ContributorsPanel_1.ContributorsPanel).props()).toMatchObject({
100
- values: props.contributorsUris,
101
- selectedValues: props.contributorsUris,
102
- entityUri: props.entityUri
103
- });
104
- expect(wrapper.find(HistoryTree_1.HistoryTree).length).toBe(1);
105
- expect(wrapper.find(HistoryTree_1.HistoryTree).props()).toMatchObject({
106
- historyData: historyData,
107
- isLoading: props.isLoading,
108
- onLoadMore: props.onLoadMore,
109
- canLoadMore: props.canLoadMore,
110
- entityUri: props.entityUri,
111
- historyEvent: props.historyEvent,
112
- findPreviousChange: findPreviousChange
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 wrapper = (0, enzyme_1.mount)(react_1.default.createElement(HistoryView_1.default, __assign({}, props)));
117
- expect(wrapper.find(ContributorsPanel_1.ContributorsPanel).prop('selectedValues').sort()).toEqual(props.contributorsUris.sort());
118
- var newSelectedValues = ['entities/uri2222', 'entities/uri3333'];
119
- (0, test_utils_1.act)(function () {
120
- wrapper.find(ContributorsPanel_1.ContributorsPanel).prop('onSelectValues')(newSelectedValues);
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
- wrapper.update();
123
- expect(wrapper.find(ContributorsPanel_1.ContributorsPanel).prop('selectedValues').sort()).toEqual(newSelectedValues.sort());
124
- });
158
+ }); });
125
159
  });