@pie-lib/graphing 4.0.14 → 4.1.0-beta.1
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 -46
- package/lib/__tests__/bg.test.js +282 -0
- package/lib/__tests__/bg.test.js.map +1 -0
- package/lib/__tests__/coordinates-label.test.js +276 -0
- package/lib/__tests__/coordinates-label.test.js.map +1 -0
- package/lib/__tests__/graph-with-controls.test.js +275 -0
- package/lib/__tests__/graph-with-controls.test.js.map +1 -0
- package/lib/__tests__/graph.test.js +927 -0
- package/lib/__tests__/graph.test.js.map +1 -0
- package/lib/__tests__/grid-setup.test.js +729 -0
- package/lib/__tests__/grid-setup.test.js.map +1 -0
- package/lib/__tests__/grid.test.js +29 -0
- package/lib/__tests__/grid.test.js.map +1 -0
- package/lib/__tests__/key-legend.test.js +321 -0
- package/lib/__tests__/key-legend.test.js.map +1 -0
- package/lib/__tests__/label-svg-icon.test.js +373 -0
- package/lib/__tests__/label-svg-icon.test.js.map +1 -0
- package/lib/__tests__/labels.test.js +61 -0
- package/lib/__tests__/labels.test.js.map +1 -0
- package/lib/__tests__/mark-label.test.js +133 -0
- package/lib/__tests__/mark-label.test.js.map +1 -0
- package/lib/__tests__/toggle-bar.test.js +197 -0
- package/lib/__tests__/toggle-bar.test.js.map +1 -0
- package/lib/__tests__/tool-menu.test.js +151 -0
- package/lib/__tests__/tool-menu.test.js.map +1 -0
- package/lib/__tests__/undo-redo.test.js +31 -0
- package/lib/__tests__/undo-redo.test.js.map +1 -0
- package/lib/__tests__/use-debounce.test.js +24 -0
- package/lib/__tests__/use-debounce.test.js.map +1 -0
- package/lib/__tests__/utils.js +70 -0
- package/lib/__tests__/utils.js.map +1 -0
- package/lib/__tests__/utils.test.js +123 -0
- package/lib/__tests__/utils.test.js.map +1 -0
- package/lib/axis/__tests__/arrow.test.js +60 -0
- package/lib/axis/__tests__/arrow.test.js.map +1 -0
- package/lib/axis/__tests__/axes.test.js +195 -0
- package/lib/axis/__tests__/axes.test.js.map +1 -0
- package/lib/container/__tests__/actions.test.js +108 -0
- package/lib/container/__tests__/actions.test.js.map +1 -0
- package/lib/container/__tests__/index.test.js +503 -0
- package/lib/container/__tests__/index.test.js.map +1 -0
- package/lib/container/__tests__/marks.test.js +259 -0
- package/lib/container/__tests__/marks.test.js.map +1 -0
- package/lib/container/__tests__/middleware.test.js +244 -0
- package/lib/container/__tests__/middleware.test.js.map +1 -0
- package/lib/container/__tests__/reducer.test.js +450 -0
- package/lib/container/__tests__/reducer.test.js.map +1 -0
- package/lib/tools/absolute/__tests__/component.test.js +65 -0
- package/lib/tools/absolute/__tests__/component.test.js.map +1 -0
- package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
- package/lib/tools/circle/__tests__/bg-circle.test.js.map +1 -0
- package/lib/tools/circle/__tests__/component.test.js +615 -0
- package/lib/tools/circle/__tests__/component.test.js.map +1 -0
- package/lib/tools/circle/__tests__/index.test.js +576 -0
- package/lib/tools/circle/__tests__/index.test.js.map +1 -0
- package/lib/tools/exponential/__tests__/component.test.js +64 -0
- package/lib/tools/exponential/__tests__/component.test.js.map +1 -0
- package/lib/tools/exponential/__tests__/index.test.js +828 -0
- package/lib/tools/exponential/__tests__/index.test.js.map +1 -0
- package/lib/tools/line/__tests__/component.test.js +45 -0
- package/lib/tools/line/__tests__/component.test.js.map +1 -0
- package/lib/tools/parabola/__tests__/component.test.js +64 -0
- package/lib/tools/parabola/__tests__/component.test.js.map +1 -0
- package/lib/tools/parabola/__tests__/index.test.js +564 -0
- package/lib/tools/parabola/__tests__/index.test.js.map +1 -0
- package/lib/tools/point/__tests__/component.test.js +434 -0
- package/lib/tools/point/__tests__/component.test.js.map +1 -0
- package/lib/tools/point/__tests__/index.test.js +262 -0
- package/lib/tools/point/__tests__/index.test.js.map +1 -0
- package/lib/tools/polygon/__tests__/component.test.js +485 -0
- package/lib/tools/polygon/__tests__/component.test.js.map +1 -0
- package/lib/tools/polygon/__tests__/index.test.js +303 -0
- package/lib/tools/polygon/__tests__/index.test.js.map +1 -0
- package/lib/tools/polygon/__tests__/line.test.js +50 -0
- package/lib/tools/polygon/__tests__/line.test.js.map +1 -0
- package/lib/tools/polygon/__tests__/polygon.test.js +85 -0
- package/lib/tools/polygon/__tests__/polygon.test.js.map +1 -0
- package/lib/tools/ray/__tests__/component.test.js +35 -0
- package/lib/tools/ray/__tests__/component.test.js.map +1 -0
- package/lib/tools/segment/__tests__/component.test.js +35 -0
- package/lib/tools/segment/__tests__/component.test.js.map +1 -0
- package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
- package/lib/tools/shared/__tests__/arrow-head.test.js.map +1 -0
- package/lib/tools/shared/line/__tests__/index.test.js +124 -0
- package/lib/tools/shared/line/__tests__/index.test.js.map +1 -0
- package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
- package/lib/tools/shared/line/__tests__/line-path.test.js.map +1 -0
- package/lib/tools/shared/line/__tests__/with-root-edge.test.js +90 -0
- package/lib/tools/shared/line/__tests__/with-root-edge.test.js.map +1 -0
- package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
- package/lib/tools/shared/point/__tests__/arrow-point.test.js.map +1 -0
- package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
- package/lib/tools/shared/point/__tests__/base-point.test.js.map +1 -0
- package/lib/tools/sine/__tests__/component.test.js +72 -0
- package/lib/tools/sine/__tests__/component.test.js.map +1 -0
- package/lib/tools/vector/__tests__/component.test.js +32 -0
- package/lib/tools/vector/__tests__/component.test.js.map +1 -0
- package/package.json +6 -6
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
5
|
+
var _index = require("../index");
|
|
6
|
+
var _component = _interopRequireDefault(require("../component"));
|
|
7
|
+
var xy = function xy(x, y) {
|
|
8
|
+
return {
|
|
9
|
+
x: x,
|
|
10
|
+
y: y
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Test suite for polygon tool
|
|
16
|
+
*
|
|
17
|
+
* Note: equalPoints() uses roundNumber() which rounds to 4 decimal places.
|
|
18
|
+
* - Values like 1.0001 and 1.0002 are considered DIFFERENT (round to 1.0001 and 1.0002)
|
|
19
|
+
* - Values like 1.00001 and 1.00002 are considered EQUAL (both round to 1.0000)
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
describe('polygon', function () {
|
|
23
|
+
describe('addPointToArray', function () {
|
|
24
|
+
var assertAddPoint = function assertAddPoint(point, arr, expected) {
|
|
25
|
+
it("returns expected result when adding point to array", function () {
|
|
26
|
+
var result = (0, _index.addPointToArray)(point, arr);
|
|
27
|
+
expect(result).toEqual(expected);
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
assertAddPoint(xy(0, 0), [], {
|
|
31
|
+
closed: false,
|
|
32
|
+
points: [xy(0, 0)]
|
|
33
|
+
});
|
|
34
|
+
assertAddPoint(xy(0, 0), [xy(0, 0)], {
|
|
35
|
+
closed: false,
|
|
36
|
+
points: [xy(0, 0)]
|
|
37
|
+
});
|
|
38
|
+
assertAddPoint(xy(1, 1), [xy(0, 0)], {
|
|
39
|
+
closed: false,
|
|
40
|
+
points: [xy(0, 0), xy(1, 1)]
|
|
41
|
+
});
|
|
42
|
+
it('handles undefined array', function () {
|
|
43
|
+
var result = (0, _index.addPointToArray)(xy(1, 2), undefined);
|
|
44
|
+
expect(result).toEqual({
|
|
45
|
+
points: [xy(1, 2)],
|
|
46
|
+
closed: false
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
it('handles null array', function () {
|
|
50
|
+
var result = (0, _index.addPointToArray)(xy(1, 2), null);
|
|
51
|
+
expect(result).toEqual({
|
|
52
|
+
points: [xy(1, 2)],
|
|
53
|
+
closed: false
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
it('closes polygon when clicking first point', function () {
|
|
57
|
+
var firstPoint = xy(1, 2);
|
|
58
|
+
var points = [firstPoint, xy(3, 4), xy(5, 6)];
|
|
59
|
+
var result = (0, _index.addPointToArray)(firstPoint, points);
|
|
60
|
+
expect(result).toEqual({
|
|
61
|
+
points: points,
|
|
62
|
+
closed: true
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
it('does not add duplicate point in middle', function () {
|
|
66
|
+
var points = [xy(1, 2), xy(3, 4), xy(5, 6)];
|
|
67
|
+
var result = (0, _index.addPointToArray)(points[1], points);
|
|
68
|
+
expect(result).toEqual({
|
|
69
|
+
points: points,
|
|
70
|
+
closed: false
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
it('adds new point to array with 2+ points', function () {
|
|
74
|
+
var points = [xy(0, 0), xy(1, 1)];
|
|
75
|
+
var newPoint = xy(2, 2);
|
|
76
|
+
var result = (0, _index.addPointToArray)(newPoint, points);
|
|
77
|
+
expect(result).toEqual({
|
|
78
|
+
points: [].concat(points, [newPoint]),
|
|
79
|
+
closed: false
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
it('handles points within rounding tolerance', function () {
|
|
83
|
+
// roundNumber rounds to 4 decimal places
|
|
84
|
+
// 1.0001 and 1.0002 round to different values after toFixed(4)
|
|
85
|
+
var firstPoint = xy(1.0001, 2.0001);
|
|
86
|
+
var closePoint = xy(1.0002, 2.0002);
|
|
87
|
+
var result = (0, _index.addPointToArray)(closePoint, [firstPoint]);
|
|
88
|
+
|
|
89
|
+
// Since they round to different values, both points are added
|
|
90
|
+
expect(result).toEqual({
|
|
91
|
+
points: [firstPoint, closePoint],
|
|
92
|
+
closed: false
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('handles points that round to exactly the same value', function () {
|
|
96
|
+
// Points that round to exactly the same value after toFixed(4)
|
|
97
|
+
var firstPoint = xy(1.0001, 2.0001);
|
|
98
|
+
var samePoint = xy(1.0001, 2.0001);
|
|
99
|
+
var result = (0, _index.addPointToArray)(samePoint, [firstPoint]);
|
|
100
|
+
|
|
101
|
+
// Since they round to the same value, point is not added
|
|
102
|
+
expect(result).toEqual({
|
|
103
|
+
points: [firstPoint],
|
|
104
|
+
closed: false
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
describe('tool', function () {
|
|
110
|
+
var t;
|
|
111
|
+
beforeEach(function () {
|
|
112
|
+
t = (0, _index.tool)();
|
|
113
|
+
});
|
|
114
|
+
describe('tool structure', function () {
|
|
115
|
+
it('creates polygon type', function () {
|
|
116
|
+
expect(t.type).toEqual('polygon');
|
|
117
|
+
});
|
|
118
|
+
it('has Component property', function () {
|
|
119
|
+
expect(t.Component).toBe(_component["default"]);
|
|
120
|
+
});
|
|
121
|
+
it('has complete method', function () {
|
|
122
|
+
expect((0, _typeof2["default"])(t.complete)).toBe('function');
|
|
123
|
+
});
|
|
124
|
+
it('has addPoint method', function () {
|
|
125
|
+
expect((0, _typeof2["default"])(t.addPoint)).toBe('function');
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe('complete', function () {
|
|
129
|
+
it('closes polygon', function () {
|
|
130
|
+
expect(t.complete()).toEqual({
|
|
131
|
+
building: false,
|
|
132
|
+
closed: true
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
it('marks polygon as not building', function () {
|
|
136
|
+
var mark = {
|
|
137
|
+
type: 'polygon',
|
|
138
|
+
points: [xy(1, 2), xy(3, 4)],
|
|
139
|
+
closed: false,
|
|
140
|
+
building: true
|
|
141
|
+
};
|
|
142
|
+
var result = t.complete(null, mark);
|
|
143
|
+
expect(result.building).toBe(false);
|
|
144
|
+
});
|
|
145
|
+
it('marks polygon as closed', function () {
|
|
146
|
+
var mark = {
|
|
147
|
+
type: 'polygon',
|
|
148
|
+
points: [xy(1, 2), xy(3, 4)],
|
|
149
|
+
closed: false,
|
|
150
|
+
building: true
|
|
151
|
+
};
|
|
152
|
+
var result = t.complete(null, mark);
|
|
153
|
+
expect(result.closed).toBe(true);
|
|
154
|
+
});
|
|
155
|
+
it('preserves other mark properties', function () {
|
|
156
|
+
var mark = {
|
|
157
|
+
type: 'polygon',
|
|
158
|
+
points: [xy(1, 2)],
|
|
159
|
+
closed: false,
|
|
160
|
+
building: true,
|
|
161
|
+
label: 'Test',
|
|
162
|
+
color: 'red'
|
|
163
|
+
};
|
|
164
|
+
var result = t.complete(null, mark);
|
|
165
|
+
expect(result.label).toBe('Test');
|
|
166
|
+
expect(result.color).toBe('red');
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
describe('addPoint', function () {
|
|
170
|
+
it('creates new polygon with first point', function () {
|
|
171
|
+
var mark = t.addPoint({
|
|
172
|
+
x: 0,
|
|
173
|
+
y: 0
|
|
174
|
+
});
|
|
175
|
+
expect(mark).toEqual({
|
|
176
|
+
type: 'polygon',
|
|
177
|
+
points: [{
|
|
178
|
+
x: 0,
|
|
179
|
+
y: 0
|
|
180
|
+
}],
|
|
181
|
+
closed: false,
|
|
182
|
+
building: true
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
it('adds second point to existing mark', function () {
|
|
186
|
+
var mark = t.addPoint({
|
|
187
|
+
x: 0,
|
|
188
|
+
y: 0
|
|
189
|
+
}, {
|
|
190
|
+
points: [{
|
|
191
|
+
x: 1,
|
|
192
|
+
y: 1
|
|
193
|
+
}]
|
|
194
|
+
});
|
|
195
|
+
expect(mark).toEqual({
|
|
196
|
+
building: true,
|
|
197
|
+
closed: false,
|
|
198
|
+
points: [{
|
|
199
|
+
x: 1,
|
|
200
|
+
y: 1
|
|
201
|
+
}, {
|
|
202
|
+
x: 0,
|
|
203
|
+
y: 0
|
|
204
|
+
}]
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
it('creates mark with building flag true', function () {
|
|
208
|
+
var mark = t.addPoint(xy(1, 2));
|
|
209
|
+
expect(mark.building).toBe(true);
|
|
210
|
+
});
|
|
211
|
+
it('creates mark with closed flag false', function () {
|
|
212
|
+
var mark = t.addPoint(xy(1, 2));
|
|
213
|
+
expect(mark.closed).toBe(false);
|
|
214
|
+
});
|
|
215
|
+
it('adds multiple points sequentially', function () {
|
|
216
|
+
var mark = t.addPoint(xy(0, 0));
|
|
217
|
+
mark = t.addPoint(xy(1, 1), mark);
|
|
218
|
+
mark = t.addPoint(xy(2, 2), mark);
|
|
219
|
+
expect(mark.points).toHaveLength(3);
|
|
220
|
+
expect(mark.points).toEqual([xy(0, 0), xy(1, 1), xy(2, 2)]);
|
|
221
|
+
});
|
|
222
|
+
it('closes polygon when clicking first point', function () {
|
|
223
|
+
var firstPoint = xy(1, 2);
|
|
224
|
+
var mark = t.addPoint(firstPoint);
|
|
225
|
+
mark = t.addPoint(xy(3, 4), mark);
|
|
226
|
+
mark = t.addPoint(xy(5, 6), mark);
|
|
227
|
+
mark = t.addPoint(firstPoint, mark);
|
|
228
|
+
expect(mark.closed).toBe(true);
|
|
229
|
+
expect(mark.building).toBe(false);
|
|
230
|
+
});
|
|
231
|
+
it('does not add duplicate points', function () {
|
|
232
|
+
var point = xy(1, 2);
|
|
233
|
+
var mark = t.addPoint(point);
|
|
234
|
+
mark = t.addPoint(xy(3, 4), mark);
|
|
235
|
+
// Adding the first point again would close it
|
|
236
|
+
// Let's add it one more time after closing to test duplicate handling
|
|
237
|
+
mark = t.addPoint(point, mark);
|
|
238
|
+
|
|
239
|
+
// When we add the first point to a polygon with 2+ points, it closes
|
|
240
|
+
expect(mark.points).toHaveLength(2);
|
|
241
|
+
expect(mark.closed).toBe(true);
|
|
242
|
+
expect(mark.building).toBe(false);
|
|
243
|
+
});
|
|
244
|
+
it('does not add duplicate non-first points', function () {
|
|
245
|
+
var firstPoint = xy(1, 2);
|
|
246
|
+
var secondPoint = xy(3, 4);
|
|
247
|
+
var mark = t.addPoint(firstPoint);
|
|
248
|
+
mark = t.addPoint(secondPoint, mark);
|
|
249
|
+
mark = t.addPoint(xy(5, 6), mark);
|
|
250
|
+
// Try to add the second point again (not the first point)
|
|
251
|
+
mark = t.addPoint(secondPoint, mark);
|
|
252
|
+
|
|
253
|
+
// Should not add the duplicate point
|
|
254
|
+
expect(mark.points).toHaveLength(3);
|
|
255
|
+
expect(mark.points).toEqual([firstPoint, secondPoint, xy(5, 6)]);
|
|
256
|
+
expect(mark.closed).toBe(false);
|
|
257
|
+
});
|
|
258
|
+
it('preserves mark properties when adding points', function () {
|
|
259
|
+
var mark = {
|
|
260
|
+
type: 'polygon',
|
|
261
|
+
points: [xy(1, 2)],
|
|
262
|
+
closed: false,
|
|
263
|
+
building: true,
|
|
264
|
+
label: 'My Shape'
|
|
265
|
+
};
|
|
266
|
+
var result = t.addPoint(xy(3, 4), mark);
|
|
267
|
+
expect(result.label).toBe('My Shape');
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
describe('integration scenarios', function () {
|
|
271
|
+
it('creates complete triangle', function () {
|
|
272
|
+
var p1 = xy(0, 0);
|
|
273
|
+
var p2 = xy(1, 0);
|
|
274
|
+
var p3 = xy(0.5, 1);
|
|
275
|
+
var mark = t.addPoint(p1);
|
|
276
|
+
mark = t.addPoint(p2, mark);
|
|
277
|
+
mark = t.addPoint(p3, mark);
|
|
278
|
+
mark = t.addPoint(p1, mark);
|
|
279
|
+
expect(mark.points).toEqual([p1, p2, p3]);
|
|
280
|
+
expect(mark.closed).toBe(true);
|
|
281
|
+
expect(mark.building).toBe(false);
|
|
282
|
+
});
|
|
283
|
+
it('creates complete square', function () {
|
|
284
|
+
var points = [xy(0, 0), xy(1, 0), xy(1, 1), xy(0, 1)];
|
|
285
|
+
var mark = t.addPoint(points[0]);
|
|
286
|
+
points.slice(1).forEach(function (p) {
|
|
287
|
+
mark = t.addPoint(p, mark);
|
|
288
|
+
});
|
|
289
|
+
mark = t.addPoint(points[0], mark);
|
|
290
|
+
expect(mark.points).toEqual(points);
|
|
291
|
+
expect(mark.closed).toBe(true);
|
|
292
|
+
});
|
|
293
|
+
it('can force complete without closing', function () {
|
|
294
|
+
var mark = t.addPoint(xy(0, 0));
|
|
295
|
+
mark = t.addPoint(xy(1, 1), mark);
|
|
296
|
+
mark = t.complete(null, mark);
|
|
297
|
+
expect(mark.closed).toBe(true);
|
|
298
|
+
expect(mark.building).toBe(false);
|
|
299
|
+
expect(mark.points).toHaveLength(2);
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","names":["_index","require","_component","_interopRequireDefault","xy","x","y","describe","assertAddPoint","point","arr","expected","it","result","addPointToArray","expect","toEqual","closed","points","undefined","firstPoint","newPoint","concat","closePoint","samePoint","t","beforeEach","tool","type","Component","toBe","Polygon","_typeof2","complete","addPoint","building","mark","label","color","toHaveLength","secondPoint","p1","p2","p3","slice","forEach","p"],"sources":["../../../../src/tools/polygon/__tests__/index.test.js"],"sourcesContent":["import { addPointToArray, tool } from '../index';\nimport Polygon from '../component';\n\nconst xy = (x, y) => ({ x, y });\n\n/**\n * Test suite for polygon tool\n *\n * Note: equalPoints() uses roundNumber() which rounds to 4 decimal places.\n * - Values like 1.0001 and 1.0002 are considered DIFFERENT (round to 1.0001 and 1.0002)\n * - Values like 1.00001 and 1.00002 are considered EQUAL (both round to 1.0000)\n */\n\ndescribe('polygon', () => {\n describe('addPointToArray', () => {\n const assertAddPoint = (point, arr, expected) => {\n it(`returns expected result when adding point to array`, () => {\n const result = addPointToArray(point, arr);\n expect(result).toEqual(expected);\n });\n };\n\n assertAddPoint(xy(0, 0), [], { closed: false, points: [xy(0, 0)] });\n assertAddPoint(xy(0, 0), [xy(0, 0)], { closed: false, points: [xy(0, 0)] });\n assertAddPoint(xy(1, 1), [xy(0, 0)], {\n closed: false,\n points: [xy(0, 0), xy(1, 1)],\n });\n\n it('handles undefined array', () => {\n const result = addPointToArray(xy(1, 2), undefined);\n expect(result).toEqual({ points: [xy(1, 2)], closed: false });\n });\n\n it('handles null array', () => {\n const result = addPointToArray(xy(1, 2), null);\n expect(result).toEqual({ points: [xy(1, 2)], closed: false });\n });\n\n it('closes polygon when clicking first point', () => {\n const firstPoint = xy(1, 2);\n const points = [firstPoint, xy(3, 4), xy(5, 6)];\n const result = addPointToArray(firstPoint, points);\n\n expect(result).toEqual({ points, closed: true });\n });\n\n it('does not add duplicate point in middle', () => {\n const points = [xy(1, 2), xy(3, 4), xy(5, 6)];\n const result = addPointToArray(points[1], points);\n\n expect(result).toEqual({ points, closed: false });\n });\n\n it('adds new point to array with 2+ points', () => {\n const points = [xy(0, 0), xy(1, 1)];\n const newPoint = xy(2, 2);\n const result = addPointToArray(newPoint, points);\n\n expect(result).toEqual({\n points: [...points, newPoint],\n closed: false,\n });\n });\n\n it('handles points within rounding tolerance', () => {\n // roundNumber rounds to 4 decimal places\n // 1.0001 and 1.0002 round to different values after toFixed(4)\n const firstPoint = xy(1.0001, 2.0001);\n const closePoint = xy(1.0002, 2.0002);\n const result = addPointToArray(closePoint, [firstPoint]);\n\n // Since they round to different values, both points are added\n expect(result).toEqual({ points: [firstPoint, closePoint], closed: false });\n });\n\n it('handles points that round to exactly the same value', () => {\n // Points that round to exactly the same value after toFixed(4)\n const firstPoint = xy(1.0001, 2.0001);\n const samePoint = xy(1.0001, 2.0001);\n const result = addPointToArray(samePoint, [firstPoint]);\n\n // Since they round to the same value, point is not added\n expect(result).toEqual({ points: [firstPoint], closed: false });\n });\n });\n});\n\ndescribe('tool', () => {\n let t;\n\n beforeEach(() => {\n t = tool();\n });\n\n describe('tool structure', () => {\n it('creates polygon type', () => {\n expect(t.type).toEqual('polygon');\n });\n\n it('has Component property', () => {\n expect(t.Component).toBe(Polygon);\n });\n\n it('has complete method', () => {\n expect(typeof t.complete).toBe('function');\n });\n\n it('has addPoint method', () => {\n expect(typeof t.addPoint).toBe('function');\n });\n });\n\n describe('complete', () => {\n it('closes polygon', () => {\n expect(t.complete()).toEqual({ building: false, closed: true });\n });\n\n it('marks polygon as not building', () => {\n const mark = {\n type: 'polygon',\n points: [xy(1, 2), xy(3, 4)],\n closed: false,\n building: true,\n };\n const result = t.complete(null, mark);\n\n expect(result.building).toBe(false);\n });\n\n it('marks polygon as closed', () => {\n const mark = {\n type: 'polygon',\n points: [xy(1, 2), xy(3, 4)],\n closed: false,\n building: true,\n };\n const result = t.complete(null, mark);\n\n expect(result.closed).toBe(true);\n });\n\n it('preserves other mark properties', () => {\n const mark = {\n type: 'polygon',\n points: [xy(1, 2)],\n closed: false,\n building: true,\n label: 'Test',\n color: 'red',\n };\n const result = t.complete(null, mark);\n\n expect(result.label).toBe('Test');\n expect(result.color).toBe('red');\n });\n });\n\n describe('addPoint', () => {\n it('creates new polygon with first point', () => {\n const mark = t.addPoint({ x: 0, y: 0 });\n expect(mark).toEqual({\n type: 'polygon',\n points: [{ x: 0, y: 0 }],\n closed: false,\n building: true,\n });\n });\n\n it('adds second point to existing mark', () => {\n const mark = t.addPoint({ x: 0, y: 0 }, { points: [{ x: 1, y: 1 }] });\n expect(mark).toEqual({\n building: true,\n closed: false,\n points: [\n { x: 1, y: 1 },\n { x: 0, y: 0 },\n ],\n });\n });\n\n it('creates mark with building flag true', () => {\n const mark = t.addPoint(xy(1, 2));\n expect(mark.building).toBe(true);\n });\n\n it('creates mark with closed flag false', () => {\n const mark = t.addPoint(xy(1, 2));\n expect(mark.closed).toBe(false);\n });\n\n it('adds multiple points sequentially', () => {\n let mark = t.addPoint(xy(0, 0));\n mark = t.addPoint(xy(1, 1), mark);\n mark = t.addPoint(xy(2, 2), mark);\n\n expect(mark.points).toHaveLength(3);\n expect(mark.points).toEqual([xy(0, 0), xy(1, 1), xy(2, 2)]);\n });\n\n it('closes polygon when clicking first point', () => {\n const firstPoint = xy(1, 2);\n let mark = t.addPoint(firstPoint);\n mark = t.addPoint(xy(3, 4), mark);\n mark = t.addPoint(xy(5, 6), mark);\n mark = t.addPoint(firstPoint, mark);\n\n expect(mark.closed).toBe(true);\n expect(mark.building).toBe(false);\n });\n\n it('does not add duplicate points', () => {\n const point = xy(1, 2);\n let mark = t.addPoint(point);\n mark = t.addPoint(xy(3, 4), mark);\n // Adding the first point again would close it\n // Let's add it one more time after closing to test duplicate handling\n mark = t.addPoint(point, mark);\n\n // When we add the first point to a polygon with 2+ points, it closes\n expect(mark.points).toHaveLength(2);\n expect(mark.closed).toBe(true);\n expect(mark.building).toBe(false);\n });\n\n it('does not add duplicate non-first points', () => {\n const firstPoint = xy(1, 2);\n const secondPoint = xy(3, 4);\n let mark = t.addPoint(firstPoint);\n mark = t.addPoint(secondPoint, mark);\n mark = t.addPoint(xy(5, 6), mark);\n // Try to add the second point again (not the first point)\n mark = t.addPoint(secondPoint, mark);\n\n // Should not add the duplicate point\n expect(mark.points).toHaveLength(3);\n expect(mark.points).toEqual([firstPoint, secondPoint, xy(5, 6)]);\n expect(mark.closed).toBe(false);\n });\n\n it('preserves mark properties when adding points', () => {\n const mark = {\n type: 'polygon',\n points: [xy(1, 2)],\n closed: false,\n building: true,\n label: 'My Shape',\n };\n\n const result = t.addPoint(xy(3, 4), mark);\n expect(result.label).toBe('My Shape');\n });\n });\n\n describe('integration scenarios', () => {\n it('creates complete triangle', () => {\n const p1 = xy(0, 0);\n const p2 = xy(1, 0);\n const p3 = xy(0.5, 1);\n\n let mark = t.addPoint(p1);\n mark = t.addPoint(p2, mark);\n mark = t.addPoint(p3, mark);\n mark = t.addPoint(p1, mark);\n\n expect(mark.points).toEqual([p1, p2, p3]);\n expect(mark.closed).toBe(true);\n expect(mark.building).toBe(false);\n });\n\n it('creates complete square', () => {\n const points = [xy(0, 0), xy(1, 0), xy(1, 1), xy(0, 1)];\n\n let mark = t.addPoint(points[0]);\n points.slice(1).forEach((p) => {\n mark = t.addPoint(p, mark);\n });\n mark = t.addPoint(points[0], mark);\n\n expect(mark.points).toEqual(points);\n expect(mark.closed).toBe(true);\n });\n\n it('can force complete without closing', () => {\n let mark = t.addPoint(xy(0, 0));\n mark = t.addPoint(xy(1, 1), mark);\n mark = t.complete(null, mark);\n\n expect(mark.closed).toBe(true);\n expect(mark.building).toBe(false);\n expect(mark.points).toHaveLength(2);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 _line = require("../line");
|
|
8
|
+
var _utils = require("../../../__tests__/utils");
|
|
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
|
+
describe('Line', function () {
|
|
12
|
+
var renderComponent = function renderComponent(extras) {
|
|
13
|
+
var defaults = {
|
|
14
|
+
classes: {},
|
|
15
|
+
className: 'className',
|
|
16
|
+
graphProps: (0, _utils.graphProps)()
|
|
17
|
+
};
|
|
18
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
19
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_line.Line, props));
|
|
20
|
+
};
|
|
21
|
+
describe('rendering', function () {
|
|
22
|
+
it('renders without crashing', function () {
|
|
23
|
+
var _renderComponent = renderComponent(),
|
|
24
|
+
container = _renderComponent.container;
|
|
25
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
26
|
+
});
|
|
27
|
+
it('renders with from and to points', function () {
|
|
28
|
+
var _renderComponent2 = renderComponent({
|
|
29
|
+
from: {
|
|
30
|
+
x: 0,
|
|
31
|
+
y: 0
|
|
32
|
+
},
|
|
33
|
+
to: {
|
|
34
|
+
x: 5,
|
|
35
|
+
y: 5
|
|
36
|
+
}
|
|
37
|
+
}),
|
|
38
|
+
container = _renderComponent2.container;
|
|
39
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
40
|
+
});
|
|
41
|
+
it('renders with className', function () {
|
|
42
|
+
var _renderComponent3 = renderComponent({
|
|
43
|
+
className: 'custom-line'
|
|
44
|
+
}),
|
|
45
|
+
container = _renderComponent3.container;
|
|
46
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=line.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_line","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","renderComponent","extras","defaults","classes","className","graphProps","props","render","createElement","Line","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","_renderComponent2","from","x","y","to","_renderComponent3"],"sources":["../../../../src/tools/polygon/__tests__/line.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport { Line } from '../line';\nimport { graphProps } from '../../../__tests__/utils';\n\ndescribe('Line', () => {\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n graphProps: graphProps(),\n };\n const props = { ...defaults, ...extras };\n return render(<Line {...props} />);\n };\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with from and to points', () => {\n const { container } = renderComponent({\n from: { x: 0, y: 0 },\n to: { x: 5, y: 5 },\n });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with className', () => {\n const { container } = renderComponent({ className: 'custom-line' });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
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 _polygon = require("../polygon");
|
|
8
|
+
var _utils = require("../../../__tests__/utils");
|
|
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 xy = function xy(x, y) {
|
|
12
|
+
return {
|
|
13
|
+
x: x,
|
|
14
|
+
y: y
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
describe('Polygon', function () {
|
|
18
|
+
var renderComponent = function renderComponent(extras) {
|
|
19
|
+
var defaults = {
|
|
20
|
+
classes: {},
|
|
21
|
+
className: 'className',
|
|
22
|
+
graphProps: (0, _utils.graphProps)(),
|
|
23
|
+
closed: false
|
|
24
|
+
};
|
|
25
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
26
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_polygon.Polygon, props));
|
|
27
|
+
};
|
|
28
|
+
describe('rendering', function () {
|
|
29
|
+
it('renders without crashing', function () {
|
|
30
|
+
var _renderComponent = renderComponent({
|
|
31
|
+
points: [{
|
|
32
|
+
x: 1,
|
|
33
|
+
y: 1
|
|
34
|
+
}]
|
|
35
|
+
}),
|
|
36
|
+
container = _renderComponent.container;
|
|
37
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
38
|
+
});
|
|
39
|
+
it('renders multiple points', function () {
|
|
40
|
+
var points = [xy(0, 0), xy(1, 1), xy(2, 0)];
|
|
41
|
+
var _renderComponent2 = renderComponent({
|
|
42
|
+
points: points
|
|
43
|
+
}),
|
|
44
|
+
container = _renderComponent2.container;
|
|
45
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
46
|
+
});
|
|
47
|
+
it('renders closed polygon', function () {
|
|
48
|
+
var points = [xy(0, 0), xy(1, 1), xy(2, 0)];
|
|
49
|
+
var _renderComponent3 = renderComponent({
|
|
50
|
+
points: points,
|
|
51
|
+
closed: true
|
|
52
|
+
}),
|
|
53
|
+
container = _renderComponent3.container;
|
|
54
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
55
|
+
});
|
|
56
|
+
it('renders open polygon', function () {
|
|
57
|
+
var points = [xy(0, 0), xy(1, 1)];
|
|
58
|
+
var _renderComponent4 = renderComponent({
|
|
59
|
+
points: points,
|
|
60
|
+
closed: false
|
|
61
|
+
}),
|
|
62
|
+
container = _renderComponent4.container;
|
|
63
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('getPointString', function () {
|
|
68
|
+
var assertString = function assertString(arr, expected) {
|
|
69
|
+
it('creates: ', function () {
|
|
70
|
+
var result = (0, _polygon.getPointString)(arr, {
|
|
71
|
+
x: jest.fn(function (n) {
|
|
72
|
+
return n;
|
|
73
|
+
}),
|
|
74
|
+
y: jest.fn(function (n) {
|
|
75
|
+
return n;
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
expect(result).toEqual(expected);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
assertString([xy(1, 1)], '1,1');
|
|
82
|
+
assertString([xy(1, 1), xy(2, 1)], '1,1 2,1');
|
|
83
|
+
assertString([xy(1, 1), xy(2, 1), xy(4, 4)], '1,1 2,1 4,4');
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=polygon.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polygon.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_polygon","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","xy","x","y","describe","renderComponent","extras","defaults","classes","className","graphProps","closed","props","render","createElement","Polygon","it","_renderComponent","points","container","expect","firstChild","toBeInTheDocument","_renderComponent2","_renderComponent3","_renderComponent4","assertString","arr","expected","result","getPointString","jest","fn","n","toEqual"],"sources":["../../../../src/tools/polygon/__tests__/polygon.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport { getPointString, Polygon } from '../polygon';\nimport { graphProps } from '../../../__tests__/utils';\n\nconst xy = (x, y) => ({ x, y });\n\ndescribe('Polygon', () => {\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n graphProps: graphProps(),\n closed: false,\n };\n const props = { ...defaults, ...extras };\n return render(<Polygon {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent({ points: [{ x: 1, y: 1 }] });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders multiple points', () => {\n const points = [xy(0, 0), xy(1, 1), xy(2, 0)];\n const { container } = renderComponent({ points });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders closed polygon', () => {\n const points = [xy(0, 0), xy(1, 1), xy(2, 0)];\n const { container } = renderComponent({ points, closed: true });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders open polygon', () => {\n const points = [xy(0, 0), xy(1, 1)];\n const { container } = renderComponent({ points, closed: false });\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n\ndescribe('getPointString', () => {\n const assertString = (arr, expected) => {\n it('creates: ', () => {\n const result = getPointString(arr, {\n x: jest.fn((n) => n),\n y: jest.fn((n) => n),\n });\n\n expect(result).toEqual(expected);\n });\n };\n\n assertString([xy(1, 1)], '1,1');\n assertString([xy(1, 1), xy(2, 1)], '1,1 2,1');\n assertString([xy(1, 1), xy(2, 1), xy(4, 4)], '1,1 2,1 4,4');\n});\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAsD,SAAAK,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEtD,IAAMoB,EAAE,GAAG,SAALA,EAAEA,CAAIC,CAAC,EAAEC,CAAC;EAAA,OAAM;IAAED,CAAC,EAADA,CAAC;IAAEC,CAAC,EAADA;EAAE,CAAC;AAAA,CAAC;AAE/BC,QAAQ,CAAC,SAAS,EAAE,YAAM;EACxB,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAK;IAClC,IAAMC,QAAQ,GAAG;MACfC,OAAO,EAAE,CAAC,CAAC;MACXC,SAAS,EAAE,WAAW;MACtBC,UAAU,EAAE,IAAAA,iBAAU,EAAC,CAAC;MACxBC,MAAM,EAAE;IACV,CAAC;IACD,IAAMC,KAAK,GAAAnB,aAAA,CAAAA,aAAA,KAAQc,QAAQ,GAAKD,MAAM,CAAE;IACxC,OAAO,IAAAO,iBAAM,eAACrC,MAAA,YAAAsC,aAAA,CAACpC,QAAA,CAAAqC,OAAO,EAAKH,KAAQ,CAAC,CAAC;EACvC,CAAC;EAEDR,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BY,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnC,IAAAC,gBAAA,GAAsBZ,eAAe,CAAC;UAAEa,MAAM,EAAE,CAAC;YAAEhB,CAAC,EAAE,CAAC;YAAEC,CAAC,EAAE;UAAE,CAAC;QAAE,CAAC,CAAC;QAA3DgB,SAAS,GAAAF,gBAAA,CAATE,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;IAEFN,EAAE,CAAC,yBAAyB,EAAE,YAAM;MAClC,IAAME,MAAM,GAAG,CAACjB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MAC7C,IAAAsB,iBAAA,GAAsBlB,eAAe,CAAC;UAAEa,MAAM,EAANA;QAAO,CAAC,CAAC;QAAzCC,SAAS,GAAAI,iBAAA,CAATJ,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;IAEFN,EAAE,CAAC,wBAAwB,EAAE,YAAM;MACjC,IAAME,MAAM,GAAG,CAACjB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MAC7C,IAAAuB,iBAAA,GAAsBnB,eAAe,CAAC;UAAEa,MAAM,EAANA,MAAM;UAAEP,MAAM,EAAE;QAAK,CAAC,CAAC;QAAvDQ,SAAS,GAAAK,iBAAA,CAATL,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;IAEFN,EAAE,CAAC,sBAAsB,EAAE,YAAM;MAC/B,IAAME,MAAM,GAAG,CAACjB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACnC,IAAAwB,iBAAA,GAAsBpB,eAAe,CAAC;UAAEa,MAAM,EAANA,MAAM;UAAEP,MAAM,EAAE;QAAM,CAAC,CAAC;QAAxDQ,SAAS,GAAAM,iBAAA,CAATN,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFlB,QAAQ,CAAC,gBAAgB,EAAE,YAAM;EAC/B,IAAMsB,YAAY,GAAG,SAAfA,YAAYA,CAAIC,GAAG,EAAEC,QAAQ,EAAK;IACtCZ,EAAE,CAAC,WAAW,EAAE,YAAM;MACpB,IAAMa,MAAM,GAAG,IAAAC,uBAAc,EAACH,GAAG,EAAE;QACjCzB,CAAC,EAAE6B,IAAI,CAACC,EAAE,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC;QAAA,EAAC;QACpB9B,CAAC,EAAE4B,IAAI,CAACC,EAAE,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC;QAAA;MACrB,CAAC,CAAC;MAEFb,MAAM,CAACS,MAAM,CAAC,CAACK,OAAO,CAACN,QAAQ,CAAC;IAClC,CAAC,CAAC;EACJ,CAAC;EAEDF,YAAY,CAAC,CAACzB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;EAC/ByB,YAAY,CAAC,CAACzB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;EAC7CyB,YAAY,CAAC,CAACzB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC;AAC7D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 _component = require("../component");
|
|
8
|
+
var _utils = require("../../../__tests__/utils");
|
|
9
|
+
var _plot = require("@pie-lib/plot");
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
describe('RayLine', function () {
|
|
13
|
+
var onChange = jest.fn();
|
|
14
|
+
var renderComponent = function renderComponent(extras) {
|
|
15
|
+
var defaults = {
|
|
16
|
+
classes: {},
|
|
17
|
+
className: 'className',
|
|
18
|
+
onChange: onChange,
|
|
19
|
+
markerId: '1',
|
|
20
|
+
graphProps: (0, _utils.graphProps)(),
|
|
21
|
+
from: _plot.utils.xy(0, 0),
|
|
22
|
+
to: _plot.utils.xy(1, 1)
|
|
23
|
+
};
|
|
24
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
25
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component.RayLine, props));
|
|
26
|
+
};
|
|
27
|
+
describe('rendering', function () {
|
|
28
|
+
it('renders without crashing', function () {
|
|
29
|
+
var _renderComponent = renderComponent(),
|
|
30
|
+
container = _renderComponent.container;
|
|
31
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=component.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_component","_utils","_plot","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onChange","jest","fn","renderComponent","extras","defaults","classes","className","markerId","graphProps","getGraphProps","from","utils","xy","to","props","render","createElement","RayLine","it","_renderComponent","container","expect","firstChild","toBeInTheDocument"],"sources":["../../../../src/tools/ray/__tests__/component.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport { RayLine } from '../component';\nimport { graphProps as getGraphProps } from '../../../__tests__/utils';\nimport { utils } from '@pie-lib/plot';\n\ndescribe('RayLine', () => {\n let onChange = jest.fn();\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n onChange,\n markerId: '1',\n graphProps: getGraphProps(),\n from: utils.xy(0, 0),\n to: utils.xy(1, 1),\n };\n const props = { ...defaults, ...extras };\n return render(<RayLine {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAsC,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEtCoB,QAAQ,CAAC,SAAS,EAAE,YAAM;EACxB,IAAIC,QAAQ,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACxB,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAK;IAClC,IAAMC,QAAQ,GAAG;MACfC,OAAO,EAAE,CAAC,CAAC;MACXC,SAAS,EAAE,WAAW;MACtBP,QAAQ,EAARA,QAAQ;MACRQ,QAAQ,EAAE,GAAG;MACbC,UAAU,EAAE,IAAAC,iBAAa,EAAC,CAAC;MAC3BC,IAAI,EAAEC,WAAK,CAACC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MACpBC,EAAE,EAAEF,WAAK,CAACC,EAAE,CAAC,CAAC,EAAE,CAAC;IACnB,CAAC;IACD,IAAME,KAAK,GAAAxB,aAAA,CAAAA,aAAA,KAAQc,QAAQ,GAAKD,MAAM,CAAE;IACxC,OAAO,IAAAY,iBAAM,eAAC3C,MAAA,YAAA4C,aAAA,CAAC1C,UAAA,CAAA2C,OAAO,EAAKH,KAAQ,CAAC,CAAC;EACvC,CAAC;EAEDhB,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BoB,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnC,IAAAC,gBAAA,GAAsBjB,eAAe,CAAC,CAAC;QAA/BkB,SAAS,GAAAD,gBAAA,CAATC,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 _component = require("../component");
|
|
8
|
+
var _utils = require("../../../__tests__/utils");
|
|
9
|
+
var _plot = require("@pie-lib/plot");
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
var xy = _plot.utils.xy;
|
|
13
|
+
describe('Line', function () {
|
|
14
|
+
var onChange = jest.fn();
|
|
15
|
+
var renderComponent = function renderComponent(extras) {
|
|
16
|
+
var defaults = {
|
|
17
|
+
classes: {},
|
|
18
|
+
className: 'className',
|
|
19
|
+
onChange: onChange,
|
|
20
|
+
graphProps: (0, _utils.graphProps)(),
|
|
21
|
+
from: xy(0, 0),
|
|
22
|
+
to: xy(1, 1)
|
|
23
|
+
};
|
|
24
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
25
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component.Line, props));
|
|
26
|
+
};
|
|
27
|
+
describe('rendering', function () {
|
|
28
|
+
it('renders without crashing', function () {
|
|
29
|
+
var _renderComponent = renderComponent(),
|
|
30
|
+
container = _renderComponent.container;
|
|
31
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=component.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_component","_utils","_plot","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","xy","utils","describe","onChange","jest","fn","renderComponent","extras","defaults","classes","className","graphProps","getGraphProps","from","to","props","render","createElement","Line","it","_renderComponent","container","expect","firstChild","toBeInTheDocument"],"sources":["../../../../src/tools/segment/__tests__/component.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport { Line } from '../component';\nimport { graphProps as getGraphProps } from '../../../__tests__/utils';\nimport { utils } from '@pie-lib/plot';\n\nconst { xy } = utils;\ndescribe('Line', () => {\n let onChange = jest.fn();\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n onChange,\n graphProps: getGraphProps(),\n from: xy(0, 0),\n to: xy(1, 1),\n };\n const props = { ...defaults, ...extras };\n return render(<Line {...props} />);\n };\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAsC,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEtC,IAAQoB,EAAE,GAAKC,WAAK,CAAZD,EAAE;AACVE,QAAQ,CAAC,MAAM,EAAE,YAAM;EACrB,IAAIC,QAAQ,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACxB,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAK;IAClC,IAAMC,QAAQ,GAAG;MACfC,OAAO,EAAE,CAAC,CAAC;MACXC,SAAS,EAAE,WAAW;MACtBP,QAAQ,EAARA,QAAQ;MACRQ,UAAU,EAAE,IAAAC,iBAAa,EAAC,CAAC;MAC3BC,IAAI,EAAEb,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MACdc,EAAE,EAAEd,EAAE,CAAC,CAAC,EAAE,CAAC;IACb,CAAC;IACD,IAAMe,KAAK,GAAAvB,aAAA,CAAAA,aAAA,KAAQgB,QAAQ,GAAKD,MAAM,CAAE;IACxC,OAAO,IAAAS,iBAAM,eAAC1C,MAAA,YAAA2C,aAAA,CAACzC,UAAA,CAAA0C,IAAI,EAAKH,KAAQ,CAAC,CAAC;EACpC,CAAC;EACDb,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BiB,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnC,IAAAC,gBAAA,GAAsBd,eAAe,CAAC,CAAC;QAA/Be,SAAS,GAAAD,gBAAA,CAATC,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
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 _arrowHead = require("../arrow-head");
|
|
8
|
+
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; }
|
|
9
|
+
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; }
|
|
10
|
+
describe('ArrowHead', function () {
|
|
11
|
+
var renderComponent = function renderComponent(extras) {
|
|
12
|
+
var defaults = {
|
|
13
|
+
size: 10,
|
|
14
|
+
transform: ''
|
|
15
|
+
};
|
|
16
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
17
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_arrowHead.ArrowHead, props));
|
|
18
|
+
};
|
|
19
|
+
describe('rendering', function () {
|
|
20
|
+
it('renders without crashing', function () {
|
|
21
|
+
var _renderComponent = renderComponent(),
|
|
22
|
+
container = _renderComponent.container;
|
|
23
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe('ArrowMarker', function () {
|
|
28
|
+
var renderComponent = function renderComponent(extras) {
|
|
29
|
+
var defaults = {
|
|
30
|
+
id: 'id',
|
|
31
|
+
size: 10,
|
|
32
|
+
className: 'className'
|
|
33
|
+
};
|
|
34
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
35
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_arrowHead.ArrowMarker, props));
|
|
36
|
+
};
|
|
37
|
+
describe('rendering', function () {
|
|
38
|
+
it('renders without crashing', function () {
|
|
39
|
+
var _renderComponent2 = renderComponent(),
|
|
40
|
+
container = _renderComponent2.container;
|
|
41
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=arrow-head.test.js.map
|