@reltio/components 1.4.2027 → 1.4.2028
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +0 -1
- package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +5 -14
- package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +11 -9
- package/cjs/features/graph/ZoomSlider/ZoomSlider.js +2 -2
- package/cjs/features/graph/ZoomSlider/ZoomSlider.test.js +85 -37
- package/cjs/features/history/DateRangeSelector/DateRangeSelector.specs.js +188 -117
- package/cjs/features/history/HistoryFilterButton/HistoryFilterButton.js +1 -1
- package/cjs/features/history/HistoryGraph/components/HistoryCircle/HistoryCircle.specs.js +38 -41
- package/cjs/features/history/HistoryGraph/components/HistoryLink/HistoryLink.specs.js +17 -16
- package/cjs/features/history/HistoryHeader/HistoryHeader.spec.js +21 -31
- package/cjs/features/history/HistoryPanelEmptyState/HistoryPanelEmptyState.specs.js +4 -9
- package/cjs/features/history/HistoryRow/HistoryRow.js +1 -1
- package/cjs/features/history/HistoryRow/HistoryRow.specs.js +74 -34
- package/cjs/features/history/HistoryTree/HistoryTree.js +1 -1
- package/cjs/features/history/HistoryView/HistoryView.specs.js +77 -43
- package/cjs/features/workflow/AddWorkflowButton/AddWorkflowButton.spec.js +83 -34
- package/cjs/features/workflow/AttributesChanges/AttributesChanges.js +1 -1
- package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
- package/cjs/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
- package/cjs/features/workflow/DueDateField/DueDateField.spec.js +51 -102
- package/cjs/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
- package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +438 -124
- package/cjs/features/workflow/hooks/useChangeRequest.specs.js +17 -27
- package/cjs/features/workflow/hooks/useWorkflowColor.specs.js +23 -47
- package/features/crosswalks/CrosswalkRow/DndCrosswalkRow.test.js +0 -1
- package/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +5 -14
- package/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +11 -9
- package/features/graph/ZoomSlider/ZoomSlider.js +2 -2
- package/features/graph/ZoomSlider/ZoomSlider.test.js +85 -37
- package/features/history/DateRangeSelector/DateRangeSelector.specs.js +188 -117
- package/features/history/HistoryFilterButton/HistoryFilterButton.js +1 -1
- package/features/history/HistoryGraph/components/HistoryCircle/HistoryCircle.specs.js +38 -41
- package/features/history/HistoryGraph/components/HistoryLink/HistoryLink.specs.js +17 -16
- package/features/history/HistoryHeader/HistoryHeader.spec.js +21 -31
- package/features/history/HistoryPanelEmptyState/HistoryPanelEmptyState.specs.js +4 -9
- package/features/history/HistoryRow/HistoryRow.js +1 -1
- package/features/history/HistoryRow/HistoryRow.specs.js +74 -34
- package/features/history/HistoryTree/HistoryTree.js +1 -1
- package/features/history/HistoryView/HistoryView.specs.js +77 -43
- package/features/workflow/AddWorkflowButton/AddWorkflowButton.spec.js +83 -34
- package/features/workflow/AttributesChanges/AttributesChanges.js +1 -1
- package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.js +1 -1
- package/features/workflow/AttributesChanges/components/ShowMoreLink/ShowMoreLink.spec.js +81 -24
- package/features/workflow/DueDateField/DueDateField.spec.js +51 -102
- package/features/workflow/PrioritySelector/PrioritySelector.spec.js +62 -133
- package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +439 -125
- package/features/workflow/hooks/useChangeRequest.specs.js +17 -24
- package/features/workflow/hooks/useWorkflowColor.specs.js +23 -44
- package/package.json +1 -1
- package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -249
- package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -44
- package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -38
- package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
- package/cjs/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.js +0 -218
- package/features/workflow/AttributesChanges/AttributesChanges.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/AttributesChanges.spec.js +0 -244
- package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/components/ChangeView/ChangeView.spec.js +0 -39
- package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/components/DCRChangesList/DCRChangesList.spec.js +0 -33
- package/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.d.ts +0 -1
- package/features/workflow/AttributesChanges/components/DiffRenderer/DiffRenderer.spec.js +0 -213
|
@@ -118,7 +118,6 @@ describe('CrosswalkRow dnd tests', function () {
|
|
|
118
118
|
return __generator(this, function (_a) {
|
|
119
119
|
onDragStart = jest.fn();
|
|
120
120
|
setUp(defaultProps, { onDragStart: onDragStart });
|
|
121
|
-
react_2.screen.debug(react_2.screen.getByText('Reltio'));
|
|
122
121
|
react_2.fireEvent.mouseDown(react_2.screen.getByText('Reltio'));
|
|
123
122
|
expect(onDragStart.mock.calls[0][0].active.data.current.crosswalk).toBe(defaultProps.crosswalk);
|
|
124
123
|
return [2 /*return*/];
|
|
@@ -4,23 +4,14 @@ 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 core_1 = require("@react-sigma/core");
|
|
9
|
-
var graphology_1 = require("graphology");
|
|
7
|
+
var react_2 = require("@testing-library/react");
|
|
10
8
|
var SigmaGraphContainer_1 = require("./SigmaGraphContainer");
|
|
11
|
-
var SigmaCustomRenderersContainer_1 = require("../SigmaCustomRenderersContainer");
|
|
12
9
|
var children = react_1.default.createElement("div", { className: "children" }, "children");
|
|
13
|
-
var setUp = function () { return (0,
|
|
10
|
+
var setUp = function () { return (0, react_2.render)(react_1.default.createElement(SigmaGraphContainer_1.SigmaGraphContainer, null, children)); };
|
|
14
11
|
describe('SigmaGraphContainer behavior', function () {
|
|
15
12
|
it('should render SigmaContainer with passed children', function () {
|
|
16
|
-
var
|
|
17
|
-
expect(
|
|
18
|
-
expect(
|
|
19
|
-
expect(component.find(core_1.SigmaContainer).find(SigmaCustomRenderersContainer_1.SigmaCustomRenderersContainer).find('.children')).toHaveLength(1);
|
|
20
|
-
});
|
|
21
|
-
it('should render SigmaContainer with initialSettings', function () {
|
|
22
|
-
var component = setUp();
|
|
23
|
-
expect(component.find(core_1.SigmaContainer)).toHaveLength(1);
|
|
24
|
-
expect(component.find(core_1.SigmaContainer).prop('settings')).not.toBeUndefined();
|
|
13
|
+
var container = setUp().container;
|
|
14
|
+
expect(container.querySelector('.sigma-container')).toBeInTheDocument();
|
|
15
|
+
expect(react_2.screen.getByText('children')).toBeInTheDocument();
|
|
25
16
|
});
|
|
26
17
|
});
|
|
@@ -15,23 +15,25 @@ 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
|
|
19
|
-
var
|
|
18
|
+
var react_2 = require("@testing-library/react");
|
|
19
|
+
var jsdom_testing_mocks_1 = require("jsdom-testing-mocks");
|
|
20
20
|
var core_1 = require("@react-sigma/core");
|
|
21
21
|
var SigmaGraphResizer_1 = require("./SigmaGraphResizer");
|
|
22
22
|
jest.mock('@react-sigma/core', function () { return (__assign(__assign({}, jest.requireActual('@react-sigma/core')), { useSigma: jest.fn().mockReturnValue({
|
|
23
23
|
refresh: jest.fn()
|
|
24
24
|
}) })); });
|
|
25
|
-
var setUp = function () { return (0,
|
|
25
|
+
var setUp = function () { return (0, react_2.render)(react_1.default.createElement(SigmaGraphResizer_1.SigmaGraphResizer, null)); };
|
|
26
|
+
var resizeObserver = (0, jsdom_testing_mocks_1.mockResizeObserver)();
|
|
26
27
|
describe('SigmaGraphResizer behavior', function () {
|
|
27
|
-
it('should render ReactResizeDetector', function () {
|
|
28
|
-
var component = setUp();
|
|
29
|
-
expect(component.find(react_resize_detector_1.default)).toHaveLength(1);
|
|
30
|
-
});
|
|
31
28
|
it('should refresh sigma instance on resize', function () {
|
|
32
|
-
var
|
|
29
|
+
var container = setUp().container;
|
|
33
30
|
expect((0, core_1.useSigma)().refresh).not.toHaveBeenCalled();
|
|
34
|
-
|
|
31
|
+
resizeObserver.mockElementSize(container, {
|
|
32
|
+
contentBoxSize: { inlineSize: 100, blockSize: 100 }
|
|
33
|
+
});
|
|
34
|
+
(0, react_2.act)(function () {
|
|
35
|
+
resizeObserver.resize();
|
|
36
|
+
});
|
|
35
37
|
expect((0, core_1.useSigma)().refresh).toHaveBeenCalled();
|
|
36
38
|
});
|
|
37
39
|
});
|
|
@@ -98,7 +98,7 @@ var ZoomSlider = function (_a) {
|
|
|
98
98
|
return camera.setState({ ratio: camera.getBoundedRatio(percentsToRatio(newValue)) });
|
|
99
99
|
};
|
|
100
100
|
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.container, className) },
|
|
101
|
-
react_1.default.createElement(IconButton_1.default, { className: styles.minButton, onClick: function () { return zoomOut(); }, size: "large" },
|
|
101
|
+
react_1.default.createElement(IconButton_1.default, { "data-reltio-id": "zoom-out-button", className: styles.minButton, onClick: function () { return zoomOut(); }, size: "large" },
|
|
102
102
|
react_1.default.createElement(Remove_1.default, { className: styles.icon })),
|
|
103
103
|
react_1.default.createElement(Slider_1.default, { slots: {
|
|
104
104
|
thumb: ZoomSliderThumb
|
|
@@ -107,7 +107,7 @@ var ZoomSlider = function (_a) {
|
|
|
107
107
|
className: styles.thumb
|
|
108
108
|
}
|
|
109
109
|
}, classes: { root: styles.sliderRoot, rail: styles.rail }, track: false, value: value, min: min, max: max, onChange: handleChange }),
|
|
110
|
-
react_1.default.createElement(IconButton_1.default, { className: styles.maxButton, onClick: function () { return zoomIn(); }, size: "large" },
|
|
110
|
+
react_1.default.createElement(IconButton_1.default, { "data-reltio-id": "zoom-in-button", className: styles.maxButton, onClick: function () { return zoomIn(); }, size: "large" },
|
|
111
111
|
react_1.default.createElement(Add_1.default, { className: styles.icon }))));
|
|
112
112
|
};
|
|
113
113
|
exports.ZoomSlider = ZoomSlider;
|
|
@@ -10,19 +10,51 @@ 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
|
-
var
|
|
19
|
-
var
|
|
54
|
+
var user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
55
|
+
var react_2 = require("@testing-library/react");
|
|
20
56
|
var core_1 = require("@react-sigma/core");
|
|
21
57
|
var ZoomSlider_1 = require("./ZoomSlider");
|
|
22
|
-
var IconButton_1 = __importDefault(require("@mui/material/IconButton"));
|
|
23
|
-
var Add_1 = __importDefault(require("@mui/icons-material/Add"));
|
|
24
|
-
var Remove_1 = __importDefault(require("@mui/icons-material/Remove"));
|
|
25
|
-
var Slider_1 = __importDefault(require("@mui/material/Slider"));
|
|
26
58
|
jest.mock('@react-sigma/core', function () { return (__assign(__assign({}, jest.requireActual('@react-sigma/core')), { useCamera: jest.fn().mockReturnValue({
|
|
27
59
|
zoomOut: jest.fn(),
|
|
28
60
|
zoomIn: jest.fn()
|
|
@@ -34,28 +66,30 @@ jest.mock('@react-sigma/core', function () { return (__assign(__assign({}, jest.
|
|
|
34
66
|
}); }
|
|
35
67
|
}), useSetSettings: jest.fn().mockReturnValue(jest.fn()), useRegisterEvents: jest.fn().mockReturnValue(jest.fn()) })); });
|
|
36
68
|
describe('ZoomSlider tests', function () {
|
|
69
|
+
var defaultProps = { className: 'testClass', min: 30, max: 300 };
|
|
70
|
+
var setUp = function (props) {
|
|
71
|
+
if (props === void 0) { props = defaultProps; }
|
|
72
|
+
var user = user_event_1.default.setup();
|
|
73
|
+
return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(ZoomSlider_1.ZoomSlider, __assign({}, props)))), { user: user });
|
|
74
|
+
};
|
|
37
75
|
it('should render main parts', function () {
|
|
38
|
-
|
|
39
|
-
expect(
|
|
40
|
-
expect(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
expect(slider).
|
|
44
|
-
expect(slider.
|
|
45
|
-
|
|
46
|
-
classes: { root: 'sliderRoot', rail: 'rail' },
|
|
47
|
-
slotProps: { thumb: { className: 'thumb' } },
|
|
48
|
-
track: false,
|
|
49
|
-
value: 100,
|
|
50
|
-
min: 30,
|
|
51
|
-
max: 300,
|
|
52
|
-
onChange: expect.any(Function)
|
|
53
|
-
});
|
|
76
|
+
setUp();
|
|
77
|
+
expect(react_2.screen.getByTestId('zoom-out-button')).toBeInTheDocument();
|
|
78
|
+
expect(react_2.screen.getByTestId('zoom-in-button')).toBeInTheDocument();
|
|
79
|
+
var slider = react_2.screen.getByRole('slider');
|
|
80
|
+
expect(slider).toHaveAttribute('value', '100');
|
|
81
|
+
expect(slider).toHaveAttribute('max', '300');
|
|
82
|
+
expect(slider).toHaveAttribute('min', '30');
|
|
83
|
+
expect(slider).toHaveAttribute('step', '1');
|
|
54
84
|
});
|
|
55
85
|
it('should call registerEvents and setSettings', function () {
|
|
56
86
|
var setSettings = (0, core_1.useSetSettings)();
|
|
57
87
|
var registerEvents = (0, core_1.useRegisterEvents)();
|
|
58
|
-
|
|
88
|
+
var settingsProps = {
|
|
89
|
+
min: 50,
|
|
90
|
+
max: 200
|
|
91
|
+
};
|
|
92
|
+
setUp(__assign(__assign({}, defaultProps), settingsProps));
|
|
59
93
|
expect(setSettings).toHaveBeenCalledWith({
|
|
60
94
|
maxCameraRatio: 4,
|
|
61
95
|
minCameraRatio: 0.25
|
|
@@ -64,20 +98,34 @@ describe('ZoomSlider tests', function () {
|
|
|
64
98
|
updated: expect.any(Function)
|
|
65
99
|
});
|
|
66
100
|
});
|
|
67
|
-
it('should call zoomOut on min button click', function () {
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
101
|
+
it('should call zoomOut on min button click', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
102
|
+
var user, zoomOut;
|
|
103
|
+
return __generator(this, function (_a) {
|
|
104
|
+
switch (_a.label) {
|
|
105
|
+
case 0:
|
|
106
|
+
user = setUp().user;
|
|
107
|
+
zoomOut = (0, core_1.useCamera)().zoomOut;
|
|
108
|
+
return [4 /*yield*/, user.click(react_2.screen.getByTestId('zoom-out-button'))];
|
|
109
|
+
case 1:
|
|
110
|
+
_a.sent();
|
|
111
|
+
expect(zoomOut).toHaveBeenCalled();
|
|
112
|
+
return [2 /*return*/];
|
|
113
|
+
}
|
|
72
114
|
});
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
115
|
+
}); });
|
|
116
|
+
it('should call zoomIn on max button click', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
117
|
+
var user, zoomIn;
|
|
118
|
+
return __generator(this, function (_a) {
|
|
119
|
+
switch (_a.label) {
|
|
120
|
+
case 0:
|
|
121
|
+
user = setUp().user;
|
|
122
|
+
zoomIn = (0, core_1.useCamera)().zoomIn;
|
|
123
|
+
return [4 /*yield*/, user.click(react_2.screen.getByTestId('zoom-in-button'))];
|
|
124
|
+
case 1:
|
|
125
|
+
_a.sent();
|
|
126
|
+
expect(zoomIn).toHaveBeenCalled();
|
|
127
|
+
return [2 /*return*/];
|
|
128
|
+
}
|
|
80
129
|
});
|
|
81
|
-
|
|
82
|
-
});
|
|
130
|
+
}); });
|
|
83
131
|
});
|
|
@@ -10,18 +10,52 @@ 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
|
-
var
|
|
19
|
-
var
|
|
54
|
+
var react_2 = require("@testing-library/react");
|
|
55
|
+
var user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
56
|
+
var LocalizationProvider_1 = require("@mui/x-date-pickers/LocalizationProvider");
|
|
57
|
+
var AdapterMoment_1 = require("@mui/x-date-pickers/AdapterMoment");
|
|
20
58
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
21
|
-
var Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
22
|
-
var DateIntervalSelector_1 = require("../../../DateIntervalSelector");
|
|
23
|
-
var CustomDateRangeEditor_1 = require("../../../CustomDateRangeEditor");
|
|
24
|
-
var SimpleDropDownSelector_1 = require("../../../SimpleDropDownSelector");
|
|
25
59
|
var DateRangeSelector_1 = require("./DateRangeSelector");
|
|
26
60
|
describe('DateRangeSelector tests', function () {
|
|
27
61
|
var withinValue = {
|
|
@@ -30,136 +64,173 @@ describe('DateRangeSelector tests', function () {
|
|
|
30
64
|
};
|
|
31
65
|
var agoValue = {
|
|
32
66
|
type: mdm_sdk_1.DateRangeTypes.AGO,
|
|
33
|
-
period: [4, '
|
|
67
|
+
period: [4, 'months']
|
|
34
68
|
};
|
|
35
69
|
var betweenValue = {
|
|
36
70
|
type: mdm_sdk_1.DateRangeTypes.BETWEEN,
|
|
37
|
-
period: [new Date(
|
|
71
|
+
period: [new Date('01/01/2023'), new Date('01/01/2024')]
|
|
38
72
|
};
|
|
39
73
|
var defaultProps = {
|
|
40
74
|
onChange: jest.fn(),
|
|
41
|
-
className: 'someclass'
|
|
75
|
+
className: 'someclass',
|
|
76
|
+
value: withinValue
|
|
77
|
+
};
|
|
78
|
+
var setUp = function (props) {
|
|
79
|
+
if (props === void 0) { props = defaultProps; }
|
|
80
|
+
var user = user_event_1.default.setup();
|
|
81
|
+
var Providers = function (_a) {
|
|
82
|
+
var children = _a.children;
|
|
83
|
+
return react_1.default.createElement(LocalizationProvider_1.LocalizationProvider, { dateAdapter: AdapterMoment_1.AdapterMoment }, children);
|
|
84
|
+
};
|
|
85
|
+
return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(DateRangeSelector_1.DateRangeSelector, __assign({}, props)), { wrapper: Providers })), { user: user });
|
|
42
86
|
};
|
|
43
|
-
var options = [
|
|
44
|
-
{ value: mdm_sdk_1.DateRangeTypes.WITHIN, label: 'Within the last' },
|
|
45
|
-
{ value: mdm_sdk_1.DateRangeTypes.AGO, label: 'More than' },
|
|
46
|
-
{ value: mdm_sdk_1.DateRangeTypes.BETWEEN, label: 'Date range' }
|
|
47
|
-
];
|
|
48
|
-
afterEach(function () {
|
|
49
|
-
jest.clearAllMocks();
|
|
50
|
-
});
|
|
51
87
|
it('should render correct default state if props.value type is DateRangeTypes.WITHIN', function () {
|
|
52
|
-
|
|
53
|
-
expect(
|
|
54
|
-
|
|
55
|
-
expect(
|
|
56
|
-
expect(
|
|
57
|
-
value: {
|
|
58
|
-
value: options[0].value,
|
|
59
|
-
label: options[0].label
|
|
60
|
-
},
|
|
61
|
-
options: options
|
|
62
|
-
});
|
|
63
|
-
expect(wrapper.find(DateIntervalSelector_1.DateIntervalSelector).prop('interval')).toEqual(withinValue.period);
|
|
64
|
-
expect(wrapper.find(CustomDateRangeEditor_1.CustomDateRangeEditor).length).toBe(0);
|
|
88
|
+
setUp();
|
|
89
|
+
expect(react_2.screen.getByText('Date')).toBeInTheDocument();
|
|
90
|
+
expect(react_2.screen.getByText('Within the last')).toBeInTheDocument();
|
|
91
|
+
expect(react_2.screen.getByText('Days')).toBeInTheDocument();
|
|
92
|
+
expect(react_2.screen.getByDisplayValue('5')).toBeInTheDocument();
|
|
65
93
|
});
|
|
66
94
|
it('should render correct default state if props.value type is DateRangeTypes.AGO', function () {
|
|
67
|
-
|
|
68
|
-
expect(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
expect(wrapper.find(DateIntervalSelector_1.DateIntervalSelector).prop('interval')).toEqual(agoValue.period);
|
|
73
|
-
expect(wrapper.find(CustomDateRangeEditor_1.CustomDateRangeEditor).length).toBe(0);
|
|
95
|
+
setUp(__assign(__assign({}, defaultProps), { value: agoValue }));
|
|
96
|
+
expect(react_2.screen.getByText('Date')).toBeInTheDocument();
|
|
97
|
+
expect(react_2.screen.getByText('More than')).toBeInTheDocument();
|
|
98
|
+
expect(react_2.screen.getByText('Months')).toBeInTheDocument();
|
|
99
|
+
expect(react_2.screen.getByDisplayValue('4')).toBeInTheDocument();
|
|
74
100
|
});
|
|
75
101
|
it('should render correct default state if props.value type is DateRangeTypes.BETWEEN', function () {
|
|
76
|
-
|
|
77
|
-
expect(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
});
|
|
81
|
-
expect(wrapper.find(CustomDateRangeEditor_1.CustomDateRangeEditor).prop('values')).toEqual(betweenValue.period);
|
|
82
|
-
expect(wrapper.find(DateIntervalSelector_1.DateIntervalSelector).length).toBe(0);
|
|
102
|
+
setUp(__assign(__assign({}, defaultProps), { value: betweenValue }));
|
|
103
|
+
expect(react_2.screen.getByText('Date')).toBeInTheDocument();
|
|
104
|
+
expect(react_2.screen.getByText('Date range')).toBeInTheDocument();
|
|
105
|
+
expect(react_2.screen.getByDisplayValue('01/01/2023 — 01/01/2024')).toBeInTheDocument();
|
|
83
106
|
});
|
|
84
107
|
it('should render proper default value if props.value is null', function () {
|
|
85
|
-
|
|
86
|
-
expect(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
});
|
|
90
|
-
expect(wrapper.find(DateIntervalSelector_1.DateIntervalSelector).prop('interval')).toEqual([null, 'hours']);
|
|
91
|
-
expect(wrapper.find(CustomDateRangeEditor_1.CustomDateRangeEditor).length).toBe(0);
|
|
108
|
+
setUp(__assign(__assign({}, defaultProps), { value: null }));
|
|
109
|
+
expect(react_2.screen.getByText('Date')).toBeInTheDocument();
|
|
110
|
+
expect(react_2.screen.getByText('Within the last')).toBeInTheDocument();
|
|
111
|
+
expect(react_2.screen.getByText('Hours')).toBeInTheDocument();
|
|
92
112
|
});
|
|
93
|
-
it('should call props.onChange with proper parameters when type is changed to ago', function () {
|
|
94
|
-
var
|
|
95
|
-
(
|
|
96
|
-
|
|
113
|
+
it('should call props.onChange with proper parameters when type is changed to ago', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
114
|
+
var user, newValue;
|
|
115
|
+
return __generator(this, function (_a) {
|
|
116
|
+
switch (_a.label) {
|
|
117
|
+
case 0:
|
|
118
|
+
user = setUp().user;
|
|
119
|
+
return [4 /*yield*/, user.click(react_2.screen.getByText('Within the last'))];
|
|
120
|
+
case 1:
|
|
121
|
+
_a.sent();
|
|
122
|
+
return [4 /*yield*/, user.click(react_2.screen.getByText('More than'))];
|
|
123
|
+
case 2:
|
|
124
|
+
_a.sent();
|
|
125
|
+
newValue = {
|
|
126
|
+
type: mdm_sdk_1.DateRangeTypes.AGO,
|
|
127
|
+
period: [5, 'days']
|
|
128
|
+
};
|
|
129
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith(newValue);
|
|
130
|
+
return [2 /*return*/];
|
|
131
|
+
}
|
|
97
132
|
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
133
|
+
}); });
|
|
134
|
+
it('should call props.onChange with proper parameters when type is changed to within', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
135
|
+
var user, newValue;
|
|
136
|
+
return __generator(this, function (_a) {
|
|
137
|
+
switch (_a.label) {
|
|
138
|
+
case 0:
|
|
139
|
+
user = setUp(__assign(__assign({}, defaultProps), { value: betweenValue })).user;
|
|
140
|
+
return [4 /*yield*/, user.click(react_2.screen.getByText('Date range'))];
|
|
141
|
+
case 1:
|
|
142
|
+
_a.sent();
|
|
143
|
+
return [4 /*yield*/, user.click(react_2.screen.getByText('Within the last'))];
|
|
144
|
+
case 2:
|
|
145
|
+
_a.sent();
|
|
146
|
+
newValue = {
|
|
147
|
+
type: mdm_sdk_1.DateRangeTypes.WITHIN,
|
|
148
|
+
period: [null, 'hours']
|
|
149
|
+
};
|
|
150
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith(newValue);
|
|
151
|
+
return [2 /*return*/];
|
|
152
|
+
}
|
|
109
153
|
});
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
154
|
+
}); });
|
|
155
|
+
it('should call props.onChange with proper parameters when type is changed to between', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
156
|
+
var user, newValue;
|
|
157
|
+
return __generator(this, function (_a) {
|
|
158
|
+
switch (_a.label) {
|
|
159
|
+
case 0:
|
|
160
|
+
user = setUp().user;
|
|
161
|
+
return [4 /*yield*/, user.click(react_2.screen.getByText('Within the last'))];
|
|
162
|
+
case 1:
|
|
163
|
+
_a.sent();
|
|
164
|
+
return [4 /*yield*/, user.click(react_2.screen.getByText('Date range'))];
|
|
165
|
+
case 2:
|
|
166
|
+
_a.sent();
|
|
167
|
+
newValue = {
|
|
168
|
+
type: mdm_sdk_1.DateRangeTypes.BETWEEN,
|
|
169
|
+
period: [null, null]
|
|
170
|
+
};
|
|
171
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith(newValue);
|
|
172
|
+
return [2 /*return*/];
|
|
173
|
+
}
|
|
121
174
|
});
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
175
|
+
}); });
|
|
176
|
+
it('should call props.onChange when within period is changed', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
177
|
+
var user, newValue;
|
|
178
|
+
return __generator(this, function (_a) {
|
|
179
|
+
switch (_a.label) {
|
|
180
|
+
case 0:
|
|
181
|
+
user = setUp().user;
|
|
182
|
+
return [4 /*yield*/, user.type(react_2.screen.getByDisplayValue('5'), '1')];
|
|
183
|
+
case 1:
|
|
184
|
+
_a.sent();
|
|
185
|
+
newValue = {
|
|
186
|
+
type: mdm_sdk_1.DateRangeTypes.WITHIN,
|
|
187
|
+
period: [51, 'days']
|
|
188
|
+
};
|
|
189
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith(newValue);
|
|
190
|
+
return [2 /*return*/];
|
|
191
|
+
}
|
|
133
192
|
});
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
193
|
+
}); });
|
|
194
|
+
it('should call props.onChange when ago period is changed', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
195
|
+
var user, newValue;
|
|
196
|
+
return __generator(this, function (_a) {
|
|
197
|
+
switch (_a.label) {
|
|
198
|
+
case 0:
|
|
199
|
+
user = setUp(__assign(__assign({}, defaultProps), { value: agoValue })).user;
|
|
200
|
+
return [4 /*yield*/, user.type(react_2.screen.getByDisplayValue('4'), '1')];
|
|
201
|
+
case 1:
|
|
202
|
+
_a.sent();
|
|
203
|
+
newValue = {
|
|
204
|
+
type: mdm_sdk_1.DateRangeTypes.AGO,
|
|
205
|
+
period: [41, 'months']
|
|
206
|
+
};
|
|
207
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith(newValue);
|
|
208
|
+
return [2 /*return*/];
|
|
209
|
+
}
|
|
145
210
|
});
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
211
|
+
}); });
|
|
212
|
+
it('should call props.onChange when between period is changed', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
213
|
+
var user, newValue;
|
|
214
|
+
return __generator(this, function (_a) {
|
|
215
|
+
switch (_a.label) {
|
|
216
|
+
case 0:
|
|
217
|
+
user = setUp(__assign(__assign({}, defaultProps), { value: betweenValue })).user;
|
|
218
|
+
return [4 /*yield*/, user.click(react_2.screen.getByDisplayValue('01/01/2023 — 01/01/2024'))];
|
|
219
|
+
case 1:
|
|
220
|
+
_a.sent();
|
|
221
|
+
return [4 /*yield*/, user.type(react_2.screen.getByDisplayValue('01/01/2023'), '01/01/2022')];
|
|
222
|
+
case 2:
|
|
223
|
+
_a.sent();
|
|
224
|
+
return [4 /*yield*/, user.click(react_2.screen.getByText('Update'))];
|
|
225
|
+
case 3:
|
|
226
|
+
_a.sent();
|
|
227
|
+
newValue = {
|
|
228
|
+
type: mdm_sdk_1.DateRangeTypes.BETWEEN,
|
|
229
|
+
period: [new Date('01/01/2022'), new Date('01/01/2024')]
|
|
230
|
+
};
|
|
231
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith(newValue);
|
|
232
|
+
return [2 /*return*/];
|
|
233
|
+
}
|
|
157
234
|
});
|
|
158
|
-
|
|
159
|
-
var newValue = {
|
|
160
|
-
type: mdm_sdk_1.DateRangeTypes.BETWEEN,
|
|
161
|
-
period: [new Date(234), new Date(567)]
|
|
162
|
-
};
|
|
163
|
-
expect(defaultProps.onChange).toHaveBeenCalledWith(newValue);
|
|
164
|
-
});
|
|
235
|
+
}); });
|
|
165
236
|
});
|
|
@@ -92,7 +92,7 @@ var HistoryFilterButton = function (_a) {
|
|
|
92
92
|
setCurrentValue(__assign({}, constants_1.DEFAULT_HISTORY_FILTER));
|
|
93
93
|
}, []);
|
|
94
94
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
95
|
-
react_1.default.createElement(SmallIconButton_1.SmallIconButton, { ref: buttonRef, color: buttonColor, icon: FilterList_1.default, size: "L", onClick: togglePopup, className: className }),
|
|
95
|
+
react_1.default.createElement(SmallIconButton_1.SmallIconButton, { ref: buttonRef, color: buttonColor, icon: FilterList_1.default, size: "L", onClick: togglePopup, className: className, "data-reltio-id": "history-filter-button" }),
|
|
96
96
|
react_1.default.createElement(Popover_1.default, { classes: { paper: styles.popup }, open: isOpen, anchorEl: buttonRef.current, onClose: togglePopup, anchorOrigin: {
|
|
97
97
|
vertical: 'bottom',
|
|
98
98
|
horizontal: 'right'
|