@pie-lib/charting 7.0.13 → 7.1.0-beta
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/CHANGELOG.md +0 -44
- package/lib/__tests__/actions-button.test.js +332 -0
- package/lib/__tests__/actions-button.test.js.map +1 -0
- package/lib/__tests__/axes.test.js +746 -0
- package/lib/__tests__/axes.test.js.map +1 -0
- package/lib/__tests__/chart-setup.test.js +796 -0
- package/lib/__tests__/chart-setup.test.js.map +1 -0
- package/lib/__tests__/chart-type.test.js +25 -0
- package/lib/__tests__/chart-type.test.js.map +1 -0
- package/lib/__tests__/chart.test.js +103 -0
- package/lib/__tests__/chart.test.js.map +1 -0
- package/lib/__tests__/grid.test.js +39 -0
- package/lib/__tests__/grid.test.js.map +1 -0
- package/lib/__tests__/key-legend.test.js +235 -0
- package/lib/__tests__/key-legend.test.js.map +1 -0
- package/lib/__tests__/mark-label.test.js +46 -0
- package/lib/__tests__/mark-label.test.js.map +1 -0
- package/lib/__tests__/tool-menu.test.js +627 -0
- package/lib/__tests__/tool-menu.test.js.map +1 -0
- package/lib/__tests__/utils.js +56 -0
- package/lib/__tests__/utils.js.map +1 -0
- package/lib/__tests__/utils.test.js +186 -0
- package/lib/__tests__/utils.test.js.map +1 -0
- package/lib/bars/__tests__/bar.test.js +53 -0
- package/lib/bars/__tests__/bar.test.js.map +1 -0
- package/lib/bars/__tests__/histogram.test.js +53 -0
- package/lib/bars/__tests__/histogram.test.js.map +1 -0
- package/lib/bars/__tests__/utils.js +50 -0
- package/lib/bars/__tests__/utils.js.map +1 -0
- package/lib/bars/common/__tests__/bars.test.js +76 -0
- package/lib/bars/common/__tests__/bars.test.js.map +1 -0
- package/lib/bars/common/__tests__/utils.js +50 -0
- package/lib/bars/common/__tests__/utils.js.map +1 -0
- package/lib/common/__tests__/correctness-indicators.test.js +887 -0
- package/lib/common/__tests__/correctness-indicators.test.js.map +1 -0
- package/lib/common/__tests__/drag-handle.test.js +73 -0
- package/lib/common/__tests__/drag-handle.test.js.map +1 -0
- package/lib/common/__tests__/utils.js +50 -0
- package/lib/common/__tests__/utils.js.map +1 -0
- package/lib/line/__tests__/line-cross.test.js +617 -0
- package/lib/line/__tests__/line-cross.test.js.map +1 -0
- package/lib/line/__tests__/line-dot.test.js +47 -0
- package/lib/line/__tests__/line-dot.test.js.map +1 -0
- package/lib/line/__tests__/utils.js +56 -0
- package/lib/line/__tests__/utils.js.map +1 -0
- package/lib/line/common/__tests__/drag-handle.test.js +73 -0
- package/lib/line/common/__tests__/drag-handle.test.js.map +1 -0
- package/lib/line/common/__tests__/line.test.js +92 -0
- package/lib/line/common/__tests__/line.test.js.map +1 -0
- package/lib/line/common/__tests__/utils.js +50 -0
- package/lib/line/common/__tests__/utils.js.map +1 -0
- package/lib/plot/__tests__/dot.test.js +513 -0
- package/lib/plot/__tests__/dot.test.js.map +1 -0
- package/lib/plot/__tests__/line.test.js +566 -0
- package/lib/plot/__tests__/line.test.js.map +1 -0
- package/lib/plot/__tests__/utils.js +50 -0
- package/lib/plot/__tests__/utils.js.map +1 -0
- package/lib/plot/common/__tests__/plot.test.js +79 -0
- package/lib/plot/common/__tests__/plot.test.js.map +1 -0
- package/lib/plot/common/__tests__/utils.js +50 -0
- package/lib/plot/common/__tests__/utils.js.map +1 -0
- package/package.json +5 -5
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
10
|
+
var _styles = require("@mui/material/styles");
|
|
11
|
+
var _line = _interopRequireWildcard(require("../line"));
|
|
12
|
+
var _utils = require("./utils");
|
|
13
|
+
var _excluded = ["data", "x", "y"];
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
+
jest.mock('@mui/icons-material/Check', function () {
|
|
18
|
+
return function Check(props) {
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
|
|
20
|
+
"data-testid": "check-icon"
|
|
21
|
+
}, props));
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
jest.mock('@visx/shape', function () {
|
|
25
|
+
return {
|
|
26
|
+
LinePath: function LinePath(_ref) {
|
|
27
|
+
var data = _ref.data,
|
|
28
|
+
x = _ref.x,
|
|
29
|
+
y = _ref.y,
|
|
30
|
+
rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
31
|
+
return /*#__PURE__*/_react["default"].createElement("path", (0, _extends2["default"])({
|
|
32
|
+
d: data.map(function (d, i) {
|
|
33
|
+
return "".concat(i === 0 ? 'M' : 'L').concat(x(d), ",").concat(y(d));
|
|
34
|
+
}).join(' ')
|
|
35
|
+
}, rest));
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
jest.mock('@visx/group', function () {
|
|
40
|
+
return {
|
|
41
|
+
Group: function Group(_ref2) {
|
|
42
|
+
var children = _ref2.children;
|
|
43
|
+
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
44
|
+
className: "visx-group"
|
|
45
|
+
}, children);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
var theme;
|
|
50
|
+
beforeAll(function () {
|
|
51
|
+
theme = (0, _styles.createTheme)();
|
|
52
|
+
});
|
|
53
|
+
describe('LinePlot', function () {
|
|
54
|
+
var renderComponent = function renderComponent(extras) {
|
|
55
|
+
var defaults = {
|
|
56
|
+
classes: {},
|
|
57
|
+
className: 'className',
|
|
58
|
+
graphProps: (0, _utils.graphProps)(),
|
|
59
|
+
xBand: function xBand() {
|
|
60
|
+
return {
|
|
61
|
+
bandwidth: function bandwidth() {}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
66
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_styles.ThemeProvider, {
|
|
67
|
+
theme: theme
|
|
68
|
+
}, /*#__PURE__*/_react["default"].createElement("svg", null, /*#__PURE__*/_react["default"].createElement(_line.LinePlot, props))));
|
|
69
|
+
};
|
|
70
|
+
describe('rendering', function () {
|
|
71
|
+
it('renders line plot', function () {
|
|
72
|
+
var _renderComponent = renderComponent(),
|
|
73
|
+
container = _renderComponent.container;
|
|
74
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
75
|
+
});
|
|
76
|
+
it('renders without graphProps', function () {
|
|
77
|
+
var _renderComponent2 = renderComponent({
|
|
78
|
+
graphProps: undefined
|
|
79
|
+
}),
|
|
80
|
+
container = _renderComponent2.container;
|
|
81
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
82
|
+
});
|
|
83
|
+
it('renders with data array', function () {
|
|
84
|
+
var data = [{
|
|
85
|
+
value: 1,
|
|
86
|
+
label: 'A'
|
|
87
|
+
}, {
|
|
88
|
+
value: 2,
|
|
89
|
+
label: 'B'
|
|
90
|
+
}, {
|
|
91
|
+
value: 3,
|
|
92
|
+
label: 'C'
|
|
93
|
+
}];
|
|
94
|
+
var _renderComponent3 = renderComponent({
|
|
95
|
+
data: data
|
|
96
|
+
}),
|
|
97
|
+
container = _renderComponent3.container;
|
|
98
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
99
|
+
});
|
|
100
|
+
it('renders with empty data array', function () {
|
|
101
|
+
var _renderComponent4 = renderComponent({
|
|
102
|
+
data: []
|
|
103
|
+
}),
|
|
104
|
+
container = _renderComponent4.container;
|
|
105
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
106
|
+
});
|
|
107
|
+
it('renders with null data', function () {
|
|
108
|
+
var _renderComponent5 = renderComponent({
|
|
109
|
+
data: null
|
|
110
|
+
}),
|
|
111
|
+
container = _renderComponent5.container;
|
|
112
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
113
|
+
});
|
|
114
|
+
it('renders with undefined data', function () {
|
|
115
|
+
var _renderComponent6 = renderComponent({
|
|
116
|
+
data: undefined
|
|
117
|
+
}),
|
|
118
|
+
container = _renderComponent6.container;
|
|
119
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
it('renders with custom className', function () {
|
|
122
|
+
var _renderComponent7 = renderComponent({
|
|
123
|
+
className: 'custom-line-plot'
|
|
124
|
+
}),
|
|
125
|
+
container = _renderComponent7.container;
|
|
126
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
127
|
+
});
|
|
128
|
+
it('renders with onChange handler', function () {
|
|
129
|
+
var onChange = jest.fn();
|
|
130
|
+
var _renderComponent8 = renderComponent({
|
|
131
|
+
onChange: onChange
|
|
132
|
+
}),
|
|
133
|
+
container = _renderComponent8.container;
|
|
134
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
135
|
+
});
|
|
136
|
+
it('renders in defineChart mode', function () {
|
|
137
|
+
var _renderComponent9 = renderComponent({
|
|
138
|
+
defineChart: true
|
|
139
|
+
}),
|
|
140
|
+
container = _renderComponent9.container;
|
|
141
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
142
|
+
});
|
|
143
|
+
it('renders with correctData', function () {
|
|
144
|
+
var data = [{
|
|
145
|
+
value: 2,
|
|
146
|
+
label: 'A'
|
|
147
|
+
}];
|
|
148
|
+
var correctData = [{
|
|
149
|
+
value: 3,
|
|
150
|
+
label: 'A'
|
|
151
|
+
}];
|
|
152
|
+
var _renderComponent0 = renderComponent({
|
|
153
|
+
data: data,
|
|
154
|
+
correctData: correctData
|
|
155
|
+
}),
|
|
156
|
+
container = _renderComponent0.container;
|
|
157
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
describe('graphProps handling', function () {
|
|
161
|
+
it('handles graphProps with missing scale', function () {
|
|
162
|
+
var props = (0, _utils.graphProps)();
|
|
163
|
+
delete props.scale;
|
|
164
|
+
var _renderComponent1 = renderComponent({
|
|
165
|
+
graphProps: props
|
|
166
|
+
}),
|
|
167
|
+
container = _renderComponent1.container;
|
|
168
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
169
|
+
});
|
|
170
|
+
it('handles graphProps with missing size', function () {
|
|
171
|
+
var props = (0, _utils.graphProps)();
|
|
172
|
+
delete props.size;
|
|
173
|
+
var _renderComponent10 = renderComponent({
|
|
174
|
+
graphProps: props
|
|
175
|
+
}),
|
|
176
|
+
container = _renderComponent10.container;
|
|
177
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
178
|
+
});
|
|
179
|
+
it('handles graphProps with empty scale object', function () {
|
|
180
|
+
var props = (0, _utils.graphProps)();
|
|
181
|
+
props.scale = {};
|
|
182
|
+
var _renderComponent11 = renderComponent({
|
|
183
|
+
graphProps: props
|
|
184
|
+
}),
|
|
185
|
+
container = _renderComponent11.container;
|
|
186
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
187
|
+
});
|
|
188
|
+
it('handles graphProps with empty size object', function () {
|
|
189
|
+
var props = (0, _utils.graphProps)();
|
|
190
|
+
props.size = {};
|
|
191
|
+
var _renderComponent12 = renderComponent({
|
|
192
|
+
graphProps: props
|
|
193
|
+
}),
|
|
194
|
+
container = _renderComponent12.container;
|
|
195
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe('data variations', function () {
|
|
199
|
+
it('renders with single data point', function () {
|
|
200
|
+
var data = [{
|
|
201
|
+
value: 1,
|
|
202
|
+
label: 'A'
|
|
203
|
+
}];
|
|
204
|
+
var _renderComponent13 = renderComponent({
|
|
205
|
+
data: data
|
|
206
|
+
}),
|
|
207
|
+
container = _renderComponent13.container;
|
|
208
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
209
|
+
});
|
|
210
|
+
it('renders with multiple data points', function () {
|
|
211
|
+
var data = [{
|
|
212
|
+
value: 1,
|
|
213
|
+
label: 'A'
|
|
214
|
+
}, {
|
|
215
|
+
value: 2,
|
|
216
|
+
label: 'B'
|
|
217
|
+
}, {
|
|
218
|
+
value: 3,
|
|
219
|
+
label: 'C'
|
|
220
|
+
}, {
|
|
221
|
+
value: 4,
|
|
222
|
+
label: 'D'
|
|
223
|
+
}];
|
|
224
|
+
var _renderComponent14 = renderComponent({
|
|
225
|
+
data: data
|
|
226
|
+
}),
|
|
227
|
+
container = _renderComponent14.container;
|
|
228
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
229
|
+
});
|
|
230
|
+
it('renders with zero values', function () {
|
|
231
|
+
var data = [{
|
|
232
|
+
value: 0,
|
|
233
|
+
label: 'A'
|
|
234
|
+
}, {
|
|
235
|
+
value: 0,
|
|
236
|
+
label: 'B'
|
|
237
|
+
}];
|
|
238
|
+
var _renderComponent15 = renderComponent({
|
|
239
|
+
data: data
|
|
240
|
+
}),
|
|
241
|
+
container = _renderComponent15.container;
|
|
242
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
243
|
+
});
|
|
244
|
+
it('renders with mixed values', function () {
|
|
245
|
+
var data = [{
|
|
246
|
+
value: 0,
|
|
247
|
+
label: 'A'
|
|
248
|
+
}, {
|
|
249
|
+
value: 5,
|
|
250
|
+
label: 'B'
|
|
251
|
+
}, {
|
|
252
|
+
value: 1,
|
|
253
|
+
label: 'C'
|
|
254
|
+
}];
|
|
255
|
+
var _renderComponent16 = renderComponent({
|
|
256
|
+
data: data
|
|
257
|
+
}),
|
|
258
|
+
container = _renderComponent16.container;
|
|
259
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
260
|
+
});
|
|
261
|
+
it('renders with large values', function () {
|
|
262
|
+
var data = [{
|
|
263
|
+
value: 100,
|
|
264
|
+
label: 'A'
|
|
265
|
+
}, {
|
|
266
|
+
value: 200,
|
|
267
|
+
label: 'B'
|
|
268
|
+
}];
|
|
269
|
+
var _renderComponent17 = renderComponent({
|
|
270
|
+
data: data
|
|
271
|
+
}),
|
|
272
|
+
container = _renderComponent17.container;
|
|
273
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
274
|
+
});
|
|
275
|
+
it('renders with correctness data', function () {
|
|
276
|
+
var data = [{
|
|
277
|
+
value: 2,
|
|
278
|
+
label: 'A',
|
|
279
|
+
correctness: {
|
|
280
|
+
value: 'correct',
|
|
281
|
+
label: 'Correct'
|
|
282
|
+
}
|
|
283
|
+
}, {
|
|
284
|
+
value: 3,
|
|
285
|
+
label: 'B',
|
|
286
|
+
correctness: {
|
|
287
|
+
value: 'correct',
|
|
288
|
+
label: 'Correct'
|
|
289
|
+
}
|
|
290
|
+
}];
|
|
291
|
+
var _renderComponent18 = renderComponent({
|
|
292
|
+
data: data
|
|
293
|
+
}),
|
|
294
|
+
container = _renderComponent18.container;
|
|
295
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
296
|
+
});
|
|
297
|
+
it('renders with incorrect correctness and correctData', function () {
|
|
298
|
+
var data = [{
|
|
299
|
+
value: 2,
|
|
300
|
+
label: 'A',
|
|
301
|
+
correctness: {
|
|
302
|
+
value: 'incorrect',
|
|
303
|
+
label: 'Incorrect'
|
|
304
|
+
}
|
|
305
|
+
}, {
|
|
306
|
+
value: 3,
|
|
307
|
+
label: 'B',
|
|
308
|
+
correctness: {
|
|
309
|
+
value: 'incorrect',
|
|
310
|
+
label: 'Incorrect'
|
|
311
|
+
}
|
|
312
|
+
}];
|
|
313
|
+
var correctData = [{
|
|
314
|
+
value: 3,
|
|
315
|
+
label: 'A'
|
|
316
|
+
}, {
|
|
317
|
+
value: 4,
|
|
318
|
+
label: 'B'
|
|
319
|
+
}];
|
|
320
|
+
var _renderComponent19 = renderComponent({
|
|
321
|
+
data: data,
|
|
322
|
+
correctData: correctData
|
|
323
|
+
}),
|
|
324
|
+
container = _renderComponent19.container;
|
|
325
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
326
|
+
});
|
|
327
|
+
it('renders with interactive data points', function () {
|
|
328
|
+
var data = [{
|
|
329
|
+
value: 2,
|
|
330
|
+
label: 'A',
|
|
331
|
+
interactive: true
|
|
332
|
+
}, {
|
|
333
|
+
value: 3,
|
|
334
|
+
label: 'B',
|
|
335
|
+
interactive: false
|
|
336
|
+
}];
|
|
337
|
+
var _renderComponent20 = renderComponent({
|
|
338
|
+
data: data
|
|
339
|
+
}),
|
|
340
|
+
container = _renderComponent20.container;
|
|
341
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
342
|
+
});
|
|
343
|
+
});
|
|
344
|
+
describe('callbacks', function () {
|
|
345
|
+
it('passes onChange handler to Plot component', function () {
|
|
346
|
+
var onChange = jest.fn();
|
|
347
|
+
var data = [{
|
|
348
|
+
value: 1,
|
|
349
|
+
label: 'A'
|
|
350
|
+
}];
|
|
351
|
+
var _renderComponent21 = renderComponent({
|
|
352
|
+
data: data,
|
|
353
|
+
onChange: onChange
|
|
354
|
+
}),
|
|
355
|
+
container = _renderComponent21.container;
|
|
356
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
357
|
+
});
|
|
358
|
+
it('handles onChangeCategory callback', function () {
|
|
359
|
+
var onChangeCategory = jest.fn();
|
|
360
|
+
var data = [{
|
|
361
|
+
value: 1,
|
|
362
|
+
label: 'A'
|
|
363
|
+
}];
|
|
364
|
+
var _renderComponent22 = renderComponent({
|
|
365
|
+
data: data,
|
|
366
|
+
onChangeCategory: onChangeCategory
|
|
367
|
+
}),
|
|
368
|
+
container = _renderComponent22.container;
|
|
369
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
describe('component', function () {
|
|
373
|
+
it('returns correct chart object', function () {
|
|
374
|
+
var chart = (0, _line["default"])();
|
|
375
|
+
expect(chart).toEqual({
|
|
376
|
+
type: 'linePlot',
|
|
377
|
+
Component: _line.LinePlot,
|
|
378
|
+
name: 'Line Plot'
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
it('returns object with Component that can be rendered', function () {
|
|
382
|
+
var chart = (0, _line["default"])();
|
|
383
|
+
var Component = chart.Component;
|
|
384
|
+
var _render = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(Component, {
|
|
385
|
+
graphProps: (0, _utils.graphProps)()
|
|
386
|
+
})),
|
|
387
|
+
container = _render.container;
|
|
388
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
389
|
+
});
|
|
390
|
+
});
|
|
391
|
+
});
|
|
392
|
+
describe('CustomBarElement (Line)', function () {
|
|
393
|
+
var renderLinePlot = function renderLinePlot(props) {
|
|
394
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_styles.ThemeProvider, {
|
|
395
|
+
theme: theme
|
|
396
|
+
}, /*#__PURE__*/_react["default"].createElement("svg", null, /*#__PURE__*/_react["default"].createElement(_line.LinePlot, props))));
|
|
397
|
+
};
|
|
398
|
+
it('renders line elements', function () {
|
|
399
|
+
var data = [{
|
|
400
|
+
value: 1,
|
|
401
|
+
label: 'A'
|
|
402
|
+
}];
|
|
403
|
+
var _renderLinePlot = renderLinePlot({
|
|
404
|
+
data: data,
|
|
405
|
+
graphProps: (0, _utils.graphProps)()
|
|
406
|
+
}),
|
|
407
|
+
container = _renderLinePlot.container;
|
|
408
|
+
expect(container).toBeInTheDocument();
|
|
409
|
+
});
|
|
410
|
+
it('renders with dottedOverline prop', function () {
|
|
411
|
+
var data = [{
|
|
412
|
+
value: 2,
|
|
413
|
+
label: 'A',
|
|
414
|
+
correctness: {
|
|
415
|
+
value: 'incorrect'
|
|
416
|
+
}
|
|
417
|
+
}];
|
|
418
|
+
var correctData = [{
|
|
419
|
+
value: 3,
|
|
420
|
+
label: 'A'
|
|
421
|
+
}];
|
|
422
|
+
var _renderLinePlot2 = renderLinePlot({
|
|
423
|
+
data: data,
|
|
424
|
+
graphProps: (0, _utils.graphProps)(),
|
|
425
|
+
correctData: correctData
|
|
426
|
+
}),
|
|
427
|
+
container = _renderLinePlot2.container;
|
|
428
|
+
expect(container).toBeInTheDocument();
|
|
429
|
+
});
|
|
430
|
+
it('renders without dottedOverline prop', function () {
|
|
431
|
+
var data = [{
|
|
432
|
+
value: 2,
|
|
433
|
+
label: 'A'
|
|
434
|
+
}];
|
|
435
|
+
var _renderLinePlot3 = renderLinePlot({
|
|
436
|
+
data: data,
|
|
437
|
+
graphProps: (0, _utils.graphProps)()
|
|
438
|
+
}),
|
|
439
|
+
container = _renderLinePlot3.container;
|
|
440
|
+
expect(container).toBeInTheDocument();
|
|
441
|
+
});
|
|
442
|
+
it('renders two LinePath elements for X shape when not dotted', function () {
|
|
443
|
+
var data = [{
|
|
444
|
+
value: 3,
|
|
445
|
+
label: 'A'
|
|
446
|
+
}];
|
|
447
|
+
var _renderLinePlot4 = renderLinePlot({
|
|
448
|
+
data: data,
|
|
449
|
+
graphProps: (0, _utils.graphProps)()
|
|
450
|
+
}),
|
|
451
|
+
container = _renderLinePlot4.container;
|
|
452
|
+
expect(container).toBeInTheDocument();
|
|
453
|
+
});
|
|
454
|
+
it('renders rect with dashed stroke when dottedOverline is true', function () {
|
|
455
|
+
var data = [{
|
|
456
|
+
value: 2,
|
|
457
|
+
label: 'A',
|
|
458
|
+
correctness: {
|
|
459
|
+
value: 'incorrect'
|
|
460
|
+
}
|
|
461
|
+
}];
|
|
462
|
+
var correctData = [{
|
|
463
|
+
value: 3,
|
|
464
|
+
label: 'A'
|
|
465
|
+
}];
|
|
466
|
+
var _renderLinePlot5 = renderLinePlot({
|
|
467
|
+
data: data,
|
|
468
|
+
graphProps: (0, _utils.graphProps)(),
|
|
469
|
+
correctData: correctData
|
|
470
|
+
}),
|
|
471
|
+
container = _renderLinePlot5.container;
|
|
472
|
+
expect(container).toBeInTheDocument();
|
|
473
|
+
});
|
|
474
|
+
it('calculates correct line positions', function () {
|
|
475
|
+
var data = [{
|
|
476
|
+
value: 2,
|
|
477
|
+
label: 'A'
|
|
478
|
+
}];
|
|
479
|
+
var _renderLinePlot6 = renderLinePlot({
|
|
480
|
+
data: data,
|
|
481
|
+
graphProps: (0, _utils.graphProps)()
|
|
482
|
+
}),
|
|
483
|
+
container = _renderLinePlot6.container;
|
|
484
|
+
expect(container).toBeInTheDocument();
|
|
485
|
+
});
|
|
486
|
+
it('handles zero pointDiameter', function () {
|
|
487
|
+
var props = (0, _utils.graphProps)();
|
|
488
|
+
props.size = {
|
|
489
|
+
width: 0,
|
|
490
|
+
height: 0
|
|
491
|
+
};
|
|
492
|
+
var data = [{
|
|
493
|
+
value: 1,
|
|
494
|
+
label: 'A'
|
|
495
|
+
}];
|
|
496
|
+
var _renderLinePlot7 = renderLinePlot({
|
|
497
|
+
data: data,
|
|
498
|
+
graphProps: props
|
|
499
|
+
}),
|
|
500
|
+
container = _renderLinePlot7.container;
|
|
501
|
+
expect(container).toBeInTheDocument();
|
|
502
|
+
});
|
|
503
|
+
it('handles large pointDiameter values', function () {
|
|
504
|
+
var props = (0, _utils.graphProps)();
|
|
505
|
+
props.size = {
|
|
506
|
+
width: 1000,
|
|
507
|
+
height: 1000
|
|
508
|
+
};
|
|
509
|
+
var data = [{
|
|
510
|
+
value: 1,
|
|
511
|
+
label: 'A'
|
|
512
|
+
}];
|
|
513
|
+
var _renderLinePlot8 = renderLinePlot({
|
|
514
|
+
data: data,
|
|
515
|
+
graphProps: props
|
|
516
|
+
}),
|
|
517
|
+
container = _renderLinePlot8.container;
|
|
518
|
+
expect(container).toBeInTheDocument();
|
|
519
|
+
});
|
|
520
|
+
it('applies correct strokeWidth based on pointDiameter', function () {
|
|
521
|
+
var data = [{
|
|
522
|
+
value: 2,
|
|
523
|
+
label: 'A'
|
|
524
|
+
}];
|
|
525
|
+
var _renderLinePlot9 = renderLinePlot({
|
|
526
|
+
data: data,
|
|
527
|
+
graphProps: (0, _utils.graphProps)()
|
|
528
|
+
}),
|
|
529
|
+
container = _renderLinePlot9.container;
|
|
530
|
+
// strokeWidth should be pointDiameter / 5
|
|
531
|
+
expect(container).toBeInTheDocument();
|
|
532
|
+
});
|
|
533
|
+
it('renders Group component wrapping LinePaths', function () {
|
|
534
|
+
var data = [{
|
|
535
|
+
value: 1,
|
|
536
|
+
label: 'A'
|
|
537
|
+
}];
|
|
538
|
+
var _renderLinePlot0 = renderLinePlot({
|
|
539
|
+
data: data,
|
|
540
|
+
graphProps: (0, _utils.graphProps)()
|
|
541
|
+
}),
|
|
542
|
+
container = _renderLinePlot0.container;
|
|
543
|
+
expect(container).toBeInTheDocument();
|
|
544
|
+
});
|
|
545
|
+
it('handles rect with extra padding when dotted', function () {
|
|
546
|
+
var data = [{
|
|
547
|
+
value: 2,
|
|
548
|
+
label: 'A',
|
|
549
|
+
correctness: {
|
|
550
|
+
value: 'incorrect'
|
|
551
|
+
}
|
|
552
|
+
}];
|
|
553
|
+
var correctData = [{
|
|
554
|
+
value: 3,
|
|
555
|
+
label: 'A'
|
|
556
|
+
}];
|
|
557
|
+
var _renderLinePlot1 = renderLinePlot({
|
|
558
|
+
data: data,
|
|
559
|
+
graphProps: (0, _utils.graphProps)(),
|
|
560
|
+
correctData: correctData
|
|
561
|
+
}),
|
|
562
|
+
container = _renderLinePlot1.container;
|
|
563
|
+
expect(container).toBeInTheDocument();
|
|
564
|
+
});
|
|
565
|
+
});
|
|
566
|
+
//# sourceMappingURL=line.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line.test.js","names":["_react","_interopRequireDefault","require","_testUtils","_styles","_line","_interopRequireWildcard","_utils","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","jest","mock","Check","props","createElement","_extends2","LinePath","_ref","data","x","y","rest","_objectWithoutProperties2","d","map","concat","join","Group","_ref2","children","className","theme","beforeAll","createTheme","describe","renderComponent","extras","defaults","classes","graphProps","xBand","bandwidth","render","ThemeProvider","LinePlot","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","_renderComponent2","undefined","value","label","_renderComponent3","_renderComponent4","_renderComponent5","_renderComponent6","_renderComponent7","onChange","fn","_renderComponent8","_renderComponent9","defineChart","correctData","_renderComponent0","scale","_renderComponent1","size","_renderComponent10","_renderComponent11","_renderComponent12","_renderComponent13","_renderComponent14","_renderComponent15","_renderComponent16","_renderComponent17","correctness","_renderComponent18","_renderComponent19","interactive","_renderComponent20","_renderComponent21","onChangeCategory","_renderComponent22","chart","Line","toEqual","type","Component","name","_render","renderLinePlot","_renderLinePlot","_renderLinePlot2","_renderLinePlot3","_renderLinePlot4","_renderLinePlot5","_renderLinePlot6","width","height","_renderLinePlot7","_renderLinePlot8","_renderLinePlot9","_renderLinePlot0","_renderLinePlot1"],"sources":["../../../src/plot/__tests__/line.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@pie-lib/test-utils';\nimport { createTheme, ThemeProvider } from '@mui/material/styles';\nimport Line, { LinePlot } from '../line';\nimport { graphProps } from './utils';\n\njest.mock('@mui/icons-material/Check', () => {\n return function Check(props) {\n return <div data-testid=\"check-icon\" {...props} />;\n };\n});\n\njest.mock('@visx/shape', () => ({\n LinePath: ({ data, x, y, ...rest }) => (\n <path d={data.map((d, i) => `${i === 0 ? 'M' : 'L'}${x(d)},${y(d)}`).join(' ')} {...rest} />\n ),\n}));\n\njest.mock('@visx/group', () => ({\n Group: ({ children }) => <g className=\"visx-group\">{children}</g>,\n}));\n\nlet theme;\n\nbeforeAll(() => {\n theme = createTheme();\n});\n\ndescribe('LinePlot', () => {\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n graphProps: graphProps(),\n xBand: () => {\n return {\n bandwidth: () => {},\n };\n },\n };\n const props = { ...defaults, ...extras };\n return render(\n <ThemeProvider theme={theme}>\n <svg>\n <LinePlot {...props} />\n </svg>\n </ThemeProvider>,\n );\n };\n\n describe('rendering', () => {\n it('renders line plot', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders without graphProps', () => {\n const { container } = renderComponent({ graphProps: undefined });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with data array', () => {\n const data = [\n { value: 1, label: 'A' },\n { value: 2, label: 'B' },\n { value: 3, label: 'C' },\n ];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with empty data array', () => {\n const { container } = renderComponent({ data: [] });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with null data', () => {\n const { container } = renderComponent({ data: null });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with undefined data', () => {\n const { container } = renderComponent({ data: undefined });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with custom className', () => {\n const { container } = renderComponent({ className: 'custom-line-plot' });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with onChange handler', () => {\n const onChange = jest.fn();\n const { container } = renderComponent({ onChange });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders in defineChart mode', () => {\n const { container } = renderComponent({ defineChart: true });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with correctData', () => {\n const data = [{ value: 2, label: 'A' }];\n const correctData = [{ value: 3, label: 'A' }];\n const { container } = renderComponent({ data, correctData });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('graphProps handling', () => {\n it('handles graphProps with missing scale', () => {\n const props = graphProps();\n delete props.scale;\n const { container } = renderComponent({ graphProps: props });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles graphProps with missing size', () => {\n const props = graphProps();\n delete props.size;\n const { container } = renderComponent({ graphProps: props });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles graphProps with empty scale object', () => {\n const props = graphProps();\n props.scale = {};\n const { container } = renderComponent({ graphProps: props });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles graphProps with empty size object', () => {\n const props = graphProps();\n props.size = {};\n const { container } = renderComponent({ graphProps: props });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('data variations', () => {\n it('renders with single data point', () => {\n const data = [{ value: 1, label: 'A' }];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with multiple data points', () => {\n const data = [\n { value: 1, label: 'A' },\n { value: 2, label: 'B' },\n { value: 3, label: 'C' },\n { value: 4, label: 'D' },\n ];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with zero values', () => {\n const data = [\n { value: 0, label: 'A' },\n { value: 0, label: 'B' },\n ];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with mixed values', () => {\n const data = [\n { value: 0, label: 'A' },\n { value: 5, label: 'B' },\n { value: 1, label: 'C' },\n ];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with large values', () => {\n const data = [\n { value: 100, label: 'A' },\n { value: 200, label: 'B' },\n ];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with correctness data', () => {\n const data = [\n { value: 2, label: 'A', correctness: { value: 'correct', label: 'Correct' } },\n { value: 3, label: 'B', correctness: { value: 'correct', label: 'Correct' } },\n ];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with incorrect correctness and correctData', () => {\n const data = [\n { value: 2, label: 'A', correctness: { value: 'incorrect', label: 'Incorrect' } },\n { value: 3, label: 'B', correctness: { value: 'incorrect', label: 'Incorrect' } },\n ];\n const correctData = [\n { value: 3, label: 'A' },\n { value: 4, label: 'B' },\n ];\n const { container } = renderComponent({ data, correctData });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with interactive data points', () => {\n const data = [\n { value: 2, label: 'A', interactive: true },\n { value: 3, label: 'B', interactive: false },\n ];\n const { container } = renderComponent({ data });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('callbacks', () => {\n it('passes onChange handler to Plot component', () => {\n const onChange = jest.fn();\n const data = [{ value: 1, label: 'A' }];\n const { container } = renderComponent({ data, onChange });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles onChangeCategory callback', () => {\n const onChangeCategory = jest.fn();\n const data = [{ value: 1, label: 'A' }];\n const { container } = renderComponent({ data, onChangeCategory });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('component', () => {\n it('returns correct chart object', () => {\n const chart = Line();\n\n expect(chart).toEqual({\n type: 'linePlot',\n Component: LinePlot,\n name: 'Line Plot',\n });\n });\n\n it('returns object with Component that can be rendered', () => {\n const chart = Line();\n const { Component } = chart;\n\n const { container } = render(<Component graphProps={graphProps()} />);\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n\ndescribe('CustomBarElement (Line)', () => {\n const renderLinePlot = (props) =>\n render(\n <ThemeProvider theme={theme}>\n <svg>\n <LinePlot {...props} />\n </svg>\n </ThemeProvider>,\n );\n\n it('renders line elements', () => {\n const data = [{ value: 1, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n });\n expect(container).toBeInTheDocument();\n });\n\n it('renders with dottedOverline prop', () => {\n const data = [{ value: 2, label: 'A', correctness: { value: 'incorrect' } }];\n const correctData = [{ value: 3, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n correctData,\n });\n expect(container).toBeInTheDocument();\n });\n\n it('renders without dottedOverline prop', () => {\n const data = [{ value: 2, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n });\n expect(container).toBeInTheDocument();\n });\n\n it('renders two LinePath elements for X shape when not dotted', () => {\n const data = [{ value: 3, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n });\n expect(container).toBeInTheDocument();\n });\n\n it('renders rect with dashed stroke when dottedOverline is true', () => {\n const data = [{ value: 2, label: 'A', correctness: { value: 'incorrect' } }];\n const correctData = [{ value: 3, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n correctData,\n });\n expect(container).toBeInTheDocument();\n });\n\n it('calculates correct line positions', () => {\n const data = [{ value: 2, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n });\n expect(container).toBeInTheDocument();\n });\n\n it('handles zero pointDiameter', () => {\n const props = graphProps();\n props.size = { width: 0, height: 0 };\n const data = [{ value: 1, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: props,\n });\n expect(container).toBeInTheDocument();\n });\n\n it('handles large pointDiameter values', () => {\n const props = graphProps();\n props.size = { width: 1000, height: 1000 };\n const data = [{ value: 1, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: props,\n });\n expect(container).toBeInTheDocument();\n });\n\n it('applies correct strokeWidth based on pointDiameter', () => {\n const data = [{ value: 2, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n });\n // strokeWidth should be pointDiameter / 5\n expect(container).toBeInTheDocument();\n });\n\n it('renders Group component wrapping LinePaths', () => {\n const data = [{ value: 1, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n });\n expect(container).toBeInTheDocument();\n });\n\n it('handles rect with extra padding when dotted', () => {\n const data = [{ value: 2, label: 'A', correctness: { value: 'incorrect' } }];\n const correctData = [{ value: 3, label: 'A' }];\n const { container } = renderLinePlot({\n data,\n graphProps: graphProps(),\n correctData,\n });\n expect(container).toBeInTheDocument();\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.scaleMock = exports.graphProps = void 0;
|
|
7
|
+
var scaleMock = exports.scaleMock = function scaleMock() {
|
|
8
|
+
var fn = jest.fn(function (n) {
|
|
9
|
+
return n;
|
|
10
|
+
});
|
|
11
|
+
fn.invert = jest.fn(function (n) {
|
|
12
|
+
return n;
|
|
13
|
+
});
|
|
14
|
+
return fn;
|
|
15
|
+
};
|
|
16
|
+
var graphProps = exports.graphProps = function graphProps() {
|
|
17
|
+
var dmin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
18
|
+
var dmax = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
19
|
+
var rmin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
20
|
+
var rmax = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
21
|
+
return {
|
|
22
|
+
scale: {
|
|
23
|
+
x: scaleMock(),
|
|
24
|
+
y: scaleMock()
|
|
25
|
+
},
|
|
26
|
+
snap: {
|
|
27
|
+
x: jest.fn(function (n) {
|
|
28
|
+
return n;
|
|
29
|
+
}),
|
|
30
|
+
y: jest.fn(function (n) {
|
|
31
|
+
return n;
|
|
32
|
+
})
|
|
33
|
+
},
|
|
34
|
+
domain: {
|
|
35
|
+
min: dmin,
|
|
36
|
+
max: dmax,
|
|
37
|
+
step: 1
|
|
38
|
+
},
|
|
39
|
+
range: {
|
|
40
|
+
min: rmin,
|
|
41
|
+
max: rmax,
|
|
42
|
+
step: 1
|
|
43
|
+
},
|
|
44
|
+
size: {
|
|
45
|
+
width: 400,
|
|
46
|
+
height: 400
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=utils.js.map
|