@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.
Files changed (99) hide show
  1. package/CHANGELOG.md +0 -46
  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 +275 -0
  7. package/lib/__tests__/graph-with-controls.test.js.map +1 -0
  8. package/lib/__tests__/graph.test.js +927 -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__/key-legend.test.js +321 -0
  15. package/lib/__tests__/key-legend.test.js.map +1 -0
  16. package/lib/__tests__/label-svg-icon.test.js +373 -0
  17. package/lib/__tests__/label-svg-icon.test.js.map +1 -0
  18. package/lib/__tests__/labels.test.js +61 -0
  19. package/lib/__tests__/labels.test.js.map +1 -0
  20. package/lib/__tests__/mark-label.test.js +133 -0
  21. package/lib/__tests__/mark-label.test.js.map +1 -0
  22. package/lib/__tests__/toggle-bar.test.js +197 -0
  23. package/lib/__tests__/toggle-bar.test.js.map +1 -0
  24. package/lib/__tests__/tool-menu.test.js +151 -0
  25. package/lib/__tests__/tool-menu.test.js.map +1 -0
  26. package/lib/__tests__/undo-redo.test.js +31 -0
  27. package/lib/__tests__/undo-redo.test.js.map +1 -0
  28. package/lib/__tests__/use-debounce.test.js +24 -0
  29. package/lib/__tests__/use-debounce.test.js.map +1 -0
  30. package/lib/__tests__/utils.js +70 -0
  31. package/lib/__tests__/utils.js.map +1 -0
  32. package/lib/__tests__/utils.test.js +123 -0
  33. package/lib/__tests__/utils.test.js.map +1 -0
  34. package/lib/axis/__tests__/arrow.test.js +60 -0
  35. package/lib/axis/__tests__/arrow.test.js.map +1 -0
  36. package/lib/axis/__tests__/axes.test.js +195 -0
  37. package/lib/axis/__tests__/axes.test.js.map +1 -0
  38. package/lib/container/__tests__/actions.test.js +108 -0
  39. package/lib/container/__tests__/actions.test.js.map +1 -0
  40. package/lib/container/__tests__/index.test.js +503 -0
  41. package/lib/container/__tests__/index.test.js.map +1 -0
  42. package/lib/container/__tests__/marks.test.js +259 -0
  43. package/lib/container/__tests__/marks.test.js.map +1 -0
  44. package/lib/container/__tests__/middleware.test.js +244 -0
  45. package/lib/container/__tests__/middleware.test.js.map +1 -0
  46. package/lib/container/__tests__/reducer.test.js +450 -0
  47. package/lib/container/__tests__/reducer.test.js.map +1 -0
  48. package/lib/tools/absolute/__tests__/component.test.js +65 -0
  49. package/lib/tools/absolute/__tests__/component.test.js.map +1 -0
  50. package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
  51. package/lib/tools/circle/__tests__/bg-circle.test.js.map +1 -0
  52. package/lib/tools/circle/__tests__/component.test.js +615 -0
  53. package/lib/tools/circle/__tests__/component.test.js.map +1 -0
  54. package/lib/tools/circle/__tests__/index.test.js +576 -0
  55. package/lib/tools/circle/__tests__/index.test.js.map +1 -0
  56. package/lib/tools/exponential/__tests__/component.test.js +64 -0
  57. package/lib/tools/exponential/__tests__/component.test.js.map +1 -0
  58. package/lib/tools/exponential/__tests__/index.test.js +828 -0
  59. package/lib/tools/exponential/__tests__/index.test.js.map +1 -0
  60. package/lib/tools/line/__tests__/component.test.js +45 -0
  61. package/lib/tools/line/__tests__/component.test.js.map +1 -0
  62. package/lib/tools/parabola/__tests__/component.test.js +64 -0
  63. package/lib/tools/parabola/__tests__/component.test.js.map +1 -0
  64. package/lib/tools/parabola/__tests__/index.test.js +564 -0
  65. package/lib/tools/parabola/__tests__/index.test.js.map +1 -0
  66. package/lib/tools/point/__tests__/component.test.js +434 -0
  67. package/lib/tools/point/__tests__/component.test.js.map +1 -0
  68. package/lib/tools/point/__tests__/index.test.js +262 -0
  69. package/lib/tools/point/__tests__/index.test.js.map +1 -0
  70. package/lib/tools/polygon/__tests__/component.test.js +485 -0
  71. package/lib/tools/polygon/__tests__/component.test.js.map +1 -0
  72. package/lib/tools/polygon/__tests__/index.test.js +303 -0
  73. package/lib/tools/polygon/__tests__/index.test.js.map +1 -0
  74. package/lib/tools/polygon/__tests__/line.test.js +50 -0
  75. package/lib/tools/polygon/__tests__/line.test.js.map +1 -0
  76. package/lib/tools/polygon/__tests__/polygon.test.js +85 -0
  77. package/lib/tools/polygon/__tests__/polygon.test.js.map +1 -0
  78. package/lib/tools/ray/__tests__/component.test.js +35 -0
  79. package/lib/tools/ray/__tests__/component.test.js.map +1 -0
  80. package/lib/tools/segment/__tests__/component.test.js +35 -0
  81. package/lib/tools/segment/__tests__/component.test.js.map +1 -0
  82. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  83. package/lib/tools/shared/__tests__/arrow-head.test.js.map +1 -0
  84. package/lib/tools/shared/line/__tests__/index.test.js +124 -0
  85. package/lib/tools/shared/line/__tests__/index.test.js.map +1 -0
  86. package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
  87. package/lib/tools/shared/line/__tests__/line-path.test.js.map +1 -0
  88. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +90 -0
  89. package/lib/tools/shared/line/__tests__/with-root-edge.test.js.map +1 -0
  90. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  91. package/lib/tools/shared/point/__tests__/arrow-point.test.js.map +1 -0
  92. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  93. package/lib/tools/shared/point/__tests__/base-point.test.js.map +1 -0
  94. package/lib/tools/sine/__tests__/component.test.js +72 -0
  95. package/lib/tools/sine/__tests__/component.test.js.map +1 -0
  96. package/lib/tools/vector/__tests__/component.test.js +32 -0
  97. package/lib/tools/vector/__tests__/component.test.js.map +1 -0
  98. package/package.json +6 -6
  99. package/LICENSE.md +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinates-label.test.js","names":["_react","_interopRequireDefault","require","_testUtils","_coordinatesLabel","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","defaultProps","graphProps","beforeEach","domain","min","max","step","label","axisLabel","range","scale","x","jest","fn","val","y","it","_render","render","createElement","CoordinatesLabel","container","expect","toBeTruthy","_render2","input","querySelector","value","toBe","props","_render3","_render4","_render5","_render6","tagName","_render7","wrapper","firstChild","toHaveStyle","position","pointerEvents","getLabelPosition","left","toBeGreaterThan","top","toBeDefined","labelLength","toBeLessThan","leftShift","rightPos","leftPos","_render8","expectedWidth","width","concat","_render9","style","window","getComputedStyle","parseInt","_render0","toContain","_render1","_render10","_render11","_render12","not","toThrow","_render13","rerender","_extends2","_render14","_render15","initialStyle","initialLeft","newStyle","newLeft"],"sources":["../../src/__tests__/coordinates-label.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@pie-lib/test-utils';\nimport { CoordinatesLabel, getLabelPosition } from '../coordinates-label';\n\ndescribe('CoordinatesLabel', () => {\n let defaultProps;\n let graphProps;\n\n beforeEach(() => {\n graphProps = {\n domain: { min: -10, max: 10, step: 1, label: 'x', axisLabel: 'X' },\n range: { min: -10, max: 10, step: 1, label: 'y', axisLabel: 'Y' },\n scale: {\n x: jest.fn((val) => (val + 10) * 20),\n y: jest.fn((val) => (10 - val) * 20),\n },\n };\n\n defaultProps = {\n x: 5,\n y: 5,\n graphProps,\n };\n });\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = render(<CoordinatesLabel {...defaultProps} />);\n expect(container).toBeTruthy();\n });\n\n it('displays formatted coordinates', () => {\n const { container } = render(<CoordinatesLabel {...defaultProps} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(5, 5)');\n });\n\n it('rounds coordinates to 4 decimal places', () => {\n const props = { ...defaultProps, x: 1.123456, y: 2.987654 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(1.1235, 2.9877)');\n });\n\n it('handles integer coordinates', () => {\n const props = { ...defaultProps, x: 0, y: 0 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(0, 0)');\n });\n\n it('handles negative coordinates', () => {\n const props = { ...defaultProps, x: -3, y: -7 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(-3, -7)');\n });\n\n it('renders as an input element', () => {\n const { container } = render(<CoordinatesLabel {...defaultProps} />);\n const input = container.querySelector('input');\n\n expect(input).toBeTruthy();\n expect(input.tagName).toBe('INPUT');\n });\n\n it('applies correct styles', () => {\n const { container } = render(<CoordinatesLabel {...defaultProps} />);\n const wrapper = container.firstChild;\n\n expect(wrapper).toHaveStyle({ position: 'absolute' });\n expect(wrapper).toHaveStyle({ pointerEvents: 'auto' });\n });\n });\n\n describe('getLabelPosition', () => {\n it('positions label to the right by default', () => {\n const position = getLabelPosition(graphProps, 0, 0, 60);\n\n expect(position.left).toBeGreaterThan(graphProps.scale.x(0));\n expect(position.top).toBeDefined();\n });\n\n it('positions label to the left when near right edge', () => {\n const x = 9; // Near max\n const labelLength = 100;\n const position = getLabelPosition(graphProps, x, 0, labelLength);\n\n expect(position.left).toBeLessThan(graphProps.scale.x(x));\n });\n\n it('adjusts top position for minimum y value', () => {\n const position = getLabelPosition(graphProps, 0, -10, 60);\n\n expect(position.top).toBe(graphProps.scale.y(-10) - 16);\n });\n\n it('adjusts top position for maximum y value', () => {\n const position = getLabelPosition(graphProps, 0, 10, 60);\n\n expect(position.top).toBe(graphProps.scale.y(10) - 0);\n });\n\n it('centers label vertically for middle values', () => {\n const position = getLabelPosition(graphProps, 0, 0, 60);\n\n expect(position.top).toBe(graphProps.scale.y(0) - 8);\n });\n\n it('applies left shift consistently', () => {\n const leftShift = 10;\n const labelLength = 60;\n\n const rightPos = getLabelPosition(graphProps, 0, 0, labelLength);\n expect(rightPos.left).toBe(graphProps.scale.x(0) + leftShift);\n\n const leftPos = getLabelPosition(graphProps, 9, 0, labelLength);\n expect(leftPos.left).toBe(graphProps.scale.x(9) - leftShift - labelLength);\n });\n });\n\n describe('label width calculation', () => {\n it('calculates width based on label length', () => {\n const props = { ...defaultProps, x: 1, y: 2 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const wrapper = container.firstChild;\n\n const expectedWidth = 6 * 6;\n expect(wrapper).toHaveStyle({ width: `${expectedWidth}px` });\n });\n\n it('adjusts width for longer coordinates', () => {\n const props = { ...defaultProps, x: -10.123, y: 10.456 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const wrapper = container.firstChild;\n\n const style = window.getComputedStyle(wrapper);\n expect(parseInt(style.width)).toBeGreaterThan(42);\n });\n });\n\n describe('edge cases', () => {\n it('handles very small coordinates', () => {\n const props = { ...defaultProps, x: 0.0001, y: 0.0002 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toContain('(');\n expect(input.value).toContain(')');\n expect(input.value).toContain(',');\n });\n\n it('handles very large coordinates', () => {\n const props = { ...defaultProps, x: 999999, y: 888888 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(999999, 888888)');\n });\n\n it('handles zero coordinates', () => {\n const props = { ...defaultProps, x: 0, y: 0 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(0, 0)');\n });\n\n it('handles coordinates at domain/range boundaries', () => {\n const props = { ...defaultProps, x: 10, y: 10 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(10, 10)');\n });\n\n it('handles negative boundaries', () => {\n const props = { ...defaultProps, x: -10, y: -10 };\n const { container } = render(<CoordinatesLabel {...props} />);\n const input = container.querySelector('input');\n\n expect(input.value).toBe('(-10, -10)');\n });\n });\n\n describe('prop types and validation', () => {\n it('accepts required props', () => {\n expect(() => {\n render(<CoordinatesLabel {...defaultProps} />);\n }).not.toThrow();\n });\n\n it('renders with missing optional props', () => {\n const props = {\n x: 1,\n y: 2,\n graphProps,\n };\n\n expect(() => {\n render(<CoordinatesLabel {...props} />);\n }).not.toThrow();\n });\n });\n\n describe('updates', () => {\n it('updates when x coordinate changes', () => {\n const { container, rerender } = render(<CoordinatesLabel {...defaultProps} />);\n let input = container.querySelector('input');\n expect(input.value).toBe('(5, 5)');\n\n rerender(<CoordinatesLabel {...defaultProps} x={7} />);\n input = container.querySelector('input');\n expect(input.value).toBe('(7, 5)');\n });\n\n it('updates when y coordinate changes', () => {\n const { container, rerender } = render(<CoordinatesLabel {...defaultProps} />);\n let input = container.querySelector('input');\n expect(input.value).toBe('(5, 5)');\n\n rerender(<CoordinatesLabel {...defaultProps} y={3} />);\n input = container.querySelector('input');\n expect(input.value).toBe('(5, 3)');\n });\n\n it('updates position when coordinates change', () => {\n const { container, rerender } = render(<CoordinatesLabel {...defaultProps} />);\n const initialStyle = window.getComputedStyle(container.firstChild);\n const initialLeft = initialStyle.left;\n\n rerender(<CoordinatesLabel {...defaultProps} x={8} />);\n const newStyle = window.getComputedStyle(container.firstChild);\n const newLeft = newStyle.left;\n\n expect(newLeft).not.toBe(initialLeft);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
6
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
7
+ var _testUtils = require("@pie-lib/test-utils");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _graphWithControls = require("../graph-with-controls");
10
+ var _tools = require("../tools");
11
+ 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; }
12
+ 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; }
13
+ jest.mock('@pie-lib/drag', function () {
14
+ return {
15
+ DragProvider: function DragProvider(_ref) {
16
+ var children = _ref.children;
17
+ return /*#__PURE__*/_react["default"].createElement("div", {
18
+ "data-testid": "drag-provider"
19
+ }, children);
20
+ }
21
+ };
22
+ });
23
+ jest.mock('@dnd-kit/core', function () {
24
+ return {
25
+ useDraggable: jest.fn(function () {
26
+ return {
27
+ attributes: {
28
+ role: 'button',
29
+ tabIndex: 0
30
+ },
31
+ listeners: {
32
+ onPointerDown: jest.fn()
33
+ },
34
+ setNodeRef: jest.fn(),
35
+ transform: null,
36
+ transition: null,
37
+ isDragging: false
38
+ };
39
+ }),
40
+ useDroppable: jest.fn(function () {
41
+ return {
42
+ setNodeRef: jest.fn(),
43
+ isOver: false,
44
+ active: null
45
+ };
46
+ })
47
+ };
48
+ });
49
+ jest.mock('@dnd-kit/utilities', function () {
50
+ return {
51
+ CSS: {
52
+ Transform: {
53
+ toString: jest.fn(function (transform) {
54
+ return transform ? 'translate3d(0, 0, 0)' : '';
55
+ })
56
+ }
57
+ }
58
+ };
59
+ });
60
+ jest.mock('@dnd-kit/sortable', function () {
61
+ return {
62
+ arrayMove: jest.fn(function (array, from, to) {
63
+ var newArray = (0, _toConsumableArray2["default"])(array);
64
+ var _newArray$splice = newArray.splice(from, 1),
65
+ _newArray$splice2 = (0, _slicedToArray2["default"])(_newArray$splice, 1),
66
+ removed = _newArray$splice2[0];
67
+ newArray.splice(to, 0, removed);
68
+ return newArray;
69
+ })
70
+ };
71
+ });
72
+ var point = {
73
+ type: 'point',
74
+ x: 2,
75
+ y: 2,
76
+ label: 'Point',
77
+ showLabel: true
78
+ };
79
+ var line = {
80
+ type: 'line',
81
+ from: {
82
+ x: 0,
83
+ y: 0
84
+ },
85
+ to: {
86
+ x: 1,
87
+ y: 1
88
+ },
89
+ label: 'Line'
90
+ };
91
+ var circle = {
92
+ type: 'circle',
93
+ edge: {
94
+ x: 0,
95
+ y: 0
96
+ },
97
+ root: {
98
+ x: 2,
99
+ y: 2
100
+ }
101
+ };
102
+ var marks = [point, line, circle];
103
+ describe('setToolbarAvailability', function () {
104
+ it('sets `toolbar: true` if tool should be displayed in toolbar - all tools', function () {
105
+ var result = (0, _graphWithControls.setToolbarAvailability)(_tools.allTools);
106
+ var allTrue = new Array(_tools.toolsArr.length).fill(true);
107
+ expect(result.map(function (r) {
108
+ return r.toolbar;
109
+ })).toEqual(allTrue);
110
+ });
111
+ it('sets `toolbar: true` if tool should be displayed in toolbar - few tools', function () {
112
+ var result = (0, _graphWithControls.setToolbarAvailability)(['line', 'circle']);
113
+ var allOthersFalse = new Array(_tools.toolsArr.length - 2).fill(false);
114
+ expect(result.filter(function (r) {
115
+ return r.type === 'line' || r.type === 'circle';
116
+ }).map(function (r) {
117
+ return r.toolbar;
118
+ })).toEqual([true, true]);
119
+ expect(result.filter(function (r) {
120
+ return r.type !== 'line' && r.type !== 'circle';
121
+ }).map(function (r) {
122
+ return r.toolbar;
123
+ })).toEqual(allOthersFalse);
124
+ });
125
+ });
126
+ describe('toolIsAvailable', function () {
127
+ var tools = (0, _graphWithControls.setToolbarAvailability)(['line', 'circle']);
128
+ it('returns true if tool is available', function () {
129
+ expect((0, _graphWithControls.toolIsAvailable)(tools, (0, _tools.line)())).toEqual(true);
130
+ });
131
+ it('returns false if tool is not available', function () {
132
+ expect((0, _graphWithControls.toolIsAvailable)(tools, (0, _tools.point)())).toEqual(false);
133
+ });
134
+ });
135
+ describe('getAvailableTool', function () {
136
+ it('returns the first available tool in list if there is any', function () {
137
+ var tools = (0, _graphWithControls.setToolbarAvailability)(['line', 'circle']);
138
+ expect((0, _graphWithControls.getAvailableTool)(tools).toolbar).toEqual(true);
139
+ });
140
+ it('returns undefined list if there is no available tool', function () {
141
+ var tools = (0, _graphWithControls.setToolbarAvailability)([]);
142
+ expect((0, _graphWithControls.getAvailableTool)(tools)).toEqual(undefined);
143
+ });
144
+ });
145
+ describe('filterByValidToolTypes', function () {
146
+ it('filters marks by valid types', function () {
147
+ var marks = [{
148
+ type: 'point'
149
+ }, {
150
+ type: 'a'
151
+ }, {
152
+ type: 'b'
153
+ }, {
154
+ type: 'line'
155
+ }, {
156
+ type: 'c'
157
+ }];
158
+ expect((0, _graphWithControls.filterByValidToolTypes)(marks)).toEqual([{
159
+ type: 'point'
160
+ }, {
161
+ type: 'line'
162
+ }]);
163
+ });
164
+ });
165
+ describe('filterByVisibleToolTypes', function () {
166
+ it('filters marks by the types that should be visible', function () {
167
+ expect((0, _graphWithControls.filterByVisibleToolTypes)(['line', 'circle'], [{
168
+ type: 'point'
169
+ }, {
170
+ type: 'line'
171
+ }, {
172
+ type: 'circle'
173
+ }])).toEqual([{
174
+ type: 'line'
175
+ }, {
176
+ type: 'circle'
177
+ }]);
178
+ expect((0, _graphWithControls.filterByVisibleToolTypes)(['line', 'circle', 'point'], [{
179
+ type: 'point'
180
+ }, {
181
+ type: 'line'
182
+ }, {
183
+ type: 'circle'
184
+ }])).toEqual([{
185
+ type: 'point'
186
+ }, {
187
+ type: 'line'
188
+ }, {
189
+ type: 'circle'
190
+ }]);
191
+ expect((0, _graphWithControls.filterByVisibleToolTypes)(['line'], [{
192
+ type: 'point'
193
+ }, {
194
+ type: 'line'
195
+ }, {
196
+ type: 'circle'
197
+ }])).toEqual([{
198
+ type: 'line'
199
+ }]);
200
+ expect((0, _graphWithControls.filterByVisibleToolTypes)(['segment'], [{
201
+ type: 'point'
202
+ }, {
203
+ type: 'line'
204
+ }, {
205
+ type: 'circle'
206
+ }])).toEqual([]);
207
+ });
208
+ });
209
+ describe('GraphWithControls', function () {
210
+ var onChangeMarks = jest.fn();
211
+ beforeEach(function () {
212
+ onChangeMarks.mockClear();
213
+ });
214
+ var defaultProps = function defaultProps() {
215
+ return {
216
+ axesSettings: {
217
+ includeArrows: true
218
+ },
219
+ backgroundMarks: [point, line, circle],
220
+ className: '',
221
+ coordinatesOnHover: false,
222
+ domain: {
223
+ min: 0,
224
+ max: 10,
225
+ step: 1
226
+ },
227
+ labels: {
228
+ top: 'a',
229
+ left: 'b',
230
+ right: 'c',
231
+ bottom: 'd'
232
+ },
233
+ labelModeEnabled: true,
234
+ marks: marks,
235
+ onChangeMarks: onChangeMarks,
236
+ range: {
237
+ min: 0,
238
+ max: 10,
239
+ step: 1
240
+ },
241
+ size: {
242
+ width: 500,
243
+ height: 500
244
+ },
245
+ title: 'Title',
246
+ toolbarTools: _tools.allTools,
247
+ language: 'en'
248
+ };
249
+ };
250
+ var initialProps = defaultProps();
251
+ var renderComponent = function renderComponent(extras) {
252
+ var props = _objectSpread(_objectSpread({}, initialProps), extras);
253
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graphWithControls.GraphWithControls, props));
254
+ };
255
+ describe('rendering', function () {
256
+ it('renders without crashing', function () {
257
+ var _renderComponent = renderComponent(),
258
+ container = _renderComponent.container;
259
+ expect(container.firstChild).toBeInTheDocument();
260
+ });
261
+ it('renders ToolMenu with toolbar tools', function () {
262
+ var _renderComponent2 = renderComponent({
263
+ toolbarTools: ['point', 'line']
264
+ }),
265
+ container = _renderComponent2.container;
266
+ expect(container.firstChild).toBeInTheDocument();
267
+ });
268
+ it('renders Graph component', function () {
269
+ var _renderComponent3 = renderComponent(),
270
+ container = _renderComponent3.container;
271
+ expect(container.querySelector('svg')).toBeInTheDocument();
272
+ });
273
+ });
274
+ });
275
+ //# sourceMappingURL=graph-with-controls.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-with-controls.test.js","names":["_testUtils","require","_react","_interopRequireDefault","_graphWithControls","_tools","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","DragProvider","_ref","children","createElement","useDraggable","fn","attributes","role","tabIndex","listeners","onPointerDown","setNodeRef","transform","transition","isDragging","useDroppable","isOver","active","CSS","Transform","toString","arrayMove","array","from","to","newArray","_toConsumableArray2","_newArray$splice","splice","_newArray$splice2","_slicedToArray2","removed","point","type","x","y","label","showLabel","line","circle","edge","root","marks","describe","it","result","setToolbarAvailability","allTools","allTrue","Array","toolsArr","fill","expect","map","toolbar","toEqual","allOthersFalse","tools","toolIsAvailable","lineTool","pointTool","getAvailableTool","undefined","filterByValidToolTypes","filterByVisibleToolTypes","onChangeMarks","beforeEach","mockClear","defaultProps","axesSettings","includeArrows","backgroundMarks","className","coordinatesOnHover","domain","min","max","step","labels","top","left","right","bottom","labelModeEnabled","range","size","width","height","title","toolbarTools","language","initialProps","renderComponent","extras","props","render","GraphWithControls","_renderComponent","container","firstChild","toBeInTheDocument","_renderComponent2","_renderComponent3","querySelector"],"sources":["../../src/__tests__/graph-with-controls.test.jsx"],"sourcesContent":["import { render } from '@pie-lib/test-utils';\nimport React from 'react';\nimport {\n filterByValidToolTypes,\n filterByVisibleToolTypes,\n getAvailableTool,\n GraphWithControls,\n setToolbarAvailability,\n toolIsAvailable,\n} from '../graph-with-controls';\nimport { allTools, line as lineTool, point as pointTool, toolsArr } from '../tools';\n\njest.mock('@pie-lib/drag', () => ({\n DragProvider: ({ children }) => <div data-testid=\"drag-provider\">{children}</div>,\n}));\n\njest.mock('@dnd-kit/core', () => ({\n useDraggable: jest.fn(() => ({\n attributes: {\n role: 'button',\n tabIndex: 0,\n },\n listeners: {\n onPointerDown: jest.fn(),\n },\n setNodeRef: jest.fn(),\n transform: null,\n transition: null,\n isDragging: false,\n })),\n useDroppable: jest.fn(() => ({\n setNodeRef: jest.fn(),\n isOver: false,\n active: null,\n })),\n}));\n\njest.mock('@dnd-kit/utilities', () => ({\n CSS: {\n Transform: {\n toString: jest.fn((transform) => (transform ? 'translate3d(0, 0, 0)' : '')),\n },\n },\n}));\n\njest.mock('@dnd-kit/sortable', () => ({\n arrayMove: jest.fn((array, from, to) => {\n const newArray = [...array];\n const [removed] = newArray.splice(from, 1);\n newArray.splice(to, 0, removed);\n return newArray;\n }),\n}));\n\nconst point = {\n type: 'point',\n x: 2,\n y: 2,\n label: 'Point',\n showLabel: true,\n};\n\nconst line = {\n type: 'line',\n from: { x: 0, y: 0 },\n to: { x: 1, y: 1 },\n label: 'Line',\n};\n\nconst circle = {\n type: 'circle',\n edge: { x: 0, y: 0 },\n root: { x: 2, y: 2 },\n};\n\nconst marks = [point, line, circle];\n\ndescribe('setToolbarAvailability', () => {\n it('sets `toolbar: true` if tool should be displayed in toolbar - all tools', () => {\n const result = setToolbarAvailability(allTools);\n const allTrue = new Array(toolsArr.length).fill(true);\n\n expect(result.map((r) => r.toolbar)).toEqual(allTrue);\n });\n\n it('sets `toolbar: true` if tool should be displayed in toolbar - few tools', () => {\n const result = setToolbarAvailability(['line', 'circle']);\n const allOthersFalse = new Array(toolsArr.length - 2).fill(false);\n\n expect(result.filter((r) => r.type === 'line' || r.type === 'circle').map((r) => r.toolbar)).toEqual([true, true]);\n expect(result.filter((r) => r.type !== 'line' && r.type !== 'circle').map((r) => r.toolbar)).toEqual(\n allOthersFalse,\n );\n });\n});\n\ndescribe('toolIsAvailable', () => {\n const tools = setToolbarAvailability(['line', 'circle']);\n\n it('returns true if tool is available', () => {\n expect(toolIsAvailable(tools, lineTool())).toEqual(true);\n });\n\n it('returns false if tool is not available', () => {\n expect(toolIsAvailable(tools, pointTool())).toEqual(false);\n });\n});\n\ndescribe('getAvailableTool', () => {\n it('returns the first available tool in list if there is any', () => {\n const tools = setToolbarAvailability(['line', 'circle']);\n\n expect(getAvailableTool(tools).toolbar).toEqual(true);\n });\n\n it('returns undefined list if there is no available tool', () => {\n const tools = setToolbarAvailability([]);\n\n expect(getAvailableTool(tools)).toEqual(undefined);\n });\n});\n\ndescribe('filterByValidToolTypes', () => {\n it('filters marks by valid types', () => {\n const marks = [{ type: 'point' }, { type: 'a' }, { type: 'b' }, { type: 'line' }, { type: 'c' }];\n\n expect(filterByValidToolTypes(marks)).toEqual([{ type: 'point' }, { type: 'line' }]);\n });\n});\n\ndescribe('filterByVisibleToolTypes', () => {\n it('filters marks by the types that should be visible', () => {\n expect(\n filterByVisibleToolTypes(['line', 'circle'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }]),\n ).toEqual([{ type: 'line' }, { type: 'circle' }]);\n\n expect(\n filterByVisibleToolTypes(['line', 'circle', 'point'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }]),\n ).toEqual([{ type: 'point' }, { type: 'line' }, { type: 'circle' }]);\n\n expect(filterByVisibleToolTypes(['line'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }])).toEqual([\n { type: 'line' },\n ]);\n\n expect(filterByVisibleToolTypes(['segment'], [{ type: 'point' }, { type: 'line' }, { type: 'circle' }])).toEqual(\n [],\n );\n });\n});\n\ndescribe('GraphWithControls', () => {\n let onChangeMarks = jest.fn();\n\n beforeEach(() => {\n onChangeMarks.mockClear();\n });\n\n const defaultProps = () => ({\n axesSettings: { includeArrows: true },\n backgroundMarks: [point, line, circle],\n className: '',\n coordinatesOnHover: false,\n domain: { min: 0, max: 10, step: 1 },\n labels: { top: 'a', left: 'b', right: 'c', bottom: 'd' },\n labelModeEnabled: true,\n marks,\n onChangeMarks,\n range: { min: 0, max: 10, step: 1 },\n size: { width: 500, height: 500 },\n title: 'Title',\n toolbarTools: allTools,\n language: 'en',\n });\n const initialProps = defaultProps();\n\n const renderComponent = (extras) => {\n const props = { ...initialProps, ...extras };\n\n return render(<GraphWithControls {...props} />);\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders ToolMenu with toolbar tools', () => {\n const { container } = renderComponent({ toolbarTools: ['point', 'line'] });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders Graph component', () => {\n const { container } = renderComponent();\n expect(container.querySelector('svg')).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}