@pie-lib/graphing-solution-set 4.1.0-beta.7 → 4.1.0-beta.8

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/package.json +3 -3
  2. package/lib/__tests__/bg.test.js +0 -282
  3. package/lib/__tests__/bg.test.js.map +0 -1
  4. package/lib/__tests__/coordinates-label.test.js +0 -276
  5. package/lib/__tests__/coordinates-label.test.js.map +0 -1
  6. package/lib/__tests__/graph-with-controls.test.js +0 -256
  7. package/lib/__tests__/graph-with-controls.test.js.map +0 -1
  8. package/lib/__tests__/graph.test.js +0 -113
  9. package/lib/__tests__/graph.test.js.map +0 -1
  10. package/lib/__tests__/grid-setup.test.js +0 -729
  11. package/lib/__tests__/grid-setup.test.js.map +0 -1
  12. package/lib/__tests__/grid.test.js +0 -29
  13. package/lib/__tests__/grid.test.js.map +0 -1
  14. package/lib/__tests__/labels.test.js +0 -45
  15. package/lib/__tests__/labels.test.js.map +0 -1
  16. package/lib/__tests__/mark-label.test.js +0 -133
  17. package/lib/__tests__/mark-label.test.js.map +0 -1
  18. package/lib/__tests__/toggle-bar.test.js +0 -146
  19. package/lib/__tests__/toggle-bar.test.js.map +0 -1
  20. package/lib/__tests__/tool-menu.test.js +0 -540
  21. package/lib/__tests__/tool-menu.test.js.map +0 -1
  22. package/lib/__tests__/undo-redo.test.js +0 -31
  23. package/lib/__tests__/undo-redo.test.js.map +0 -1
  24. package/lib/__tests__/use-debounce.test.js +0 -24
  25. package/lib/__tests__/use-debounce.test.js.map +0 -1
  26. package/lib/__tests__/utils.js +0 -70
  27. package/lib/__tests__/utils.js.map +0 -1
  28. package/lib/__tests__/utils.test.js +0 -123
  29. package/lib/__tests__/utils.test.js.map +0 -1
  30. package/lib/axis/__tests__/arrow.test.js +0 -60
  31. package/lib/axis/__tests__/arrow.test.js.map +0 -1
  32. package/lib/axis/__tests__/axes.test.js +0 -160
  33. package/lib/axis/__tests__/axes.test.js.map +0 -1
  34. package/lib/container/__tests__/actions.test.js +0 -108
  35. package/lib/container/__tests__/actions.test.js.map +0 -1
  36. package/lib/container/__tests__/index.test.js +0 -346
  37. package/lib/container/__tests__/index.test.js.map +0 -1
  38. package/lib/container/__tests__/marks.test.js +0 -259
  39. package/lib/container/__tests__/marks.test.js.map +0 -1
  40. package/lib/container/__tests__/middleware.test.js +0 -244
  41. package/lib/container/__tests__/middleware.test.js.map +0 -1
  42. package/lib/container/__tests__/reducer.test.js +0 -450
  43. package/lib/container/__tests__/reducer.test.js.map +0 -1
  44. package/lib/tools/line/__tests__/component.test.js +0 -45
  45. package/lib/tools/line/__tests__/component.test.js.map +0 -1
  46. package/lib/tools/polygon/__tests__/component.test.js +0 -501
  47. package/lib/tools/polygon/__tests__/component.test.js.map +0 -1
  48. package/lib/tools/polygon/__tests__/index.test.js +0 -92
  49. package/lib/tools/polygon/__tests__/index.test.js.map +0 -1
  50. package/lib/tools/polygon/__tests__/line.test.js +0 -30
  51. package/lib/tools/polygon/__tests__/line.test.js.map +0 -1
  52. package/lib/tools/polygon/__tests__/polygon.test.js +0 -61
  53. package/lib/tools/polygon/__tests__/polygon.test.js.map +0 -1
  54. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -45
  55. package/lib/tools/shared/__tests__/arrow-head.test.js.map +0 -1
  56. package/lib/tools/shared/line/__tests__/index.test.js +0 -725
  57. package/lib/tools/shared/line/__tests__/index.test.js.map +0 -1
  58. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -64
  59. package/lib/tools/shared/line/__tests__/line-path.test.js.map +0 -1
  60. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -618
  61. package/lib/tools/shared/line/__tests__/with-root-edge.test.js.map +0 -1
  62. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -127
  63. package/lib/tools/shared/point/__tests__/arrow-point.test.js.map +0 -1
  64. package/lib/tools/shared/point/__tests__/arrow.test.js +0 -619
  65. package/lib/tools/shared/point/__tests__/arrow.test.js.map +0 -1
  66. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -122
  67. package/lib/tools/shared/point/__tests__/base-point.test.js.map +0 -1
@@ -1,501 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
- var _testUtils = require("@pie-lib/test-utils");
6
- var _react = _interopRequireDefault(require("react"));
7
- var _utils = require("../../../__tests__/utils");
8
- var _component = require("../component");
9
- 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; }
10
- 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; }
11
- var xyLabel = function xyLabel(x, y, index, label) {
12
- return _objectSpread(_objectSpread({}, (0, _utils.xy)(x, y, index)), {}, {
13
- label: label
14
- });
15
- };
16
-
17
- // Pure function tests - keep as-is
18
- describe('buildLines', function () {
19
- var defaultPoints = [(0, _utils.xy)(0, 0), (0, _utils.xy)(1, 1), (0, _utils.xy)(1, 0)];
20
- var assertBuildLines = function assertBuildLines(points, closed, expected) {
21
- it("builds points and lines for ".concat(points, " = ").concat(expected), function () {
22
- var result = (0, _component.buildLines)(points);
23
- expect(result).toMatchObject([{
24
- from: (0, _utils.xy)(0, 0, 0),
25
- to: (0, _utils.xy)(1, 1, 1)
26
- }, {
27
- from: (0, _utils.xy)(1, 1, 1),
28
- to: (0, _utils.xy)(1, 0, 2)
29
- }]);
30
- });
31
- };
32
- assertBuildLines(defaultPoints, true, []);
33
- });
34
- describe('swap', function () {
35
- it('swaps pairs', function () {
36
- var result = (0, _component.swap)([(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 2, 2)], (0, _utils.xy)(0, 0, 0), (0, _utils.xy)(3, 3, 0));
37
- expect(result).toEqual([(0, _utils.xy)(3, 3, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 2, 2)]);
38
- });
39
- it('swaps first element', function () {
40
- var result = (0, _component.swap)([(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)], (0, _utils.xy)(0, 0, 0), (0, _utils.xy)(5, 5, 0));
41
- expect(result).toEqual([(0, _utils.xy)(5, 5, 0), (0, _utils.xy)(1, 1, 1)]);
42
- });
43
- it('swaps last element', function () {
44
- var result = (0, _component.swap)([(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 2, 2)], (0, _utils.xy)(2, 2, 2), (0, _utils.xy)(3, 3, 2));
45
- expect(result).toEqual([(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(3, 3, 2)]);
46
- });
47
- it('swaps middle element', function () {
48
- var result = (0, _component.swap)([(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 2, 2)], (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(3, 3, 1));
49
- expect(result).toEqual([(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(3, 3, 1), (0, _utils.xy)(2, 2, 2)]);
50
- });
51
- });
52
-
53
- // Note: Instance method tests have been removed. Component behavior should be tested
54
- // through user interactions and integration tests.
55
- describe('RawBaseComponent', function () {
56
- var onChange;
57
- var onChangeProps;
58
- var onClosePolygon;
59
- beforeEach(function () {
60
- onChange = jest.fn();
61
- onChangeProps = jest.fn();
62
- onClosePolygon = jest.fn();
63
- });
64
- var renderComponent = function renderComponent(extras) {
65
- var defaults = {
66
- className: 'className',
67
- onChange: onChange,
68
- onChangeProps: onChangeProps,
69
- onClosePolygon: onClosePolygon,
70
- graphProps: (0, _utils.graphProps)(),
71
- points: []
72
- };
73
- var props = _objectSpread(_objectSpread({}, defaults), extras);
74
- return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component.RawBaseComponent, props));
75
- };
76
-
77
- // used to test items that have labels attached to points
78
- var labelNode = document.createElement('foreignObject');
79
- var points = [xyLabel(0, 0, 0, 'A'), xyLabel(2, 2, 1, 'B'), xyLabel(0, 2, 2, 'C')];
80
- var renderWithLabels = function renderWithLabels(extras) {
81
- return renderComponent(_objectSpread({
82
- labelNode: labelNode,
83
- points: points
84
- }, extras));
85
- };
86
- describe('rendering', function () {
87
- it('renders without crashing', function () {
88
- var _renderComponent = renderComponent(),
89
- container = _renderComponent.container;
90
- expect(container.firstChild).toBeInTheDocument();
91
- });
92
- it('renders with labels', function () {
93
- var _renderWithLabels = renderWithLabels(),
94
- container = _renderWithLabels.container;
95
- expect(container.firstChild).toBeInTheDocument();
96
- });
97
- it('renders with multiple points', function () {
98
- var _renderComponent2 = renderComponent({
99
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)]
100
- }),
101
- container = _renderComponent2.container;
102
- expect(container.firstChild).toBeInTheDocument();
103
- });
104
- it('renders with closed polygon', function () {
105
- var _renderComponent3 = renderComponent({
106
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)],
107
- closed: true
108
- }),
109
- container = _renderComponent3.container;
110
- expect(container.firstChild).toBeInTheDocument();
111
- });
112
- it('renders with single point', function () {
113
- var _renderComponent4 = renderComponent({
114
- points: [(0, _utils.xy)(0, 0, 0)]
115
- }),
116
- container = _renderComponent4.container;
117
- expect(container.firstChild).toBeInTheDocument();
118
- });
119
- it('renders with two points', function () {
120
- var _renderComponent5 = renderComponent({
121
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)]
122
- }),
123
- container = _renderComponent5.container;
124
- expect(container.firstChild).toBeInTheDocument();
125
- });
126
- it('renders empty polygon', function () {
127
- var _renderComponent6 = renderComponent({
128
- points: []
129
- }),
130
- container = _renderComponent6.container;
131
- expect(container.firstChild).toBeInTheDocument();
132
- });
133
- it('renders with negative coordinates', function () {
134
- var _renderComponent7 = renderComponent({
135
- points: [(0, _utils.xy)(-5, -5, 0), (0, _utils.xy)(-1, -1, 1), (0, _utils.xy)(-3, -2, 2)]
136
- }),
137
- container = _renderComponent7.container;
138
- expect(container.firstChild).toBeInTheDocument();
139
- });
140
- it('renders with decimal coordinates', function () {
141
- var _renderComponent8 = renderComponent({
142
- points: [(0, _utils.xy)(0.5, 0.5, 0), (0, _utils.xy)(1.5, 1.5, 1), (0, _utils.xy)(2.5, 0.5, 2)]
143
- }),
144
- container = _renderComponent8.container;
145
- expect(container.firstChild).toBeInTheDocument();
146
- });
147
- it('renders with large coordinate values', function () {
148
- var _renderComponent9 = renderComponent({
149
- points: [(0, _utils.xy)(100, 100, 0), (0, _utils.xy)(200, 200, 1), (0, _utils.xy)(150, 250, 2)]
150
- }),
151
- container = _renderComponent9.container;
152
- expect(container.firstChild).toBeInTheDocument();
153
- });
154
- });
155
- describe('states', function () {
156
- it('renders in disabled state', function () {
157
- var _renderComponent0 = renderComponent({
158
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)],
159
- disabled: true
160
- }),
161
- container = _renderComponent0.container;
162
- expect(container.firstChild).toBeInTheDocument();
163
- });
164
- it('renders in enabled state', function () {
165
- var _renderComponent1 = renderComponent({
166
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)],
167
- disabled: false
168
- }),
169
- container = _renderComponent1.container;
170
- expect(container.firstChild).toBeInTheDocument();
171
- });
172
- it('renders with correctness correct', function () {
173
- var _renderComponent10 = renderComponent({
174
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)],
175
- correctness: 'correct'
176
- }),
177
- container = _renderComponent10.container;
178
- expect(container.firstChild).toBeInTheDocument();
179
- });
180
- it('renders with correctness incorrect', function () {
181
- var _renderComponent11 = renderComponent({
182
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)],
183
- correctness: 'incorrect'
184
- }),
185
- container = _renderComponent11.container;
186
- expect(container.firstChild).toBeInTheDocument();
187
- });
188
- it('renders with building state', function () {
189
- var _renderComponent12 = renderComponent({
190
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)],
191
- building: true
192
- }),
193
- container = _renderComponent12.container;
194
- expect(container.firstChild).toBeInTheDocument();
195
- });
196
- it('renders with fill property', function () {
197
- var _renderComponent13 = renderComponent({
198
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)],
199
- fill: '#ff0000'
200
- }),
201
- container = _renderComponent13.container;
202
- expect(container.firstChild).toBeInTheDocument();
203
- });
204
- });
205
- describe('labels', function () {
206
- it('renders with all points labeled', function () {
207
- var _renderWithLabels2 = renderWithLabels(),
208
- container = _renderWithLabels2.container;
209
- expect(container.firstChild).toBeInTheDocument();
210
- });
211
- it('renders with partial labels', function () {
212
- var partialLabels = [xyLabel(0, 0, 0, 'A'), (0, _utils.xy)(2, 2, 1), xyLabel(0, 2, 2, 'C')];
213
- var _renderComponent14 = renderComponent({
214
- labelNode: labelNode,
215
- points: partialLabels
216
- }),
217
- container = _renderComponent14.container;
218
- expect(container.firstChild).toBeInTheDocument();
219
- });
220
- it('renders with empty string labels', function () {
221
- var emptyLabels = [xyLabel(0, 0, 0, ''), xyLabel(2, 2, 1, ''), xyLabel(0, 2, 2, '')];
222
- var _renderComponent15 = renderComponent({
223
- labelNode: labelNode,
224
- points: emptyLabels
225
- }),
226
- container = _renderComponent15.container;
227
- expect(container.firstChild).toBeInTheDocument();
228
- });
229
- it('renders without labelNode', function () {
230
- var _renderComponent16 = renderComponent({
231
- points: [xyLabel(0, 0, 0, 'A'), xyLabel(2, 2, 1, 'B')]
232
- }),
233
- container = _renderComponent16.container;
234
- expect(container.firstChild).toBeInTheDocument();
235
- });
236
- it('renders with labelModeEnabled', function () {
237
- var _renderWithLabels3 = renderWithLabels({
238
- labelModeEnabled: true
239
- }),
240
- container = _renderWithLabels3.container;
241
- expect(container.firstChild).toBeInTheDocument();
242
- });
243
- it('renders with labelModeEnabled disabled', function () {
244
- var _renderWithLabels4 = renderWithLabels({
245
- labelModeEnabled: false
246
- }),
247
- container = _renderWithLabels4.container;
248
- expect(container.firstChild).toBeInTheDocument();
249
- });
250
- it('renders with long labels', function () {
251
- var longLabels = [xyLabel(0, 0, 0, 'Very Long Label Text'), xyLabel(2, 2, 1, 'Another Long Label'), xyLabel(0, 2, 2, 'Yet Another Long Label')];
252
- var _renderComponent17 = renderComponent({
253
- labelNode: labelNode,
254
- points: longLabels
255
- }),
256
- container = _renderComponent17.container;
257
- expect(container.firstChild).toBeInTheDocument();
258
- });
259
- });
260
- describe('polygon shapes', function () {
261
- it('renders triangle', function () {
262
- var _renderComponent18 = renderComponent({
263
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(2, 0, 1), (0, _utils.xy)(1, 2, 2)],
264
- closed: true
265
- }),
266
- container = _renderComponent18.container;
267
- expect(container.firstChild).toBeInTheDocument();
268
- });
269
- it('renders square', function () {
270
- var _renderComponent19 = renderComponent({
271
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(2, 0, 1), (0, _utils.xy)(2, 2, 2), (0, _utils.xy)(0, 2, 3)],
272
- closed: true
273
- }),
274
- container = _renderComponent19.container;
275
- expect(container.firstChild).toBeInTheDocument();
276
- });
277
- it('renders pentagon', function () {
278
- var _renderComponent20 = renderComponent({
279
- points: [(0, _utils.xy)(1, 0, 0), (0, _utils.xy)(2, 1, 1), (0, _utils.xy)(1.5, 2.5, 2), (0, _utils.xy)(0.5, 2.5, 3), (0, _utils.xy)(0, 1, 4)],
280
- closed: true
281
- }),
282
- container = _renderComponent20.container;
283
- expect(container.firstChild).toBeInTheDocument();
284
- });
285
- it('renders irregular polygon', function () {
286
- var _renderComponent21 = renderComponent({
287
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(3, 1, 1), (0, _utils.xy)(2, 4, 2), (0, _utils.xy)(-1, 3, 3)],
288
- closed: true
289
- }),
290
- container = _renderComponent21.container;
291
- expect(container.firstChild).toBeInTheDocument();
292
- });
293
- });
294
- describe('props', function () {
295
- it('passes onChange callback', function () {
296
- var customOnChange = jest.fn();
297
- var _renderComponent22 = renderComponent({
298
- onChange: customOnChange,
299
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)]
300
- }),
301
- container = _renderComponent22.container;
302
- expect(container.firstChild).toBeInTheDocument();
303
- });
304
- it('passes onChangeProps callback', function () {
305
- var customOnChangeProps = jest.fn();
306
- var _renderComponent23 = renderComponent({
307
- onChangeProps: customOnChangeProps,
308
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)]
309
- }),
310
- container = _renderComponent23.container;
311
- expect(container.firstChild).toBeInTheDocument();
312
- });
313
- it('passes onClick callback', function () {
314
- var onClick = jest.fn();
315
- var _renderComponent24 = renderComponent({
316
- onClick: onClick,
317
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)]
318
- }),
319
- container = _renderComponent24.container;
320
- expect(container.firstChild).toBeInTheDocument();
321
- });
322
- it('passes onClosePolygon callback', function () {
323
- var customOnClosePolygon = jest.fn();
324
- var _renderComponent25 = renderComponent({
325
- onClosePolygon: customOnClosePolygon,
326
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)]
327
- }),
328
- container = _renderComponent25.container;
329
- expect(container.firstChild).toBeInTheDocument();
330
- });
331
- it('passes onDragStart callback', function () {
332
- var onDragStart = jest.fn();
333
- var _renderComponent26 = renderComponent({
334
- onDragStart: onDragStart,
335
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)]
336
- }),
337
- container = _renderComponent26.container;
338
- expect(container.firstChild).toBeInTheDocument();
339
- });
340
- it('passes onDragStop callback', function () {
341
- var onDragStop = jest.fn();
342
- var _renderComponent27 = renderComponent({
343
- onDragStop: onDragStop,
344
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)]
345
- }),
346
- container = _renderComponent27.container;
347
- expect(container.firstChild).toBeInTheDocument();
348
- });
349
- it('passes coordinatesOnHover', function () {
350
- var _renderComponent28 = renderComponent({
351
- coordinatesOnHover: true,
352
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)]
353
- }),
354
- container = _renderComponent28.container;
355
- expect(container.firstChild).toBeInTheDocument();
356
- });
357
- it('passes graphProps', function () {
358
- var customGraphProps = (0, _utils.graphProps)(0, 10, 0, 10);
359
- var _renderComponent29 = renderComponent({
360
- graphProps: customGraphProps,
361
- points: [(0, _utils.xy)(5, 5, 0), (0, _utils.xy)(7, 7, 1)]
362
- }),
363
- container = _renderComponent29.container;
364
- expect(container.firstChild).toBeInTheDocument();
365
- });
366
- it('passes gssLineData', function () {
367
- var gssLineData = {
368
- selectedTool: 'solutionSet'
369
- };
370
- var _renderComponent30 = renderComponent({
371
- gssLineData: gssLineData,
372
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 0, 2)]
373
- }),
374
- container = _renderComponent30.container;
375
- expect(container.firstChild).toBeInTheDocument();
376
- });
377
- });
378
- describe('edge cases', function () {
379
- it('handles points with same coordinates', function () {
380
- var _renderComponent31 = renderComponent({
381
- points: [(0, _utils.xy)(1, 1, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(1, 1, 2)]
382
- }),
383
- container = _renderComponent31.container;
384
- expect(container.firstChild).toBeInTheDocument();
385
- });
386
- it('handles collinear points', function () {
387
- var _renderComponent32 = renderComponent({
388
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1), (0, _utils.xy)(2, 2, 2)]
389
- }),
390
- container = _renderComponent32.container;
391
- expect(container.firstChild).toBeInTheDocument();
392
- });
393
- it('handles very close points', function () {
394
- var _renderComponent33 = renderComponent({
395
- points: [(0, _utils.xy)(1, 1, 0), (0, _utils.xy)(1.001, 1.001, 1), (0, _utils.xy)(1.002, 1.002, 2)]
396
- }),
397
- container = _renderComponent33.container;
398
- expect(container.firstChild).toBeInTheDocument();
399
- });
400
- it('handles mixed positive and negative coordinates', function () {
401
- var _renderComponent34 = renderComponent({
402
- points: [(0, _utils.xy)(-5, 5, 0), (0, _utils.xy)(5, 5, 1), (0, _utils.xy)(5, -5, 2), (0, _utils.xy)(-5, -5, 3)],
403
- closed: true
404
- }),
405
- container = _renderComponent34.container;
406
- expect(container.firstChild).toBeInTheDocument();
407
- });
408
- it('handles points without explicit index', function () {
409
- var _renderComponent35 = renderComponent({
410
- points: [{
411
- x: 0,
412
- y: 0
413
- }, {
414
- x: 1,
415
- y: 1
416
- }, {
417
- x: 2,
418
- y: 0
419
- }]
420
- }),
421
- container = _renderComponent35.container;
422
- expect(container.firstChild).toBeInTheDocument();
423
- });
424
- it('handles undefined properties', function () {
425
- var _renderComponent36 = renderComponent({
426
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)],
427
- disabled: undefined,
428
- correctness: undefined,
429
- building: undefined,
430
- fill: undefined
431
- }),
432
- container = _renderComponent36.container;
433
- expect(container.firstChild).toBeInTheDocument();
434
- });
435
- });
436
- describe('integration', function () {
437
- it('renders complete closed polygon with all features', function () {
438
- var _renderComponent37 = renderComponent({
439
- points: points,
440
- closed: true,
441
- labelNode: labelNode,
442
- labelModeEnabled: true,
443
- coordinatesOnHover: true,
444
- correctness: 'correct',
445
- disabled: false,
446
- fill: '#00ff00',
447
- gssLineData: {
448
- selectedTool: 'solutionSet'
449
- },
450
- onChange: jest.fn(),
451
- onChangeProps: jest.fn(),
452
- onClosePolygon: jest.fn(),
453
- onClick: jest.fn(),
454
- onDragStart: jest.fn(),
455
- onDragStop: jest.fn()
456
- }),
457
- container = _renderComponent37.container;
458
- expect(container.firstChild).toBeInTheDocument();
459
- });
460
- it('renders building polygon', function () {
461
- var _renderComponent38 = renderComponent({
462
- points: [(0, _utils.xy)(0, 0, 0), (0, _utils.xy)(1, 1, 1)],
463
- building: true,
464
- closed: false
465
- }),
466
- container = _renderComponent38.container;
467
- expect(container.firstChild).toBeInTheDocument();
468
- });
469
- it('renders disabled polygon with labels', function () {
470
- var _renderComponent39 = renderComponent({
471
- points: points,
472
- labelNode: labelNode,
473
- disabled: true,
474
- closed: true
475
- }),
476
- container = _renderComponent39.container;
477
- expect(container.firstChild).toBeInTheDocument();
478
- });
479
- it('renders polygon in solution set mode', function () {
480
- var _renderComponent40 = renderComponent({
481
- points: points,
482
- closed: true,
483
- gssLineData: {
484
- selectedTool: 'solutionSet'
485
- }
486
- }),
487
- container = _renderComponent40.container;
488
- expect(container.firstChild).toBeInTheDocument();
489
- });
490
- it('renders polygon with incorrect correctness', function () {
491
- var _renderComponent41 = renderComponent({
492
- points: points,
493
- closed: true,
494
- correctness: 'incorrect'
495
- }),
496
- container = _renderComponent41.container;
497
- expect(container.firstChild).toBeInTheDocument();
498
- });
499
- });
500
- });
501
- //# sourceMappingURL=component.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_utils","_component","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","xyLabel","x","y","index","label","xy","describe","defaultPoints","assertBuildLines","points","closed","expected","it","concat","result","buildLines","expect","toMatchObject","from","to","swap","toEqual","onChange","onChangeProps","onClosePolygon","beforeEach","jest","fn","renderComponent","extras","defaults","className","graphProps","props","render","createElement","RawBaseComponent","labelNode","document","renderWithLabels","_renderComponent","container","firstChild","toBeInTheDocument","_renderWithLabels","_renderComponent2","_renderComponent3","_renderComponent4","_renderComponent5","_renderComponent6","_renderComponent7","_renderComponent8","_renderComponent9","_renderComponent0","disabled","_renderComponent1","_renderComponent10","correctness","_renderComponent11","_renderComponent12","building","_renderComponent13","fill","_renderWithLabels2","partialLabels","_renderComponent14","emptyLabels","_renderComponent15","_renderComponent16","_renderWithLabels3","labelModeEnabled","_renderWithLabels4","longLabels","_renderComponent17","_renderComponent18","_renderComponent19","_renderComponent20","_renderComponent21","customOnChange","_renderComponent22","customOnChangeProps","_renderComponent23","onClick","_renderComponent24","customOnClosePolygon","_renderComponent25","onDragStart","_renderComponent26","onDragStop","_renderComponent27","_renderComponent28","coordinatesOnHover","customGraphProps","_renderComponent29","gssLineData","selectedTool","_renderComponent30","_renderComponent31","_renderComponent32","_renderComponent33","_renderComponent34","_renderComponent35","_renderComponent36","undefined","_renderComponent37","_renderComponent38","_renderComponent39","_renderComponent40","_renderComponent41"],"sources":["../../../../src/tools/polygon/__tests__/component.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport { graphProps, xy } from '../../../__tests__/utils';\n\nimport { buildLines, RawBaseComponent, swap } from '../component';\n\nconst xyLabel = (x, y, index, label) => ({\n ...xy(x, y, index),\n label,\n});\n\n// Pure function tests - keep as-is\ndescribe('buildLines', () => {\n const defaultPoints = [xy(0, 0), xy(1, 1), xy(1, 0)];\n\n const assertBuildLines = (points, closed, expected) => {\n it(`builds points and lines for ${points} = ${expected}`, () => {\n const result = buildLines(points);\n expect(result).toMatchObject([\n { from: xy(0, 0, 0), to: xy(1, 1, 1) },\n { from: xy(1, 1, 1), to: xy(1, 0, 2) },\n ]);\n });\n };\n\n assertBuildLines(defaultPoints, true, []);\n});\n\ndescribe('swap', () => {\n it('swaps pairs', () => {\n const result = swap([xy(0, 0, 0), xy(1, 1, 1), xy(2, 2, 2)], xy(0, 0, 0), xy(3, 3, 0));\n expect(result).toEqual([xy(3, 3, 0), xy(1, 1, 1), xy(2, 2, 2)]);\n });\n\n it('swaps first element', () => {\n const result = swap([xy(0, 0, 0), xy(1, 1, 1)], xy(0, 0, 0), xy(5, 5, 0));\n expect(result).toEqual([xy(5, 5, 0), xy(1, 1, 1)]);\n });\n\n it('swaps last element', () => {\n const result = swap([xy(0, 0, 0), xy(1, 1, 1), xy(2, 2, 2)], xy(2, 2, 2), xy(3, 3, 2));\n expect(result).toEqual([xy(0, 0, 0), xy(1, 1, 1), xy(3, 3, 2)]);\n });\n\n it('swaps middle element', () => {\n const result = swap([xy(0, 0, 0), xy(1, 1, 1), xy(2, 2, 2)], xy(1, 1, 1), xy(3, 3, 1));\n expect(result).toEqual([xy(0, 0, 0), xy(3, 3, 1), xy(2, 2, 2)]);\n });\n});\n\n// Note: Instance method tests have been removed. Component behavior should be tested\n// through user interactions and integration tests.\ndescribe('RawBaseComponent', () => {\n let onChange;\n let onChangeProps;\n let onClosePolygon;\n\n beforeEach(() => {\n onChange = jest.fn();\n onChangeProps = jest.fn();\n onClosePolygon = jest.fn();\n });\n\n const renderComponent = (extras) => {\n const defaults = {\n className: 'className',\n onChange,\n onChangeProps,\n onClosePolygon,\n graphProps: graphProps(),\n points: [],\n };\n const props = { ...defaults, ...extras };\n return render(<RawBaseComponent {...props} />);\n };\n\n // used to test items that have labels attached to points\n const labelNode = document.createElement('foreignObject');\n const points = [xyLabel(0, 0, 0, 'A'), xyLabel(2, 2, 1, 'B'), xyLabel(0, 2, 2, 'C')];\n const renderWithLabels = (extras) =>\n renderComponent({\n labelNode: labelNode,\n points: points,\n ...extras,\n });\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with labels', () => {\n const { container } = renderWithLabels();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with multiple points', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with closed polygon', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n closed: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with single point', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with two points', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders empty polygon', () => {\n const { container } = renderComponent({ points: [] });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with negative coordinates', () => {\n const { container } = renderComponent({\n points: [xy(-5, -5, 0), xy(-1, -1, 1), xy(-3, -2, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with decimal coordinates', () => {\n const { container } = renderComponent({\n points: [xy(0.5, 0.5, 0), xy(1.5, 1.5, 1), xy(2.5, 0.5, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with large coordinate values', () => {\n const { container } = renderComponent({\n points: [xy(100, 100, 0), xy(200, 200, 1), xy(150, 250, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('states', () => {\n it('renders in disabled state', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n disabled: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders in enabled state', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n disabled: false,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with correctness correct', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n correctness: 'correct',\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with correctness incorrect', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n correctness: 'incorrect',\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with building state', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n building: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with fill property', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n fill: '#ff0000',\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('labels', () => {\n it('renders with all points labeled', () => {\n const { container } = renderWithLabels();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with partial labels', () => {\n const partialLabels = [xyLabel(0, 0, 0, 'A'), xy(2, 2, 1), xyLabel(0, 2, 2, 'C')];\n const { container } = renderComponent({\n labelNode,\n points: partialLabels,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with empty string labels', () => {\n const emptyLabels = [xyLabel(0, 0, 0, ''), xyLabel(2, 2, 1, ''), xyLabel(0, 2, 2, '')];\n const { container } = renderComponent({\n labelNode,\n points: emptyLabels,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders without labelNode', () => {\n const { container } = renderComponent({\n points: [xyLabel(0, 0, 0, 'A'), xyLabel(2, 2, 1, 'B')],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with labelModeEnabled', () => {\n const { container } = renderWithLabels({ labelModeEnabled: true });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with labelModeEnabled disabled', () => {\n const { container } = renderWithLabels({ labelModeEnabled: false });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with long labels', () => {\n const longLabels = [\n xyLabel(0, 0, 0, 'Very Long Label Text'),\n xyLabel(2, 2, 1, 'Another Long Label'),\n xyLabel(0, 2, 2, 'Yet Another Long Label'),\n ];\n const { container } = renderComponent({\n labelNode,\n points: longLabels,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('polygon shapes', () => {\n it('renders triangle', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(2, 0, 1), xy(1, 2, 2)],\n closed: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders square', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(2, 0, 1), xy(2, 2, 2), xy(0, 2, 3)],\n closed: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders pentagon', () => {\n const { container } = renderComponent({\n points: [xy(1, 0, 0), xy(2, 1, 1), xy(1.5, 2.5, 2), xy(0.5, 2.5, 3), xy(0, 1, 4)],\n closed: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders irregular polygon', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(3, 1, 1), xy(2, 4, 2), xy(-1, 3, 3)],\n closed: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('props', () => {\n it('passes onChange callback', () => {\n const customOnChange = jest.fn();\n const { container } = renderComponent({\n onChange: customOnChange,\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes onChangeProps callback', () => {\n const customOnChangeProps = jest.fn();\n const { container } = renderComponent({\n onChangeProps: customOnChangeProps,\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes onClick callback', () => {\n const onClick = jest.fn();\n const { container } = renderComponent({\n onClick,\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes onClosePolygon callback', () => {\n const customOnClosePolygon = jest.fn();\n const { container } = renderComponent({\n onClosePolygon: customOnClosePolygon,\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes onDragStart callback', () => {\n const onDragStart = jest.fn();\n const { container } = renderComponent({\n onDragStart,\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes onDragStop callback', () => {\n const onDragStop = jest.fn();\n const { container } = renderComponent({\n onDragStop,\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes coordinatesOnHover', () => {\n const { container } = renderComponent({\n coordinatesOnHover: true,\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes graphProps', () => {\n const customGraphProps = graphProps(0, 10, 0, 10);\n const { container } = renderComponent({\n graphProps: customGraphProps,\n points: [xy(5, 5, 0), xy(7, 7, 1)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('passes gssLineData', () => {\n const gssLineData = { selectedTool: 'solutionSet' };\n const { container } = renderComponent({\n gssLineData,\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 0, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('edge cases', () => {\n it('handles points with same coordinates', () => {\n const { container } = renderComponent({\n points: [xy(1, 1, 0), xy(1, 1, 1), xy(1, 1, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles collinear points', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1), xy(2, 2, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles very close points', () => {\n const { container } = renderComponent({\n points: [xy(1, 1, 0), xy(1.001, 1.001, 1), xy(1.002, 1.002, 2)],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles mixed positive and negative coordinates', () => {\n const { container } = renderComponent({\n points: [xy(-5, 5, 0), xy(5, 5, 1), xy(5, -5, 2), xy(-5, -5, 3)],\n closed: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles points without explicit index', () => {\n const { container } = renderComponent({\n points: [\n { x: 0, y: 0 },\n { x: 1, y: 1 },\n { x: 2, y: 0 },\n ],\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('handles undefined properties', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n disabled: undefined,\n correctness: undefined,\n building: undefined,\n fill: undefined,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('integration', () => {\n it('renders complete closed polygon with all features', () => {\n const { container } = renderComponent({\n points: points,\n closed: true,\n labelNode,\n labelModeEnabled: true,\n coordinatesOnHover: true,\n correctness: 'correct',\n disabled: false,\n fill: '#00ff00',\n gssLineData: { selectedTool: 'solutionSet' },\n onChange: jest.fn(),\n onChangeProps: jest.fn(),\n onClosePolygon: jest.fn(),\n onClick: jest.fn(),\n onDragStart: jest.fn(),\n onDragStop: jest.fn(),\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders building polygon', () => {\n const { container } = renderComponent({\n points: [xy(0, 0, 0), xy(1, 1, 1)],\n building: true,\n closed: false,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders disabled polygon with labels', () => {\n const { container } = renderComponent({\n points: points,\n labelNode,\n disabled: true,\n closed: true,\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders polygon in solution set mode', () => {\n const { container } = renderComponent({\n points: points,\n closed: true,\n gssLineData: { selectedTool: 'solutionSet' },\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders polygon with incorrect correctness', () => {\n const { container } = renderComponent({\n points: points,\n closed: true,\n correctness: 'incorrect',\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}