@pie-lib/graphing-solution-set 4.1.0-beta.6 → 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,450 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
5
- var _reducer = _interopRequireDefault(require("../reducer"));
6
- var _actions = require("../actions");
7
- describe('container reducer', function () {
8
- describe('reducer creation', function () {
9
- it('creates a reducer function', function () {
10
- var rootReducer = (0, _reducer["default"])();
11
- expect((0, _typeof2["default"])(rootReducer)).toBe('function');
12
- });
13
- it('returns an object with marks property', function () {
14
- var rootReducer = (0, _reducer["default"])();
15
- var state = rootReducer(undefined, {
16
- type: 'INIT'
17
- });
18
- expect(state).toHaveProperty('marks');
19
- });
20
- it('wraps marks reducer with undoable', function () {
21
- var rootReducer = (0, _reducer["default"])();
22
- var state = rootReducer(undefined, {
23
- type: 'INIT'
24
- });
25
- expect(state.marks).toHaveProperty('past');
26
- expect(state.marks).toHaveProperty('present');
27
- expect(state.marks).toHaveProperty('future');
28
- });
29
- });
30
- describe('initial state', function () {
31
- it('initializes with empty past', function () {
32
- var rootReducer = (0, _reducer["default"])();
33
- var state = rootReducer(undefined, {
34
- type: 'INIT'
35
- });
36
- expect(state.marks.past).toEqual([]);
37
- });
38
- it('initializes with empty present', function () {
39
- var rootReducer = (0, _reducer["default"])();
40
- var state = rootReducer(undefined, {
41
- type: 'INIT'
42
- });
43
- expect(state.marks.present).toEqual([]);
44
- });
45
- it('initializes with empty future', function () {
46
- var rootReducer = (0, _reducer["default"])();
47
- var state = rootReducer(undefined, {
48
- type: 'INIT'
49
- });
50
- expect(state.marks.future).toEqual([]);
51
- });
52
- });
53
- describe('CHANGE_MARKS action', function () {
54
- it('updates present with new marks', function () {
55
- var rootReducer = (0, _reducer["default"])();
56
- var newMarks = [{
57
- id: 1,
58
- type: 'point',
59
- x: 5,
60
- y: 10
61
- }];
62
- var action = (0, _actions.changeMarks)(newMarks);
63
- var state = rootReducer(undefined, {
64
- type: '@@INIT'
65
- });
66
- state = rootReducer(state, action);
67
- expect(state.marks.present).toEqual(newMarks);
68
- });
69
- it('adds previous state to past', function () {
70
- var rootReducer = (0, _reducer["default"])();
71
- var firstMarks = [{
72
- id: 1,
73
- type: 'point'
74
- }];
75
- var secondMarks = [{
76
- id: 2,
77
- type: 'line'
78
- }];
79
- var state = rootReducer(undefined, {
80
- type: '@@INIT'
81
- });
82
- state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
83
- state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
84
- expect(state.marks.past.length).toBeGreaterThan(0);
85
- expect(state.marks.present).toEqual(secondMarks);
86
- });
87
- it('clears future on new action', function () {
88
- var rootReducer = (0, _reducer["default"])();
89
- var firstMarks = [{
90
- id: 1,
91
- type: 'point'
92
- }];
93
- var secondMarks = [{
94
- id: 2,
95
- type: 'line'
96
- }];
97
- var thirdMarks = [{
98
- id: 3,
99
- type: 'circle'
100
- }];
101
- var state = rootReducer(undefined, {
102
- type: '@@INIT'
103
- });
104
- state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
105
- state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
106
- state = rootReducer(state, {
107
- type: '@@redux-undo/UNDO'
108
- });
109
- expect(state.marks.future.length).toBeGreaterThan(0);
110
- state = rootReducer(state, (0, _actions.changeMarks)(thirdMarks));
111
- expect(state.marks.future).toEqual([]);
112
- });
113
- it('handles empty marks array', function () {
114
- var rootReducer = (0, _reducer["default"])();
115
- var action = (0, _actions.changeMarks)([]);
116
- var state = rootReducer(undefined, {
117
- type: '@@INIT'
118
- });
119
- state = rootReducer(state, action);
120
- expect(state.marks.present).toEqual([]);
121
- });
122
- it('handles multiple marks', function () {
123
- var rootReducer = (0, _reducer["default"])();
124
- var marks = [{
125
- id: 1,
126
- type: 'point',
127
- x: 1,
128
- y: 2
129
- }, {
130
- id: 2,
131
- type: 'line',
132
- from: {
133
- x: 0,
134
- y: 0
135
- },
136
- to: {
137
- x: 5,
138
- y: 5
139
- }
140
- }, {
141
- id: 3,
142
- type: 'circle',
143
- center: {
144
- x: 3,
145
- y: 3
146
- },
147
- radius: 2
148
- }];
149
- var action = (0, _actions.changeMarks)(marks);
150
- var state = rootReducer(undefined, {
151
- type: '@@INIT'
152
- });
153
- state = rootReducer(state, action);
154
- expect(state.marks.present).toEqual(marks);
155
- expect(state.marks.present.length).toBe(3);
156
- });
157
- });
158
- describe('undo functionality', function () {
159
- it('supports undo action', function () {
160
- var rootReducer = (0, _reducer["default"])();
161
- var firstMarks = [{
162
- id: 1,
163
- type: 'point'
164
- }];
165
- var secondMarks = [{
166
- id: 2,
167
- type: 'line'
168
- }];
169
- var state = rootReducer(undefined, {
170
- type: '@@INIT'
171
- });
172
- state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
173
- state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
174
- state = rootReducer(state, {
175
- type: '@@redux-undo/UNDO'
176
- });
177
- expect(state.marks.present).toEqual(firstMarks);
178
- });
179
- it('moves present to future on undo', function () {
180
- var rootReducer = (0, _reducer["default"])();
181
- var firstMarks = [{
182
- id: 1,
183
- type: 'point'
184
- }];
185
- var secondMarks = [{
186
- id: 2,
187
- type: 'line'
188
- }];
189
- var state = rootReducer(undefined, {
190
- type: '@@INIT'
191
- });
192
- state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
193
- state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
194
- state = rootReducer(state, {
195
- type: '@@redux-undo/UNDO'
196
- });
197
- expect(state.marks.future.length).toBeGreaterThan(0);
198
- });
199
- it('handles multiple undos', function () {
200
- var rootReducer = (0, _reducer["default"])();
201
- var marks1 = [{
202
- id: 1
203
- }];
204
- var marks2 = [{
205
- id: 2
206
- }];
207
- var marks3 = [{
208
- id: 3
209
- }];
210
- var state = rootReducer(undefined, {
211
- type: '@@INIT'
212
- });
213
- state = rootReducer(state, (0, _actions.changeMarks)(marks1));
214
- state = rootReducer(state, (0, _actions.changeMarks)(marks2));
215
- state = rootReducer(state, (0, _actions.changeMarks)(marks3));
216
- state = rootReducer(state, {
217
- type: '@@redux-undo/UNDO'
218
- });
219
- state = rootReducer(state, {
220
- type: '@@redux-undo/UNDO'
221
- });
222
- expect(state.marks.present).toEqual(marks1);
223
- });
224
- it('does not undo beyond initial state', function () {
225
- var rootReducer = (0, _reducer["default"])();
226
- var marks = [{
227
- id: 1,
228
- type: 'point'
229
- }];
230
- var state = rootReducer(undefined, {
231
- type: '@@INIT'
232
- });
233
- state = rootReducer(state, (0, _actions.changeMarks)(marks));
234
- state = rootReducer(state, {
235
- type: '@@redux-undo/UNDO'
236
- });
237
- state = rootReducer(state, {
238
- type: '@@redux-undo/UNDO'
239
- });
240
- state = rootReducer(state, {
241
- type: '@@redux-undo/UNDO'
242
- });
243
- expect(state.marks.present).toEqual([]);
244
- expect(state.marks.past).toEqual([]);
245
- });
246
- });
247
- describe('redo functionality', function () {
248
- it('supports redo action', function () {
249
- var rootReducer = (0, _reducer["default"])();
250
- var firstMarks = [{
251
- id: 1,
252
- type: 'point'
253
- }];
254
- var secondMarks = [{
255
- id: 2,
256
- type: 'line'
257
- }];
258
- var state = rootReducer(undefined, {
259
- type: '@@INIT'
260
- });
261
- state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
262
- state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
263
- state = rootReducer(state, {
264
- type: '@@redux-undo/UNDO'
265
- });
266
-
267
- // Redo
268
- state = rootReducer(state, {
269
- type: '@@redux-undo/REDO'
270
- });
271
- expect(state.marks.present).toEqual(secondMarks);
272
- });
273
- it('moves future to past on redo', function () {
274
- var rootReducer = (0, _reducer["default"])();
275
- var firstMarks = [{
276
- id: 1,
277
- type: 'point'
278
- }];
279
- var secondMarks = [{
280
- id: 2,
281
- type: 'line'
282
- }];
283
- var state = rootReducer(undefined, {
284
- type: '@@INIT'
285
- });
286
- state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
287
- state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
288
- state = rootReducer(state, {
289
- type: '@@redux-undo/UNDO'
290
- });
291
- var futureBeforeRedo = state.marks.future.length;
292
- state = rootReducer(state, {
293
- type: '@@redux-undo/REDO'
294
- });
295
- expect(state.marks.future.length).toBe(futureBeforeRedo - 1);
296
- });
297
- it('handles multiple redos', function () {
298
- var rootReducer = (0, _reducer["default"])();
299
- var marks1 = [{
300
- id: 1
301
- }];
302
- var marks2 = [{
303
- id: 2
304
- }];
305
- var marks3 = [{
306
- id: 3
307
- }];
308
- var state = rootReducer(undefined, {
309
- type: '@@INIT'
310
- });
311
- state = rootReducer(state, (0, _actions.changeMarks)(marks1));
312
- state = rootReducer(state, (0, _actions.changeMarks)(marks2));
313
- state = rootReducer(state, (0, _actions.changeMarks)(marks3));
314
-
315
- // undo twice, then redo twice
316
- state = rootReducer(state, {
317
- type: '@@redux-undo/UNDO'
318
- });
319
- state = rootReducer(state, {
320
- type: '@@redux-undo/UNDO'
321
- });
322
- state = rootReducer(state, {
323
- type: '@@redux-undo/REDO'
324
- });
325
- state = rootReducer(state, {
326
- type: '@@redux-undo/REDO'
327
- });
328
- expect(state.marks.present).toEqual(marks3);
329
- });
330
- it('does not redo beyond last state', function () {
331
- var rootReducer = (0, _reducer["default"])();
332
- var marks = [{
333
- id: 1,
334
- type: 'point'
335
- }];
336
- var state = rootReducer(undefined, {
337
- type: '@@INIT'
338
- });
339
- state = rootReducer(state, (0, _actions.changeMarks)(marks));
340
- state = rootReducer(state, {
341
- type: '@@redux-undo/UNDO'
342
- });
343
- state = rootReducer(state, {
344
- type: '@@redux-undo/REDO'
345
- });
346
-
347
- // try to redo beyond the end
348
- state = rootReducer(state, {
349
- type: '@@redux-undo/REDO'
350
- });
351
- state = rootReducer(state, {
352
- type: '@@redux-undo/REDO'
353
- });
354
- expect(state.marks.present).toEqual(marks);
355
- expect(state.marks.future).toEqual([]);
356
- });
357
- });
358
- describe('state structure', function () {
359
- it('maintains correct undoable structure', function () {
360
- var rootReducer = (0, _reducer["default"])();
361
- var state = rootReducer(undefined, {
362
- type: 'INIT'
363
- });
364
- expect(state.marks).toHaveProperty('past');
365
- expect(state.marks).toHaveProperty('present');
366
- expect(state.marks).toHaveProperty('future');
367
- expect(Array.isArray(state.marks.past)).toBe(true);
368
- expect(Array.isArray(state.marks.future)).toBe(true);
369
- });
370
- it('preserves mark properties through undo/redo', function () {
371
- var rootReducer = (0, _reducer["default"])();
372
- var marks = [{
373
- id: 1,
374
- type: 'point',
375
- x: 10,
376
- y: 20,
377
- label: 'A',
378
- correctness: {
379
- value: 'correct'
380
- }
381
- }];
382
- var state = rootReducer(undefined, {
383
- type: 'INIT'
384
- });
385
- state = rootReducer(state, (0, _actions.changeMarks)(marks));
386
- state = rootReducer(state, (0, _actions.changeMarks)([]));
387
- state = rootReducer(state, {
388
- type: '@@redux-undo/UNDO'
389
- });
390
- expect(state.marks.present).toEqual(marks);
391
- expect(state.marks.present[0]).toBeDefined();
392
- if (state.marks.present[0]) {
393
- expect(state.marks.present[0]).toEqual(marks[0]);
394
- expect(state.marks.present[0].correctness).toBeDefined();
395
- }
396
- });
397
- });
398
- describe('integration', function () {
399
- it('handles complex undo/redo sequences', function () {
400
- var rootReducer = (0, _reducer["default"])();
401
- var marks1 = [{
402
- id: 1
403
- }];
404
- var marks2 = [{
405
- id: 2
406
- }];
407
- var marks3 = [{
408
- id: 3
409
- }];
410
- var marks4 = [{
411
- id: 4
412
- }];
413
- var state = rootReducer(undefined, {
414
- type: '@@INIT'
415
- });
416
- state = rootReducer(state, (0, _actions.changeMarks)(marks1));
417
- state = rootReducer(state, (0, _actions.changeMarks)(marks2));
418
- state = rootReducer(state, (0, _actions.changeMarks)(marks3));
419
- state = rootReducer(state, {
420
- type: '@@redux-undo/UNDO'
421
- }); // back to marks2
422
- state = rootReducer(state, {
423
- type: '@@redux-undo/UNDO'
424
- }); // back to marks1
425
- state = rootReducer(state, {
426
- type: '@@redux-undo/REDO'
427
- }); // forward to marks2
428
- state = rootReducer(state, (0, _actions.changeMarks)(marks4));
429
- expect(state.marks.present).toEqual(marks4);
430
- expect(state.marks.future).toEqual([]);
431
- });
432
- it('works with empty state transitions', function () {
433
- var rootReducer = (0, _reducer["default"])();
434
- var marks = [{
435
- id: 1
436
- }];
437
- var state = rootReducer(undefined, {
438
- type: '@@INIT'
439
- });
440
- state = rootReducer(state, (0, _actions.changeMarks)([]));
441
- state = rootReducer(state, (0, _actions.changeMarks)(marks));
442
- state = rootReducer(state, (0, _actions.changeMarks)([]));
443
- state = rootReducer(state, {
444
- type: '@@redux-undo/UNDO'
445
- });
446
- expect(state.marks.present).toEqual(marks);
447
- });
448
- });
449
- });
450
- //# sourceMappingURL=reducer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reducer.test.js","names":["_reducer","_interopRequireDefault","require","_actions","describe","it","rootReducer","reducer","expect","_typeof2","toBe","state","undefined","type","toHaveProperty","marks","past","toEqual","present","future","newMarks","id","x","y","action","changeMarks","firstMarks","secondMarks","length","toBeGreaterThan","thirdMarks","from","to","center","radius","marks1","marks2","marks3","futureBeforeRedo","Array","isArray","label","correctness","value","toBeDefined","marks4"],"sources":["../../../src/container/__tests__/reducer.test.js"],"sourcesContent":["import reducer from '../reducer';\nimport { changeMarks } from '../actions';\n\ndescribe('container reducer', () => {\n describe('reducer creation', () => {\n it('creates a reducer function', () => {\n const rootReducer = reducer();\n expect(typeof rootReducer).toBe('function');\n });\n\n it('returns an object with marks property', () => {\n const rootReducer = reducer();\n const state = rootReducer(undefined, { type: 'INIT' });\n expect(state).toHaveProperty('marks');\n });\n\n it('wraps marks reducer with undoable', () => {\n const rootReducer = reducer();\n const state = rootReducer(undefined, { type: 'INIT' });\n\n expect(state.marks).toHaveProperty('past');\n expect(state.marks).toHaveProperty('present');\n expect(state.marks).toHaveProperty('future');\n });\n });\n\n describe('initial state', () => {\n it('initializes with empty past', () => {\n const rootReducer = reducer();\n const state = rootReducer(undefined, { type: 'INIT' });\n\n expect(state.marks.past).toEqual([]);\n });\n\n it('initializes with empty present', () => {\n const rootReducer = reducer();\n const state = rootReducer(undefined, { type: 'INIT' });\n\n expect(state.marks.present).toEqual([]);\n });\n\n it('initializes with empty future', () => {\n const rootReducer = reducer();\n const state = rootReducer(undefined, { type: 'INIT' });\n\n expect(state.marks.future).toEqual([]);\n });\n });\n\n describe('CHANGE_MARKS action', () => {\n it('updates present with new marks', () => {\n const rootReducer = reducer();\n const newMarks = [{ id: 1, type: 'point', x: 5, y: 10 }];\n const action = changeMarks(newMarks);\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, action);\n\n expect(state.marks.present).toEqual(newMarks);\n });\n\n it('adds previous state to past', () => {\n const rootReducer = reducer();\n const firstMarks = [{ id: 1, type: 'point' }];\n const secondMarks = [{ id: 2, type: 'line' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(firstMarks));\n state = rootReducer(state, changeMarks(secondMarks));\n\n expect(state.marks.past.length).toBeGreaterThan(0);\n expect(state.marks.present).toEqual(secondMarks);\n });\n\n it('clears future on new action', () => {\n const rootReducer = reducer();\n const firstMarks = [{ id: 1, type: 'point' }];\n const secondMarks = [{ id: 2, type: 'line' }];\n const thirdMarks = [{ id: 3, type: 'circle' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(firstMarks));\n state = rootReducer(state, changeMarks(secondMarks));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n expect(state.marks.future.length).toBeGreaterThan(0);\n\n state = rootReducer(state, changeMarks(thirdMarks));\n expect(state.marks.future).toEqual([]);\n });\n\n it('handles empty marks array', () => {\n const rootReducer = reducer();\n const action = changeMarks([]);\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, action);\n\n expect(state.marks.present).toEqual([]);\n });\n\n it('handles multiple marks', () => {\n const rootReducer = reducer();\n const marks = [\n { id: 1, type: 'point', x: 1, y: 2 },\n { id: 2, type: 'line', from: { x: 0, y: 0 }, to: { x: 5, y: 5 } },\n { id: 3, type: 'circle', center: { x: 3, y: 3 }, radius: 2 },\n ];\n const action = changeMarks(marks);\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, action);\n\n expect(state.marks.present).toEqual(marks);\n expect(state.marks.present.length).toBe(3);\n });\n });\n\n describe('undo functionality', () => {\n it('supports undo action', () => {\n const rootReducer = reducer();\n const firstMarks = [{ id: 1, type: 'point' }];\n const secondMarks = [{ id: 2, type: 'line' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(firstMarks));\n state = rootReducer(state, changeMarks(secondMarks));\n\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n expect(state.marks.present).toEqual(firstMarks);\n });\n\n it('moves present to future on undo', () => {\n const rootReducer = reducer();\n const firstMarks = [{ id: 1, type: 'point' }];\n const secondMarks = [{ id: 2, type: 'line' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(firstMarks));\n state = rootReducer(state, changeMarks(secondMarks));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n expect(state.marks.future.length).toBeGreaterThan(0);\n });\n\n it('handles multiple undos', () => {\n const rootReducer = reducer();\n const marks1 = [{ id: 1 }];\n const marks2 = [{ id: 2 }];\n const marks3 = [{ id: 3 }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(marks1));\n state = rootReducer(state, changeMarks(marks2));\n state = rootReducer(state, changeMarks(marks3));\n\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n expect(state.marks.present).toEqual(marks1);\n });\n\n it('does not undo beyond initial state', () => {\n const rootReducer = reducer();\n const marks = [{ id: 1, type: 'point' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(marks));\n\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n expect(state.marks.present).toEqual([]);\n expect(state.marks.past).toEqual([]);\n });\n });\n\n describe('redo functionality', () => {\n it('supports redo action', () => {\n const rootReducer = reducer();\n const firstMarks = [{ id: 1, type: 'point' }];\n const secondMarks = [{ id: 2, type: 'line' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(firstMarks));\n state = rootReducer(state, changeMarks(secondMarks));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n // Redo\n state = rootReducer(state, { type: '@@redux-undo/REDO' });\n\n expect(state.marks.present).toEqual(secondMarks);\n });\n\n it('moves future to past on redo', () => {\n const rootReducer = reducer();\n const firstMarks = [{ id: 1, type: 'point' }];\n const secondMarks = [{ id: 2, type: 'line' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(firstMarks));\n state = rootReducer(state, changeMarks(secondMarks));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n const futureBeforeRedo = state.marks.future.length;\n state = rootReducer(state, { type: '@@redux-undo/REDO' });\n\n expect(state.marks.future.length).toBe(futureBeforeRedo - 1);\n });\n\n it('handles multiple redos', () => {\n const rootReducer = reducer();\n const marks1 = [{ id: 1 }];\n const marks2 = [{ id: 2 }];\n const marks3 = [{ id: 3 }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(marks1));\n state = rootReducer(state, changeMarks(marks2));\n state = rootReducer(state, changeMarks(marks3));\n\n // undo twice, then redo twice\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n state = rootReducer(state, { type: '@@redux-undo/REDO' });\n state = rootReducer(state, { type: '@@redux-undo/REDO' });\n\n expect(state.marks.present).toEqual(marks3);\n });\n\n it('does not redo beyond last state', () => {\n const rootReducer = reducer();\n const marks = [{ id: 1, type: 'point' }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(marks));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n state = rootReducer(state, { type: '@@redux-undo/REDO' });\n\n // try to redo beyond the end\n state = rootReducer(state, { type: '@@redux-undo/REDO' });\n state = rootReducer(state, { type: '@@redux-undo/REDO' });\n\n expect(state.marks.present).toEqual(marks);\n expect(state.marks.future).toEqual([]);\n });\n });\n\n describe('state structure', () => {\n it('maintains correct undoable structure', () => {\n const rootReducer = reducer();\n const state = rootReducer(undefined, { type: 'INIT' });\n\n expect(state.marks).toHaveProperty('past');\n expect(state.marks).toHaveProperty('present');\n expect(state.marks).toHaveProperty('future');\n expect(Array.isArray(state.marks.past)).toBe(true);\n expect(Array.isArray(state.marks.future)).toBe(true);\n });\n\n it('preserves mark properties through undo/redo', () => {\n const rootReducer = reducer();\n const marks = [\n {\n id: 1,\n type: 'point',\n x: 10,\n y: 20,\n label: 'A',\n correctness: { value: 'correct' },\n },\n ];\n\n let state = rootReducer(undefined, { type: 'INIT' });\n state = rootReducer(state, changeMarks(marks));\n state = rootReducer(state, changeMarks([]));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n expect(state.marks.present).toEqual(marks);\n expect(state.marks.present[0]).toBeDefined();\n if (state.marks.present[0]) {\n expect(state.marks.present[0]).toEqual(marks[0]);\n expect(state.marks.present[0].correctness).toBeDefined();\n }\n });\n });\n\n describe('integration', () => {\n it('handles complex undo/redo sequences', () => {\n const rootReducer = reducer();\n const marks1 = [{ id: 1 }];\n const marks2 = [{ id: 2 }];\n const marks3 = [{ id: 3 }];\n const marks4 = [{ id: 4 }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks(marks1));\n state = rootReducer(state, changeMarks(marks2));\n state = rootReducer(state, changeMarks(marks3));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' }); // back to marks2\n state = rootReducer(state, { type: '@@redux-undo/UNDO' }); // back to marks1\n state = rootReducer(state, { type: '@@redux-undo/REDO' }); // forward to marks2\n state = rootReducer(state, changeMarks(marks4));\n\n expect(state.marks.present).toEqual(marks4);\n expect(state.marks.future).toEqual([]);\n });\n\n it('works with empty state transitions', () => {\n const rootReducer = reducer();\n const marks = [{ id: 1 }];\n\n let state = rootReducer(undefined, { type: '@@INIT' });\n state = rootReducer(state, changeMarks([]));\n state = rootReducer(state, changeMarks(marks));\n state = rootReducer(state, changeMarks([]));\n state = rootReducer(state, { type: '@@redux-undo/UNDO' });\n\n expect(state.marks.present).toEqual(marks);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,45 +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 _component = require("../component");
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
- jest.mock('@pie-lib/plot', function () {
12
- var a = jest.requireActual('@pie-lib/plot');
13
- return {
14
- types: a.types,
15
- gridDraggable: a.gridDraggable,
16
- utils: a.utils,
17
- trig: {
18
- edges: jest.fn(function () {
19
- return jest.fn().mockReturnValue([0, 0]);
20
- })
21
- }
22
- };
23
- });
24
- describe('ArrowedLine', function () {
25
- var onChange = jest.fn();
26
- var renderComponent = function renderComponent(extras) {
27
- var defaults = {
28
- classes: {},
29
- className: 'className',
30
- onChange: onChange,
31
- markerId: '1',
32
- graphProps: (0, _utils.graphProps)()
33
- };
34
- var props = _objectSpread(_objectSpread({}, defaults), extras);
35
- return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_component.ArrowedLine, props));
36
- };
37
- describe('rendering', function () {
38
- it('renders without crashing', function () {
39
- var _renderComponent = renderComponent(),
40
- container = _renderComponent.container;
41
- expect(container.firstChild).toBeInTheDocument();
42
- });
43
- });
44
- });
45
- //# sourceMappingURL=component.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_component","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","a","requireActual","types","gridDraggable","utils","trig","edges","fn","mockReturnValue","describe","onChange","renderComponent","extras","defaults","classes","className","markerId","graphProps","getGraphProps","props","render","createElement","ArrowedLine","it","_renderComponent","container","expect","firstChild","toBeInTheDocument"],"sources":["../../../../src/tools/line/__tests__/component.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport { ArrowedLine } from '../component';\nimport { graphProps as getGraphProps } from '../../../__tests__/utils';\n\njest.mock('@pie-lib/plot', () => {\n const a = jest.requireActual('@pie-lib/plot');\n return {\n types: a.types,\n gridDraggable: a.gridDraggable,\n utils: a.utils,\n trig: {\n edges: jest.fn(() => jest.fn().mockReturnValue([0, 0])),\n },\n };\n});\n\ndescribe('ArrowedLine', () => {\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 };\n const props = { ...defaults, ...extras };\n return render(<ArrowedLine {...props} />);\n };\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}