@pie-lib/graphing 4.1.0-beta.8 → 4.1.0-beta.9

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 (49) hide show
  1. package/package.json +3 -3
  2. package/src/__tests__/bg.test.jsx +0 -250
  3. package/src/__tests__/coordinates-label.test.jsx +0 -243
  4. package/src/__tests__/graph-with-controls.test.jsx +0 -198
  5. package/src/__tests__/graph.test.jsx +0 -721
  6. package/src/__tests__/grid-setup.test.jsx +0 -645
  7. package/src/__tests__/grid.test.jsx +0 -22
  8. package/src/__tests__/key-legend.test.jsx +0 -260
  9. package/src/__tests__/label-svg-icon.test.jsx +0 -278
  10. package/src/__tests__/labels.test.jsx +0 -55
  11. package/src/__tests__/mark-label.test.jsx +0 -63
  12. package/src/__tests__/toggle-bar.test.jsx +0 -146
  13. package/src/__tests__/tool-menu.test.jsx +0 -115
  14. package/src/__tests__/undo-redo.test.jsx +0 -24
  15. package/src/__tests__/use-debounce.test.js +0 -21
  16. package/src/__tests__/utils.js +0 -41
  17. package/src/__tests__/utils.test.js +0 -105
  18. package/src/axis/__tests__/arrow.test.jsx +0 -38
  19. package/src/axis/__tests__/axes.test.jsx +0 -216
  20. package/src/container/__tests__/actions.test.js +0 -105
  21. package/src/container/__tests__/index.test.jsx +0 -319
  22. package/src/container/__tests__/marks.test.js +0 -172
  23. package/src/container/__tests__/middleware.test.js +0 -235
  24. package/src/container/__tests__/reducer.test.js +0 -324
  25. package/src/tools/absolute/__tests__/component.test.jsx +0 -53
  26. package/src/tools/circle/__tests__/bg-circle.test.jsx +0 -26
  27. package/src/tools/circle/__tests__/component.test.jsx +0 -494
  28. package/src/tools/circle/__tests__/index.test.js +0 -480
  29. package/src/tools/exponential/__tests__/component.test.jsx +0 -53
  30. package/src/tools/exponential/__tests__/index.test.js +0 -729
  31. package/src/tools/line/__tests__/component.test.jsx +0 -37
  32. package/src/tools/parabola/__tests__/component.test.jsx +0 -48
  33. package/src/tools/parabola/__tests__/index.test.js +0 -470
  34. package/src/tools/point/__tests__/component.test.jsx +0 -349
  35. package/src/tools/point/__tests__/index.test.js +0 -241
  36. package/src/tools/polygon/__tests__/component.test.jsx +0 -471
  37. package/src/tools/polygon/__tests__/index.test.js +0 -294
  38. package/src/tools/polygon/__tests__/line.test.jsx +0 -35
  39. package/src/tools/polygon/__tests__/polygon.test.jsx +0 -61
  40. package/src/tools/ray/__tests__/component.test.jsx +0 -29
  41. package/src/tools/segment/__tests__/component.test.jsx +0 -28
  42. package/src/tools/shared/__tests__/arrow-head.test.jsx +0 -31
  43. package/src/tools/shared/line/__tests__/index.test.jsx +0 -109
  44. package/src/tools/shared/line/__tests__/line-path.test.jsx +0 -53
  45. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +0 -73
  46. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +0 -91
  47. package/src/tools/shared/point/__tests__/base-point.test.jsx +0 -87
  48. package/src/tools/sine/__tests__/component.test.jsx +0 -51
  49. package/src/tools/vector/__tests__/component.test.jsx +0 -25
@@ -1,198 +0,0 @@
1
- import { render } from '@pie-lib/test-utils';
2
- import React from 'react';
3
- import {
4
- filterByValidToolTypes,
5
- filterByVisibleToolTypes,
6
- getAvailableTool,
7
- GraphWithControls,
8
- setToolbarAvailability,
9
- toolIsAvailable,
10
- } from '../graph-with-controls';
11
- import { allTools, line as lineTool, point as pointTool, toolsArr } from '../tools';
12
-
13
- jest.mock('@pie-lib/drag', () => ({
14
- DragProvider: ({ children }) => <div data-testid="drag-provider">{children}</div>,
15
- }));
16
-
17
- jest.mock('@dnd-kit/core', () => ({
18
- useDraggable: jest.fn(() => ({
19
- attributes: {
20
- role: 'button',
21
- tabIndex: 0,
22
- },
23
- listeners: {
24
- onPointerDown: jest.fn(),
25
- },
26
- setNodeRef: jest.fn(),
27
- transform: null,
28
- transition: null,
29
- isDragging: false,
30
- })),
31
- useDroppable: jest.fn(() => ({
32
- setNodeRef: jest.fn(),
33
- isOver: false,
34
- active: null,
35
- })),
36
- }));
37
-
38
- jest.mock('@dnd-kit/utilities', () => ({
39
- CSS: {
40
- Transform: {
41
- toString: jest.fn((transform) => (transform ? 'translate3d(0, 0, 0)' : '')),
42
- },
43
- },
44
- }));
45
-
46
- jest.mock('@dnd-kit/sortable', () => ({
47
- arrayMove: jest.fn((array, from, to) => {
48
- const newArray = [...array];
49
- const [removed] = newArray.splice(from, 1);
50
- newArray.splice(to, 0, removed);
51
- return newArray;
52
- }),
53
- }));
54
-
55
- const point = {
56
- type: 'point',
57
- x: 2,
58
- y: 2,
59
- label: 'Point',
60
- showLabel: true,
61
- };
62
-
63
- const line = {
64
- type: 'line',
65
- from: { x: 0, y: 0 },
66
- to: { x: 1, y: 1 },
67
- label: 'Line',
68
- };
69
-
70
- const circle = {
71
- type: 'circle',
72
- edge: { x: 0, y: 0 },
73
- root: { x: 2, y: 2 },
74
- };
75
-
76
- const marks = [point, line, circle];
77
-
78
- describe('setToolbarAvailability', () => {
79
- it('sets `toolbar: true` if tool should be displayed in toolbar - all tools', () => {
80
- const result = setToolbarAvailability(allTools);
81
- const allTrue = new Array(toolsArr.length).fill(true);
82
-
83
- expect(result.map((r) => r.toolbar)).toEqual(allTrue);
84
- });
85
-
86
- it('sets `toolbar: true` if tool should be displayed in toolbar - few tools', () => {
87
- const result = setToolbarAvailability(['line', 'circle']);
88
- const allOthersFalse = new Array(toolsArr.length - 2).fill(false);
89
-
90
- expect(result.filter((r) => r.type === 'line' || r.type === 'circle').map((r) => r.toolbar)).toEqual([true, true]);
91
- expect(result.filter((r) => r.type !== 'line' && r.type !== 'circle').map((r) => r.toolbar)).toEqual(
92
- allOthersFalse,
93
- );
94
- });
95
- });
96
-
97
- describe('toolIsAvailable', () => {
98
- const tools = setToolbarAvailability(['line', 'circle']);
99
-
100
- it('returns true if tool is available', () => {
101
- expect(toolIsAvailable(tools, lineTool())).toEqual(true);
102
- });
103
-
104
- it('returns false if tool is not available', () => {
105
- expect(toolIsAvailable(tools, pointTool())).toEqual(false);
106
- });
107
- });
108
-
109
- describe('getAvailableTool', () => {
110
- it('returns the first available tool in list if there is any', () => {
111
- const tools = setToolbarAvailability(['line', 'circle']);
112
-
113
- expect(getAvailableTool(tools).toolbar).toEqual(true);
114
- });
115
-
116
- it('returns undefined list if there is no available tool', () => {
117
- const tools = setToolbarAvailability([]);
118
-
119
- expect(getAvailableTool(tools)).toEqual(undefined);
120
- });
121
- });
122
-
123
- describe('filterByValidToolTypes', () => {
124
- it('filters marks by valid types', () => {
125
- const marks = [{ type: 'point' }, { type: 'a' }, { type: 'b' }, { type: 'line' }, { type: 'c' }];
126
-
127
- expect(filterByValidToolTypes(marks)).toEqual([{ type: 'point' }, { type: 'line' }]);
128
- });
129
- });
130
-
131
- describe('filterByVisibleToolTypes', () => {
132
- it('filters marks by the types that should be visible', () => {
133
- expect(
134
- filterByVisibleToolTypes(['line', 'circle'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }]),
135
- ).toEqual([{ type: 'line' }, { type: 'circle' }]);
136
-
137
- expect(
138
- filterByVisibleToolTypes(['line', 'circle', 'point'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }]),
139
- ).toEqual([{ type: 'point' }, { type: 'line' }, { type: 'circle' }]);
140
-
141
- expect(filterByVisibleToolTypes(['line'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }])).toEqual([
142
- { type: 'line' },
143
- ]);
144
-
145
- expect(filterByVisibleToolTypes(['segment'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }])).toEqual(
146
- [],
147
- );
148
- });
149
- });
150
-
151
- describe('GraphWithControls', () => {
152
- let onChangeMarks = jest.fn();
153
-
154
- beforeEach(() => {
155
- onChangeMarks.mockClear();
156
- });
157
-
158
- const defaultProps = () => ({
159
- axesSettings: { includeArrows: true },
160
- backgroundMarks: [point, line, circle],
161
- className: '',
162
- coordinatesOnHover: false,
163
- domain: { min: 0, max: 10, step: 1 },
164
- labels: { top: 'a', left: 'b', right: 'c', bottom: 'd' },
165
- labelModeEnabled: true,
166
- marks,
167
- onChangeMarks,
168
- range: { min: 0, max: 10, step: 1 },
169
- size: { width: 500, height: 500 },
170
- title: 'Title',
171
- toolbarTools: allTools,
172
- language: 'en',
173
- });
174
- const initialProps = defaultProps();
175
-
176
- const renderComponent = (extras) => {
177
- const props = { ...initialProps, ...extras };
178
-
179
- return render(<GraphWithControls {...props} />);
180
- };
181
-
182
- describe('rendering', () => {
183
- it('renders without crashing', () => {
184
- const { container } = renderComponent();
185
- expect(container.firstChild).toBeInTheDocument();
186
- });
187
-
188
- it('renders ToolMenu with toolbar tools', () => {
189
- const { container } = renderComponent({ toolbarTools: ['point', 'line'] });
190
- expect(container.firstChild).toBeInTheDocument();
191
- });
192
-
193
- it('renders Graph component', () => {
194
- const { container } = renderComponent();
195
- expect(container.querySelector('svg')).toBeInTheDocument();
196
- });
197
- });
198
- });