@reltio/components 1.4.2026 → 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.
Files changed (67) hide show
  1. package/RCTree/styles.js +4 -1
  2. package/cjs/RCTree/styles.js +4 -1
  3. package/cjs/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +0 -1
  4. package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +5 -14
  5. package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +11 -9
  6. package/cjs/features/graph/ZoomSlider/ZoomSlider.js +2 -2
  7. package/cjs/features/graph/ZoomSlider/ZoomSlider.test.js +85 -37
  8. package/cjs/features/history/DateRangeSelector/DateRangeSelector.specs.js +188 -117
  9. package/cjs/features/history/HistoryFilterButton/HistoryFilterButton.js +1 -1
  10. package/cjs/features/history/HistoryGraph/components/HistoryCircle/HistoryCircle.specs.js +38 -41
  11. package/cjs/features/history/HistoryGraph/components/HistoryLink/HistoryLink.specs.js +17 -16
  12. package/cjs/features/history/HistoryHeader/HistoryHeader.spec.js +21 -31
  13. package/cjs/features/history/HistoryPanelEmptyState/HistoryPanelEmptyState.specs.js +4 -9
  14. package/cjs/features/history/HistoryRow/HistoryRow.js +1 -1
  15. package/cjs/features/history/HistoryRow/HistoryRow.specs.js +74 -34
  16. package/cjs/features/history/HistoryTree/HistoryTree.js +1 -1
  17. package/cjs/features/history/HistoryView/HistoryView.specs.js +77 -43
  18. package/cjs/features/workflow/AddWorkflowButton/AddWorkflowButton.spec.js +83 -34
  19. package/cjs/features/workflow/AttributesChanges/AttributesChanges.js +1 -1
  20. package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
  21. package/cjs/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
  22. package/cjs/features/workflow/DueDateField/DueDateField.spec.js +51 -102
  23. package/cjs/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
  24. package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +438 -124
  25. package/cjs/features/workflow/hooks/useChangeRequest.specs.js +17 -27
  26. package/cjs/features/workflow/hooks/useWorkflowColor.specs.js +23 -47
  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/AttributesChanges/AttributesChanges.js +1 -1
  44. package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
  45. package/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
  46. package/features/workflow/DueDateField/DueDateField.spec.js +51 -102
  47. package/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
  48. package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +439 -125
  49. package/features/workflow/hooks/useChangeRequest.specs.js +17 -24
  50. package/features/workflow/hooks/useWorkflowColor.specs.js +23 -44
  51. package/package.json +1 -1
  52. package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
  53. package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -249
  54. package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
  55. package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -44
  56. package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
  57. package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -38
  58. package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
  59. package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.js +0 -218
  60. package/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
  61. package/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -244
  62. package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
  63. package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -39
  64. package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
  65. package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -33
  66. package/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
  67. package/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.js +0 -213
@@ -46,25 +46,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
47
  }
48
48
  };
49
- var __importDefault = (this && this.__importDefault) || function (mod) {
50
- return (mod && mod.__esModule) ? mod : { "default": mod };
51
- };
52
49
  Object.defineProperty(exports, "__esModule", { value: true });
53
- var react_1 = __importDefault(require("react"));
54
- var enzyme_1 = require("enzyme");
50
+ var react_hooks_1 = require("@testing-library/react-hooks");
55
51
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
56
52
  var test_utils_1 = require("react-dom/test-utils");
57
53
  var ErrorPopup_1 = require("../../../ErrorPopup");
58
54
  var useChangeRequest_1 = require("./useChangeRequest");
59
55
  jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getDataChangeRequest: jest.fn(), getEntitiesByUris: jest.fn() })); });
60
56
  describe('useChangeRequest tests', function () {
61
- // eslint-disable-next-line react/prop-types
62
- var TestComponent = function (_a) {
63
- var dcrUri = _a.dcrUri;
64
- var _b = (0, useChangeRequest_1.useChangeRequest)(dcrUri), dcr = _b.dcr, groupedObjects = _b.groupedObjects;
65
- return react_1.default.createElement("div", { "data-test": { dcr: dcr, groupedObjects: groupedObjects } });
57
+ var setUp = function (dcrUri) {
58
+ var initialProps = dcrUri;
59
+ return (0, react_hooks_1.renderHook)(useChangeRequest_1.useChangeRequest, { initialProps: initialProps });
66
60
  };
67
- var getHooksValues = function (component) { return component.find('TestComponent').childAt(0).prop('data-test'); };
68
61
  var resolveChangeRequest, resolveGetEntitiesByUris;
69
62
  var dcr = {
70
63
  changes: {
@@ -132,29 +125,29 @@ describe('useChangeRequest tests', function () {
132
125
  jest.clearAllMocks();
133
126
  });
134
127
  it('should return empty parameters if dcrUri is null', function () {
135
- var wrapper = (0, enzyme_1.mount)(react_1.default.createElement(TestComponent, { dcrUri: null }));
128
+ var result = setUp(null).result;
136
129
  expect(mdm_sdk_1.getDataChangeRequest).toHaveBeenCalledWith(null);
137
130
  expect(mdm_sdk_1.getEntitiesByUris).not.toHaveBeenCalled();
138
- expect(getHooksValues(wrapper)).toEqual({
131
+ expect(result.current).toEqual({
139
132
  dcr: null,
140
133
  groupedObjects: []
141
134
  });
142
135
  });
143
136
  it('should return empty parameters if dcrUri is undefined', function () {
144
- var wrapper = (0, enzyme_1.mount)(react_1.default.createElement(TestComponent, { dcrUri: undefined }));
137
+ var result = setUp(undefined).result;
145
138
  expect(mdm_sdk_1.getDataChangeRequest).toHaveBeenCalledWith(undefined);
146
139
  expect(mdm_sdk_1.getEntitiesByUris).not.toHaveBeenCalled();
147
- expect(getHooksValues(wrapper)).toEqual({
140
+ expect(result.current).toEqual({
148
141
  dcr: null,
149
142
  groupedObjects: []
150
143
  });
151
144
  });
152
145
  it('should go to error message in case of getDataChangeRequest error', function () { return __awaiter(void 0, void 0, void 0, function () {
153
- var wrapper;
146
+ var result;
154
147
  return __generator(this, function (_a) {
155
148
  switch (_a.label) {
156
149
  case 0:
157
- wrapper = (0, enzyme_1.mount)(react_1.default.createElement(TestComponent, { dcrUri: '' }));
150
+ result = setUp('').result;
158
151
  return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
159
152
  return __generator(this, function (_a) {
160
153
  resolveChangeRequest(true);
@@ -163,12 +156,11 @@ describe('useChangeRequest tests', function () {
163
156
  }); })];
164
157
  case 1:
165
158
  _a.sent();
166
- wrapper.update();
167
159
  expect(ErrorPopup_1.ErrorPopup.addError).toHaveBeenCalledWith({
168
160
  title: 'Error',
169
161
  message: 'dcrError'
170
162
  });
171
- expect(getHooksValues(wrapper)).toEqual({
163
+ expect(result.current).toEqual({
172
164
  dcr: null,
173
165
  groupedObjects: []
174
166
  });
@@ -177,11 +169,11 @@ describe('useChangeRequest tests', function () {
177
169
  });
178
170
  }); });
179
171
  it('should go to error message in case of getEntitiesByUris error', function () { return __awaiter(void 0, void 0, void 0, function () {
180
- var wrapper;
172
+ var result;
181
173
  return __generator(this, function (_a) {
182
174
  switch (_a.label) {
183
175
  case 0:
184
- wrapper = (0, enzyme_1.mount)(react_1.default.createElement(TestComponent, { dcrUri: 'testUri' }));
176
+ result = setUp('testUri').result;
185
177
  return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
186
178
  return __generator(this, function (_a) {
187
179
  resolveChangeRequest();
@@ -198,7 +190,6 @@ describe('useChangeRequest tests', function () {
198
190
  }); })];
199
191
  case 2:
200
192
  _a.sent();
201
- wrapper.update();
202
193
  expect(mdm_sdk_1.getDataChangeRequest).toHaveBeenCalledWith('testUri');
203
194
  expect(mdm_sdk_1.getEntitiesByUris).toHaveBeenCalledWith(['entities/10f6JMNk'], {
204
195
  defaultMaxValues: 1,
@@ -208,7 +199,7 @@ describe('useChangeRequest tests', function () {
208
199
  title: 'Error',
209
200
  message: 'entitiesError'
210
201
  });
211
- expect(getHooksValues(wrapper)).toEqual({
202
+ expect(result.current).toEqual({
212
203
  dcr: dcr,
213
204
  groupedObjects: []
214
205
  });
@@ -217,11 +208,11 @@ describe('useChangeRequest tests', function () {
217
208
  });
218
209
  }); });
219
210
  it('should return correct parameters', function () { return __awaiter(void 0, void 0, void 0, function () {
220
- var wrapper;
211
+ var result;
221
212
  return __generator(this, function (_a) {
222
213
  switch (_a.label) {
223
214
  case 0:
224
- wrapper = (0, enzyme_1.mount)(react_1.default.createElement(TestComponent, { dcrUri: 'testUri' }));
215
+ result = setUp('testUri').result;
225
216
  return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
226
217
  return __generator(this, function (_a) {
227
218
  resolveChangeRequest();
@@ -238,14 +229,13 @@ describe('useChangeRequest tests', function () {
238
229
  }); })];
239
230
  case 2:
240
231
  _a.sent();
241
- wrapper.update();
242
232
  expect(mdm_sdk_1.getDataChangeRequest).toHaveBeenCalledWith('testUri');
243
233
  expect(mdm_sdk_1.getEntitiesByUris).toHaveBeenCalledWith(['entities/10f6JMNk'], {
244
234
  defaultMaxValues: 1,
245
235
  searchOptions: 'ovOnly'
246
236
  });
247
237
  expect(ErrorPopup_1.ErrorPopup.addError).not.toHaveBeenCalled();
248
- expect(getHooksValues(wrapper)).toEqual({
238
+ expect(result.current).toEqual({
249
239
  dcr: dcr,
250
240
  groupedObjects: [
251
241
  {
@@ -1,59 +1,35 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var react_1 = __importDefault(require("react"));
7
- var enzyme_1 = require("enzyme");
3
+ var react_hooks_1 = require("@testing-library/react-hooks");
8
4
  var useWorkflowColor_1 = require("./useWorkflowColor");
9
- //eslint-disable-next-line
10
- var TestComponent = function (_a) {
11
- var type = _a.type;
12
- var color = (0, useWorkflowColor_1.useWorkflowColor)({ processDefinitionDisplayName: type });
13
- return react_1.default.createElement("div", { "data-color": color });
14
- };
15
5
  describe('useWorkflowColor behaviour', function () {
16
6
  beforeEach(function () {
17
7
  (0, useWorkflowColor_1.resetTaskToColor)();
18
8
  });
9
+ var getColor = function (type) {
10
+ var initialProps = { processDefinitionDisplayName: type };
11
+ return (0, react_hooks_1.renderHook)(useWorkflowColor_1.useWorkflowColor, { initialProps: initialProps }).result.current;
12
+ };
19
13
  it('should use same colors for same types', function () {
20
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "1" }));
21
- expect(component.prop('data-color')).toBe('#DC057B');
22
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "2" }));
23
- expect(component.prop('data-color')).toBe('#5DC003');
24
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "1" }));
25
- expect(component.prop('data-color')).toBe('#DC057B');
26
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "2" }));
27
- expect(component.prop('data-color')).toBe('#5DC003');
14
+ expect(getColor('1')).toBe('#DC057B');
15
+ expect(getColor('2')).toBe('#5DC003');
16
+ expect(getColor('1')).toBe('#DC057B');
17
+ expect(getColor('2')).toBe('#5DC003');
28
18
  });
29
19
  it('should use colors from beginning if amount of types is greater than amount of colors', function () {
30
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "1" }));
31
- expect(component.prop('data-color')).toBe('#DC057B');
32
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "2" }));
33
- expect(component.prop('data-color')).toBe('#5DC003');
34
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "3" }));
35
- expect(component.prop('data-color')).toBe('#FEC92F');
36
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "4" }));
37
- expect(component.prop('data-color')).toBe('#F57F27');
38
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "5" }));
39
- expect(component.prop('data-color')).toBe('#B71137');
40
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "6" }));
41
- expect(component.prop('data-color')).toBe('#056B97');
42
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "7" }));
43
- expect(component.prop('data-color')).toBe('#4499AE');
44
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "8" }));
45
- expect(component.prop('data-color')).toBe('#BD81BE');
46
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "9" }));
47
- expect(component.prop('data-color')).toBe('#5F3577');
48
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "10" }));
49
- expect(component.prop('data-color')).toBe('#A68560');
50
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "11" }));
51
- expect(component.prop('data-color')).toBe('#555962');
52
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "12" }));
53
- expect(component.prop('data-color')).toBe('#DC057B');
54
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "13" }));
55
- expect(component.prop('data-color')).toBe('#5DC003');
56
- component = (0, enzyme_1.shallow)(react_1.default.createElement(TestComponent, { type: "1" }));
57
- expect(component.prop('data-color')).toBe('#DC057B');
20
+ expect(getColor('1')).toBe('#DC057B');
21
+ expect(getColor('2')).toBe('#5DC003');
22
+ expect(getColor('3')).toBe('#FEC92F');
23
+ expect(getColor('4')).toBe('#F57F27');
24
+ expect(getColor('5')).toBe('#B71137');
25
+ expect(getColor('6')).toBe('#056B97');
26
+ expect(getColor('7')).toBe('#4499AE');
27
+ expect(getColor('8')).toBe('#BD81BE');
28
+ expect(getColor('9')).toBe('#5F3577');
29
+ expect(getColor('10')).toBe('#A68560');
30
+ expect(getColor('11')).toBe('#555962');
31
+ expect(getColor('12')).toBe('#DC057B');
32
+ expect(getColor('13')).toBe('#5DC003');
33
+ expect(getColor('1')).toBe('#DC057B');
58
34
  });
59
35
  });
@@ -113,7 +113,6 @@ describe('CrosswalkRow dnd tests', function () {
113
113
  return __generator(this, function (_a) {
114
114
  onDragStart = jest.fn();
115
115
  setUp(defaultProps, { onDragStart: onDragStart });
116
- screen.debug(screen.getByText('Reltio'));
117
116
  fireEvent.mouseDown(screen.getByText('Reltio'));
118
117
  expect(onDragStart.mock.calls[0][0].active.data.current.crosswalk).toBe(defaultProps.crosswalk);
119
118
  return [2 /*return*/];
@@ -1,21 +1,12 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
3
- import { SigmaContainer } from '@react-sigma/core';
4
- import { MultiGraph } from 'graphology';
2
+ import { render, screen } from '@testing-library/react';
5
3
  import { SigmaGraphContainer } from './SigmaGraphContainer';
6
- import { SigmaCustomRenderersContainer } from '../SigmaCustomRenderersContainer';
7
4
  var children = React.createElement("div", { className: "children" }, "children");
8
- var setUp = function () { return shallow(React.createElement(SigmaGraphContainer, null, children)); };
5
+ var setUp = function () { return render(React.createElement(SigmaGraphContainer, null, children)); };
9
6
  describe('SigmaGraphContainer behavior', function () {
10
7
  it('should render SigmaContainer with passed children', function () {
11
- var component = setUp();
12
- expect(component.find(SigmaContainer)).toHaveLength(1);
13
- expect(component.find(SigmaContainer).prop('graph')).toBe(MultiGraph);
14
- expect(component.find(SigmaContainer).find(SigmaCustomRenderersContainer).find('.children')).toHaveLength(1);
15
- });
16
- it('should render SigmaContainer with initialSettings', function () {
17
- var component = setUp();
18
- expect(component.find(SigmaContainer)).toHaveLength(1);
19
- expect(component.find(SigmaContainer).prop('settings')).not.toBeUndefined();
8
+ var container = setUp().container;
9
+ expect(container.querySelector('.sigma-container')).toBeInTheDocument();
10
+ expect(screen.getByText('children')).toBeInTheDocument();
20
11
  });
21
12
  });
@@ -10,23 +10,25 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import React from 'react';
13
- import { shallow } from 'enzyme';
14
- import ReactResizeDetector from 'react-resize-detector';
13
+ import { render, act } from '@testing-library/react';
14
+ import { mockResizeObserver } from 'jsdom-testing-mocks';
15
15
  import { useSigma } from '@react-sigma/core';
16
16
  import { SigmaGraphResizer } from './SigmaGraphResizer';
17
17
  jest.mock('@react-sigma/core', function () { return (__assign(__assign({}, jest.requireActual('@react-sigma/core')), { useSigma: jest.fn().mockReturnValue({
18
18
  refresh: jest.fn()
19
19
  }) })); });
20
- var setUp = function () { return shallow(React.createElement(SigmaGraphResizer, null)); };
20
+ var setUp = function () { return render(React.createElement(SigmaGraphResizer, null)); };
21
+ var resizeObserver = mockResizeObserver();
21
22
  describe('SigmaGraphResizer behavior', function () {
22
- it('should render ReactResizeDetector', function () {
23
- var component = setUp();
24
- expect(component.find(ReactResizeDetector)).toHaveLength(1);
25
- });
26
23
  it('should refresh sigma instance on resize', function () {
27
- var component = setUp();
24
+ var container = setUp().container;
28
25
  expect(useSigma().refresh).not.toHaveBeenCalled();
29
- component.find(ReactResizeDetector).prop('onResize')();
26
+ resizeObserver.mockElementSize(container, {
27
+ contentBoxSize: { inlineSize: 100, blockSize: 100 }
28
+ });
29
+ act(function () {
30
+ resizeObserver.resize();
31
+ });
30
32
  expect(useSigma().refresh).toHaveBeenCalled();
31
33
  });
32
34
  });
@@ -69,7 +69,7 @@ export var ZoomSlider = function (_a) {
69
69
  return camera.setState({ ratio: camera.getBoundedRatio(percentsToRatio(newValue)) });
70
70
  };
71
71
  return (React.createElement("div", { className: classnames(styles.container, className) },
72
- React.createElement(IconButton, { className: styles.minButton, onClick: function () { return zoomOut(); }, size: "large" },
72
+ React.createElement(IconButton, { "data-reltio-id": "zoom-out-button", className: styles.minButton, onClick: function () { return zoomOut(); }, size: "large" },
73
73
  React.createElement(RemoveIcon, { className: styles.icon })),
74
74
  React.createElement(Slider, { slots: {
75
75
  thumb: ZoomSliderThumb
@@ -78,6 +78,6 @@ export var ZoomSlider = function (_a) {
78
78
  className: styles.thumb
79
79
  }
80
80
  }, classes: { root: styles.sliderRoot, rail: styles.rail }, track: false, value: value, min: min, max: max, onChange: handleChange }),
81
- React.createElement(IconButton, { className: styles.maxButton, onClick: function () { return zoomIn(); }, size: "large" },
81
+ React.createElement(IconButton, { "data-reltio-id": "zoom-in-button", className: styles.maxButton, onClick: function () { return zoomIn(); }, size: "large" },
82
82
  React.createElement(AddIcon, { className: styles.icon }))));
83
83
  };
@@ -9,15 +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 { shallow, mount } from 'enzyme';
14
- import { act } from 'react-dom/test-utils';
49
+ import userEvent from '@testing-library/user-event';
50
+ import { render, screen } from '@testing-library/react';
15
51
  import { useCamera, useSetSettings, useRegisterEvents } from '@react-sigma/core';
16
52
  import { ZoomSlider } from './ZoomSlider';
17
- import IconButton from '@mui/material/IconButton';
18
- import AddIcon from '@mui/icons-material/Add';
19
- import RemoveIcon from '@mui/icons-material/Remove';
20
- import Slider from '@mui/material/Slider';
21
53
  jest.mock('@react-sigma/core', function () { return (__assign(__assign({}, jest.requireActual('@react-sigma/core')), { useCamera: jest.fn().mockReturnValue({
22
54
  zoomOut: jest.fn(),
23
55
  zoomIn: jest.fn()
@@ -29,28 +61,30 @@ jest.mock('@react-sigma/core', function () { return (__assign(__assign({}, jest.
29
61
  }); }
30
62
  }), useSetSettings: jest.fn().mockReturnValue(jest.fn()), useRegisterEvents: jest.fn().mockReturnValue(jest.fn()) })); });
31
63
  describe('ZoomSlider tests', function () {
64
+ var defaultProps = { className: 'testClass', min: 30, max: 300 };
65
+ var setUp = function (props) {
66
+ if (props === void 0) { props = defaultProps; }
67
+ var user = userEvent.setup();
68
+ return __assign(__assign({}, render(React.createElement(ZoomSlider, __assign({}, props)))), { user: user });
69
+ };
32
70
  it('should render main parts', function () {
33
- var component = shallow(React.createElement(ZoomSlider, { className: "testClass", min: 30, max: 300 }));
34
- expect(component.find(IconButton)).toHaveLength(2);
35
- expect(component.find(AddIcon)).toHaveLength(1);
36
- expect(component.find(RemoveIcon)).toHaveLength(1);
37
- var slider = component.find(Slider);
38
- expect(slider).toHaveLength(1);
39
- expect(slider.props()).toEqual({
40
- slots: { thumb: expect.any(Function) },
41
- classes: { root: 'sliderRoot', rail: 'rail' },
42
- slotProps: { thumb: { className: 'thumb' } },
43
- track: false,
44
- value: 100,
45
- min: 30,
46
- max: 300,
47
- onChange: expect.any(Function)
48
- });
71
+ setUp();
72
+ expect(screen.getByTestId('zoom-out-button')).toBeInTheDocument();
73
+ expect(screen.getByTestId('zoom-in-button')).toBeInTheDocument();
74
+ var slider = screen.getByRole('slider');
75
+ expect(slider).toHaveAttribute('value', '100');
76
+ expect(slider).toHaveAttribute('max', '300');
77
+ expect(slider).toHaveAttribute('min', '30');
78
+ expect(slider).toHaveAttribute('step', '1');
49
79
  });
50
80
  it('should call registerEvents and setSettings', function () {
51
81
  var setSettings = useSetSettings();
52
82
  var registerEvents = useRegisterEvents();
53
- mount(React.createElement(ZoomSlider, { className: "testClass", min: 50, max: 200 }));
83
+ var settingsProps = {
84
+ min: 50,
85
+ max: 200
86
+ };
87
+ setUp(__assign(__assign({}, defaultProps), settingsProps));
54
88
  expect(setSettings).toHaveBeenCalledWith({
55
89
  maxCameraRatio: 4,
56
90
  minCameraRatio: 0.25
@@ -59,20 +93,34 @@ describe('ZoomSlider tests', function () {
59
93
  updated: expect.any(Function)
60
94
  });
61
95
  });
62
- it('should call zoomOut on min button click', function () {
63
- var component = shallow(React.createElement(ZoomSlider, { className: "testClass", min: 30, max: 300 }));
64
- var zoomOut = useCamera().zoomOut;
65
- act(function () {
66
- component.find(IconButton).at(0).simulate('click');
96
+ it('should call zoomOut on min button click', function () { return __awaiter(void 0, void 0, void 0, function () {
97
+ var user, zoomOut;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ user = setUp().user;
102
+ zoomOut = useCamera().zoomOut;
103
+ return [4 /*yield*/, user.click(screen.getByTestId('zoom-out-button'))];
104
+ case 1:
105
+ _a.sent();
106
+ expect(zoomOut).toHaveBeenCalled();
107
+ return [2 /*return*/];
108
+ }
67
109
  });
68
- expect(zoomOut).toHaveBeenCalled();
69
- });
70
- it('should call zoomIn on max button click', function () {
71
- var component = shallow(React.createElement(ZoomSlider, { className: "testClass", min: 30, max: 300 }));
72
- var zoomIn = useCamera().zoomIn;
73
- act(function () {
74
- component.find(IconButton).at(1).simulate('click');
110
+ }); });
111
+ it('should call zoomIn on max button click', function () { return __awaiter(void 0, void 0, void 0, function () {
112
+ var user, zoomIn;
113
+ return __generator(this, function (_a) {
114
+ switch (_a.label) {
115
+ case 0:
116
+ user = setUp().user;
117
+ zoomIn = useCamera().zoomIn;
118
+ return [4 /*yield*/, user.click(screen.getByTestId('zoom-in-button'))];
119
+ case 1:
120
+ _a.sent();
121
+ expect(zoomIn).toHaveBeenCalled();
122
+ return [2 /*return*/];
123
+ }
75
124
  });
76
- expect(zoomIn).toHaveBeenCalled();
77
- });
125
+ }); });
78
126
  });