@pie-lib/graphing-solution-set 4.0.13 → 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.
Files changed (69) hide show
  1. package/CHANGELOG.md +0 -44
  2. package/lib/__tests__/bg.test.js +282 -0
  3. package/lib/__tests__/bg.test.js.map +1 -0
  4. package/lib/__tests__/coordinates-label.test.js +276 -0
  5. package/lib/__tests__/coordinates-label.test.js.map +1 -0
  6. package/lib/__tests__/graph-with-controls.test.js +256 -0
  7. package/lib/__tests__/graph-with-controls.test.js.map +1 -0
  8. package/lib/__tests__/graph.test.js +113 -0
  9. package/lib/__tests__/graph.test.js.map +1 -0
  10. package/lib/__tests__/grid-setup.test.js +729 -0
  11. package/lib/__tests__/grid-setup.test.js.map +1 -0
  12. package/lib/__tests__/grid.test.js +29 -0
  13. package/lib/__tests__/grid.test.js.map +1 -0
  14. package/lib/__tests__/labels.test.js +45 -0
  15. package/lib/__tests__/labels.test.js.map +1 -0
  16. package/lib/__tests__/mark-label.test.js +133 -0
  17. package/lib/__tests__/mark-label.test.js.map +1 -0
  18. package/lib/__tests__/toggle-bar.test.js +146 -0
  19. package/lib/__tests__/toggle-bar.test.js.map +1 -0
  20. package/lib/__tests__/tool-menu.test.js +540 -0
  21. package/lib/__tests__/tool-menu.test.js.map +1 -0
  22. package/lib/__tests__/undo-redo.test.js +31 -0
  23. package/lib/__tests__/undo-redo.test.js.map +1 -0
  24. package/lib/__tests__/use-debounce.test.js +24 -0
  25. package/lib/__tests__/use-debounce.test.js.map +1 -0
  26. package/lib/__tests__/utils.js +70 -0
  27. package/lib/__tests__/utils.js.map +1 -0
  28. package/lib/__tests__/utils.test.js +123 -0
  29. package/lib/__tests__/utils.test.js.map +1 -0
  30. package/lib/axis/__tests__/arrow.test.js +60 -0
  31. package/lib/axis/__tests__/arrow.test.js.map +1 -0
  32. package/lib/axis/__tests__/axes.test.js +160 -0
  33. package/lib/axis/__tests__/axes.test.js.map +1 -0
  34. package/lib/container/__tests__/actions.test.js +108 -0
  35. package/lib/container/__tests__/actions.test.js.map +1 -0
  36. package/lib/container/__tests__/index.test.js +346 -0
  37. package/lib/container/__tests__/index.test.js.map +1 -0
  38. package/lib/container/__tests__/marks.test.js +259 -0
  39. package/lib/container/__tests__/marks.test.js.map +1 -0
  40. package/lib/container/__tests__/middleware.test.js +244 -0
  41. package/lib/container/__tests__/middleware.test.js.map +1 -0
  42. package/lib/container/__tests__/reducer.test.js +450 -0
  43. package/lib/container/__tests__/reducer.test.js.map +1 -0
  44. package/lib/tools/line/__tests__/component.test.js +45 -0
  45. package/lib/tools/line/__tests__/component.test.js.map +1 -0
  46. package/lib/tools/polygon/__tests__/component.test.js +501 -0
  47. package/lib/tools/polygon/__tests__/component.test.js.map +1 -0
  48. package/lib/tools/polygon/__tests__/index.test.js +92 -0
  49. package/lib/tools/polygon/__tests__/index.test.js.map +1 -0
  50. package/lib/tools/polygon/__tests__/line.test.js +30 -0
  51. package/lib/tools/polygon/__tests__/line.test.js.map +1 -0
  52. package/lib/tools/polygon/__tests__/polygon.test.js +61 -0
  53. package/lib/tools/polygon/__tests__/polygon.test.js.map +1 -0
  54. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  55. package/lib/tools/shared/__tests__/arrow-head.test.js.map +1 -0
  56. package/lib/tools/shared/line/__tests__/index.test.js +725 -0
  57. package/lib/tools/shared/line/__tests__/index.test.js.map +1 -0
  58. package/lib/tools/shared/line/__tests__/line-path.test.js +64 -0
  59. package/lib/tools/shared/line/__tests__/line-path.test.js.map +1 -0
  60. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +618 -0
  61. package/lib/tools/shared/line/__tests__/with-root-edge.test.js.map +1 -0
  62. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  63. package/lib/tools/shared/point/__tests__/arrow-point.test.js.map +1 -0
  64. package/lib/tools/shared/point/__tests__/arrow.test.js +619 -0
  65. package/lib/tools/shared/point/__tests__/arrow.test.js.map +1 -0
  66. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  67. package/lib/tools/shared/point/__tests__/base-point.test.js.map +1 -0
  68. package/package.json +7 -7
  69. package/LICENSE.md +0 -5
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
5
+ var _middleware = require("../middleware");
6
+ describe('lastActionMiddleware', function () {
7
+ describe('middleware functionality', function () {
8
+ it('creates middleware function', function () {
9
+ var middleware = (0, _middleware.lastActionMiddleware)();
10
+ expect((0, _typeof2["default"])(middleware)).toBe('function');
11
+ });
12
+ it('middleware returns a function', function () {
13
+ var middleware = (0, _middleware.lastActionMiddleware)();
14
+ var next = jest.fn();
15
+ var result = middleware(next);
16
+ expect((0, _typeof2["default"])(result)).toBe('function');
17
+ });
18
+ it('calls next with action', function () {
19
+ var middleware = (0, _middleware.lastActionMiddleware)();
20
+ var next = jest.fn();
21
+ var dispatch = middleware(next);
22
+ var action = {
23
+ type: 'TEST_ACTION'
24
+ };
25
+ dispatch(action);
26
+ expect(next).toHaveBeenCalledWith(action);
27
+ });
28
+ it('returns result from next', function () {
29
+ var middleware = (0, _middleware.lastActionMiddleware)();
30
+ var expectedResult = {
31
+ status: 'success'
32
+ };
33
+ var next = jest.fn(function () {
34
+ return expectedResult;
35
+ });
36
+ var dispatch = middleware(next);
37
+ var action = {
38
+ type: 'TEST_ACTION'
39
+ };
40
+ var result = dispatch(action);
41
+ expect(result).toBe(expectedResult);
42
+ });
43
+ it('stores action before calling next', function () {
44
+ var middleware = (0, _middleware.lastActionMiddleware)();
45
+ var next = jest.fn(function () {
46
+ var lastAction = (0, _middleware.getLastAction)();
47
+ expect(lastAction).toBeDefined();
48
+ expect(lastAction.type).toBe('TEST_ACTION');
49
+ });
50
+ var dispatch = middleware(next);
51
+ var action = {
52
+ type: 'TEST_ACTION'
53
+ };
54
+ dispatch(action);
55
+ expect(next).toHaveBeenCalled();
56
+ });
57
+ });
58
+ describe('getLastAction', function () {
59
+ it('returns null initially', function () {
60
+ var lastAction = (0, _middleware.getLastAction)();
61
+ expect(lastAction).toBeDefined();
62
+ });
63
+ it('returns last dispatched action', function () {
64
+ var middleware = (0, _middleware.lastActionMiddleware)();
65
+ var next = jest.fn();
66
+ var dispatch = middleware(next);
67
+ var action = {
68
+ type: 'MY_ACTION',
69
+ payload: 'test'
70
+ };
71
+ dispatch(action);
72
+ var lastAction = (0, _middleware.getLastAction)();
73
+ expect(lastAction).toEqual(action);
74
+ expect(lastAction.type).toBe('MY_ACTION');
75
+ expect(lastAction.payload).toBe('test');
76
+ });
77
+ it('updates when new action is dispatched', function () {
78
+ var middleware = (0, _middleware.lastActionMiddleware)();
79
+ var next = jest.fn();
80
+ var dispatch = middleware(next);
81
+ var action1 = {
82
+ type: 'ACTION_1'
83
+ };
84
+ dispatch(action1);
85
+ expect((0, _middleware.getLastAction)()).toEqual(action1);
86
+ var action2 = {
87
+ type: 'ACTION_2'
88
+ };
89
+ dispatch(action2);
90
+ expect((0, _middleware.getLastAction)()).toEqual(action2);
91
+ });
92
+ it('stores action with payload', function () {
93
+ var middleware = (0, _middleware.lastActionMiddleware)();
94
+ var next = jest.fn();
95
+ var dispatch = middleware(next);
96
+ var action = {
97
+ type: 'CHANGE_MARKS',
98
+ marks: [{
99
+ id: 1,
100
+ type: 'point'
101
+ }]
102
+ };
103
+ dispatch(action);
104
+ var lastAction = (0, _middleware.getLastAction)();
105
+ expect(lastAction.marks).toEqual(action.marks);
106
+ expect(lastAction.marks.length).toBe(1);
107
+ });
108
+ it('stores action with complex payload', function () {
109
+ var middleware = (0, _middleware.lastActionMiddleware)();
110
+ var next = jest.fn();
111
+ var dispatch = middleware(next);
112
+ var action = {
113
+ type: 'COMPLEX_ACTION',
114
+ data: {
115
+ nested: {
116
+ value: 123,
117
+ array: [1, 2, 3]
118
+ }
119
+ }
120
+ };
121
+ dispatch(action);
122
+ var lastAction = (0, _middleware.getLastAction)();
123
+ expect(lastAction.data.nested.value).toBe(123);
124
+ expect(lastAction.data.nested.array).toEqual([1, 2, 3]);
125
+ });
126
+ });
127
+ describe('action storage', function () {
128
+ it('overwrites previous action', function () {
129
+ var middleware = (0, _middleware.lastActionMiddleware)();
130
+ var next = jest.fn();
131
+ var dispatch = middleware(next);
132
+ dispatch({
133
+ type: 'FIRST'
134
+ });
135
+ dispatch({
136
+ type: 'SECOND'
137
+ });
138
+ dispatch({
139
+ type: 'THIRD'
140
+ });
141
+ var lastAction = (0, _middleware.getLastAction)();
142
+ expect(lastAction.type).toBe('THIRD');
143
+ });
144
+ it('stores reference to action object', function () {
145
+ var middleware = (0, _middleware.lastActionMiddleware)();
146
+ var next = jest.fn();
147
+ var dispatch = middleware(next);
148
+ var action = {
149
+ type: 'TEST',
150
+ data: {
151
+ value: 1
152
+ }
153
+ };
154
+ dispatch(action);
155
+ var lastAction = (0, _middleware.getLastAction)();
156
+
157
+ // Modify original action
158
+ action.data.value = 2;
159
+
160
+ // Last action should reflect the change (same reference)
161
+ expect(lastAction.data.value).toBe(2);
162
+ });
163
+ });
164
+ describe('integration scenarios', function () {
165
+ it('works with multiple middleware calls', function () {
166
+ var middleware = (0, _middleware.lastActionMiddleware)();
167
+ var next1 = jest.fn();
168
+ var next2 = jest.fn();
169
+ var dispatch1 = middleware(next1);
170
+ var dispatch2 = middleware(next2);
171
+ dispatch1({
172
+ type: 'ACTION_1'
173
+ });
174
+ expect((0, _middleware.getLastAction)().type).toBe('ACTION_1');
175
+ dispatch2({
176
+ type: 'ACTION_2'
177
+ });
178
+ expect((0, _middleware.getLastAction)().type).toBe('ACTION_2');
179
+ });
180
+ it('preserves action types', function () {
181
+ var middleware = (0, _middleware.lastActionMiddleware)();
182
+ var next = jest.fn();
183
+ var dispatch = middleware(next);
184
+ var actionTypes = ['ADD_MARK', 'CHANGE_MARKS', 'DELETE_MARK', 'UPDATE_MARK'];
185
+ actionTypes.forEach(function (type) {
186
+ dispatch({
187
+ type: type
188
+ });
189
+ expect((0, _middleware.getLastAction)().type).toBe(type);
190
+ });
191
+ });
192
+ it('handles actions without type', function () {
193
+ var middleware = (0, _middleware.lastActionMiddleware)();
194
+ var next = jest.fn();
195
+ var dispatch = middleware(next);
196
+ var action = {
197
+ payload: 'data'
198
+ };
199
+ dispatch(action);
200
+ var lastAction = (0, _middleware.getLastAction)();
201
+ expect(lastAction).toEqual(action);
202
+ expect(lastAction.type).toBeUndefined();
203
+ });
204
+ it('handles empty action object', function () {
205
+ var middleware = (0, _middleware.lastActionMiddleware)();
206
+ var next = jest.fn();
207
+ var dispatch = middleware(next);
208
+ var action = {};
209
+ dispatch(action);
210
+ var lastAction = (0, _middleware.getLastAction)();
211
+ expect(lastAction).toEqual(action);
212
+ });
213
+ });
214
+ describe('error handling', function () {
215
+ it('stores action even if next throws error', function () {
216
+ var middleware = (0, _middleware.lastActionMiddleware)();
217
+ var next = jest.fn(function () {
218
+ throw new Error('Next error');
219
+ });
220
+ var dispatch = middleware(next);
221
+ var action = {
222
+ type: 'ERROR_ACTION'
223
+ };
224
+ expect(function () {
225
+ return dispatch(action);
226
+ }).toThrow('Next error');
227
+ expect((0, _middleware.getLastAction)()).toEqual(action);
228
+ });
229
+ it('propagates errors from next', function () {
230
+ var middleware = (0, _middleware.lastActionMiddleware)();
231
+ var errorMessage = 'Test error';
232
+ var next = jest.fn(function () {
233
+ throw new Error(errorMessage);
234
+ });
235
+ var dispatch = middleware(next);
236
+ expect(function () {
237
+ return dispatch({
238
+ type: 'TEST'
239
+ });
240
+ }).toThrow(errorMessage);
241
+ });
242
+ });
243
+ });
244
+ //# sourceMappingURL=middleware.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.test.js","names":["_middleware","require","describe","it","middleware","lastActionMiddleware","expect","_typeof2","toBe","next","jest","fn","result","dispatch","action","type","toHaveBeenCalledWith","expectedResult","status","lastAction","getLastAction","toBeDefined","toHaveBeenCalled","payload","toEqual","action1","action2","marks","id","length","data","nested","value","array","next1","next2","dispatch1","dispatch2","actionTypes","forEach","toBeUndefined","Error","toThrow","errorMessage"],"sources":["../../../src/container/__tests__/middleware.test.js"],"sourcesContent":["import { getLastAction, lastActionMiddleware } from '../middleware';\n\ndescribe('lastActionMiddleware', () => {\n describe('middleware functionality', () => {\n it('creates middleware function', () => {\n const middleware = lastActionMiddleware();\n expect(typeof middleware).toBe('function');\n });\n\n it('middleware returns a function', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const result = middleware(next);\n expect(typeof result).toBe('function');\n });\n\n it('calls next with action', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n const action = { type: 'TEST_ACTION' };\n\n dispatch(action);\n expect(next).toHaveBeenCalledWith(action);\n });\n\n it('returns result from next', () => {\n const middleware = lastActionMiddleware();\n const expectedResult = { status: 'success' };\n const next = jest.fn(() => expectedResult);\n const dispatch = middleware(next);\n const action = { type: 'TEST_ACTION' };\n\n const result = dispatch(action);\n expect(result).toBe(expectedResult);\n });\n\n it('stores action before calling next', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn(() => {\n const lastAction = getLastAction();\n expect(lastAction).toBeDefined();\n expect(lastAction.type).toBe('TEST_ACTION');\n });\n const dispatch = middleware(next);\n const action = { type: 'TEST_ACTION' };\n\n dispatch(action);\n expect(next).toHaveBeenCalled();\n });\n });\n\n describe('getLastAction', () => {\n it('returns null initially', () => {\n const lastAction = getLastAction();\n expect(lastAction).toBeDefined();\n });\n\n it('returns last dispatched action', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n const action = { type: 'MY_ACTION', payload: 'test' };\n\n dispatch(action);\n const lastAction = getLastAction();\n\n expect(lastAction).toEqual(action);\n expect(lastAction.type).toBe('MY_ACTION');\n expect(lastAction.payload).toBe('test');\n });\n\n it('updates when new action is dispatched', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n\n const action1 = { type: 'ACTION_1' };\n dispatch(action1);\n expect(getLastAction()).toEqual(action1);\n\n const action2 = { type: 'ACTION_2' };\n dispatch(action2);\n expect(getLastAction()).toEqual(action2);\n });\n\n it('stores action with payload', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n const action = {\n type: 'CHANGE_MARKS',\n marks: [{ id: 1, type: 'point' }],\n };\n\n dispatch(action);\n const lastAction = getLastAction();\n\n expect(lastAction.marks).toEqual(action.marks);\n expect(lastAction.marks.length).toBe(1);\n });\n\n it('stores action with complex payload', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n const action = {\n type: 'COMPLEX_ACTION',\n data: {\n nested: {\n value: 123,\n array: [1, 2, 3],\n },\n },\n };\n\n dispatch(action);\n const lastAction = getLastAction();\n\n expect(lastAction.data.nested.value).toBe(123);\n expect(lastAction.data.nested.array).toEqual([1, 2, 3]);\n });\n });\n\n describe('action storage', () => {\n it('overwrites previous action', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n\n dispatch({ type: 'FIRST' });\n dispatch({ type: 'SECOND' });\n dispatch({ type: 'THIRD' });\n\n const lastAction = getLastAction();\n expect(lastAction.type).toBe('THIRD');\n });\n\n it('stores reference to action object', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n const action = { type: 'TEST', data: { value: 1 } };\n\n dispatch(action);\n const lastAction = getLastAction();\n\n // Modify original action\n action.data.value = 2;\n\n // Last action should reflect the change (same reference)\n expect(lastAction.data.value).toBe(2);\n });\n });\n\n describe('integration scenarios', () => {\n it('works with multiple middleware calls', () => {\n const middleware = lastActionMiddleware();\n const next1 = jest.fn();\n const next2 = jest.fn();\n\n const dispatch1 = middleware(next1);\n const dispatch2 = middleware(next2);\n\n dispatch1({ type: 'ACTION_1' });\n expect(getLastAction().type).toBe('ACTION_1');\n\n dispatch2({ type: 'ACTION_2' });\n expect(getLastAction().type).toBe('ACTION_2');\n });\n\n it('preserves action types', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n\n const actionTypes = ['ADD_MARK', 'CHANGE_MARKS', 'DELETE_MARK', 'UPDATE_MARK'];\n\n actionTypes.forEach((type) => {\n dispatch({ type });\n expect(getLastAction().type).toBe(type);\n });\n });\n\n it('handles actions without type', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n const action = { payload: 'data' };\n\n dispatch(action);\n const lastAction = getLastAction();\n\n expect(lastAction).toEqual(action);\n expect(lastAction.type).toBeUndefined();\n });\n\n it('handles empty action object', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn();\n const dispatch = middleware(next);\n const action = {};\n\n dispatch(action);\n const lastAction = getLastAction();\n\n expect(lastAction).toEqual(action);\n });\n });\n\n describe('error handling', () => {\n it('stores action even if next throws error', () => {\n const middleware = lastActionMiddleware();\n const next = jest.fn(() => {\n throw new Error('Next error');\n });\n const dispatch = middleware(next);\n const action = { type: 'ERROR_ACTION' };\n\n expect(() => dispatch(action)).toThrow('Next error');\n expect(getLastAction()).toEqual(action);\n });\n\n it('propagates errors from next', () => {\n const middleware = lastActionMiddleware();\n const errorMessage = 'Test error';\n const next = jest.fn(() => {\n throw new Error(errorMessage);\n });\n const dispatch = middleware(next);\n\n expect(() => dispatch({ type: 'TEST' })).toThrow(errorMessage);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}