@pie-lib/graphing 3.2.0-next.0 → 3.2.0-next.2

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 (113) hide show
  1. package/lib/__tests__/bg.test.js +282 -0
  2. package/lib/__tests__/coordinates-label.test.js +276 -0
  3. package/lib/__tests__/graph-with-controls.test.js +275 -0
  4. package/lib/__tests__/graph.test.js +927 -0
  5. package/lib/__tests__/grid-setup.test.js +729 -0
  6. package/lib/__tests__/grid.test.js +29 -0
  7. package/lib/__tests__/key-legend.test.js +321 -0
  8. package/lib/__tests__/label-svg-icon.test.js +373 -0
  9. package/lib/__tests__/labels.test.js +61 -0
  10. package/lib/__tests__/mark-label.test.js +133 -0
  11. package/lib/__tests__/toggle-bar.test.js +197 -0
  12. package/lib/__tests__/tool-menu.test.js +151 -0
  13. package/lib/__tests__/undo-redo.test.js +31 -0
  14. package/lib/__tests__/use-debounce.test.js +24 -0
  15. package/lib/__tests__/utils.js +70 -0
  16. package/lib/__tests__/utils.test.js +123 -0
  17. package/lib/axis/__tests__/arrow.test.js +60 -0
  18. package/lib/axis/__tests__/axes.test.js +195 -0
  19. package/lib/axis/arrow.js +1 -1
  20. package/lib/axis/axes.js +1 -1
  21. package/lib/axis/index.js +1 -1
  22. package/lib/bg.js +1 -1
  23. package/lib/container/__tests__/actions.test.js +108 -0
  24. package/lib/container/__tests__/index.test.js +503 -0
  25. package/lib/container/__tests__/marks.test.js +259 -0
  26. package/lib/container/__tests__/middleware.test.js +244 -0
  27. package/lib/container/__tests__/reducer.test.js +450 -0
  28. package/lib/container/actions.js +1 -1
  29. package/lib/container/index.js +1 -1
  30. package/lib/container/marks.js +1 -1
  31. package/lib/container/middleware.js +1 -1
  32. package/lib/container/reducer.js +1 -1
  33. package/lib/coordinates-label.js +1 -1
  34. package/lib/graph-with-controls.js +1 -1
  35. package/lib/graph.js +1 -1
  36. package/lib/grid-setup.js +1 -1
  37. package/lib/grid.js +1 -1
  38. package/lib/index.js +1 -1
  39. package/lib/key-legend.js +1 -1
  40. package/lib/label-svg-icon.js +1 -1
  41. package/lib/labels.js +1 -1
  42. package/lib/mark-label.js +1 -1
  43. package/lib/toggle-bar.js +1 -1
  44. package/lib/tool-menu.js +1 -1
  45. package/lib/tools/absolute/__tests__/component.test.js +65 -0
  46. package/lib/tools/absolute/component.js +1 -1
  47. package/lib/tools/absolute/index.js +1 -1
  48. package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
  49. package/lib/tools/circle/__tests__/component.test.js +615 -0
  50. package/lib/tools/circle/__tests__/index.test.js +576 -0
  51. package/lib/tools/circle/bg-circle.js +1 -1
  52. package/lib/tools/circle/component.js +1 -1
  53. package/lib/tools/circle/index.js +1 -1
  54. package/lib/tools/exponential/__tests__/component.test.js +64 -0
  55. package/lib/tools/exponential/__tests__/index.test.js +828 -0
  56. package/lib/tools/exponential/component.js +1 -1
  57. package/lib/tools/exponential/index.js +1 -1
  58. package/lib/tools/index.js +1 -1
  59. package/lib/tools/line/__tests__/component.test.js +45 -0
  60. package/lib/tools/line/component.js +1 -1
  61. package/lib/tools/line/index.js +1 -1
  62. package/lib/tools/parabola/__tests__/component.test.js +64 -0
  63. package/lib/tools/parabola/__tests__/index.test.js +564 -0
  64. package/lib/tools/parabola/component.js +1 -1
  65. package/lib/tools/parabola/index.js +1 -1
  66. package/lib/tools/point/__tests__/component.test.js +434 -0
  67. package/lib/tools/point/__tests__/index.test.js +262 -0
  68. package/lib/tools/point/component.js +1 -1
  69. package/lib/tools/point/index.js +1 -1
  70. package/lib/tools/polygon/__tests__/component.test.js +485 -0
  71. package/lib/tools/polygon/__tests__/index.test.js +303 -0
  72. package/lib/tools/polygon/__tests__/line.test.js +50 -0
  73. package/lib/tools/polygon/__tests__/polygon.test.js +85 -0
  74. package/lib/tools/polygon/component.js +1 -1
  75. package/lib/tools/polygon/index.js +1 -1
  76. package/lib/tools/polygon/line.js +1 -1
  77. package/lib/tools/polygon/polygon.js +1 -1
  78. package/lib/tools/ray/__tests__/component.test.js +35 -0
  79. package/lib/tools/ray/component.js +1 -1
  80. package/lib/tools/ray/index.js +1 -1
  81. package/lib/tools/segment/__tests__/component.test.js +35 -0
  82. package/lib/tools/segment/component.js +1 -1
  83. package/lib/tools/segment/index.js +1 -1
  84. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  85. package/lib/tools/shared/arrow-head.js +1 -1
  86. package/lib/tools/shared/icons/CorrectSVG.js +1 -1
  87. package/lib/tools/shared/icons/IncorrectSVG.js +1 -1
  88. package/lib/tools/shared/icons/MissingSVG.js +1 -1
  89. package/lib/tools/shared/line/__tests__/index.test.js +124 -0
  90. package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
  91. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +90 -0
  92. package/lib/tools/shared/line/index.js +1 -1
  93. package/lib/tools/shared/line/line-path.js +1 -1
  94. package/lib/tools/shared/line/with-root-edge.js +1 -1
  95. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  96. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  97. package/lib/tools/shared/point/arrow-point.js +1 -1
  98. package/lib/tools/shared/point/arrow.js +1 -1
  99. package/lib/tools/shared/point/base-point.js +1 -1
  100. package/lib/tools/shared/point/index.js +1 -1
  101. package/lib/tools/shared/styles.js +1 -1
  102. package/lib/tools/shared/types.js +1 -1
  103. package/lib/tools/sine/__tests__/component.test.js +72 -0
  104. package/lib/tools/sine/component.js +1 -1
  105. package/lib/tools/sine/index.js +1 -1
  106. package/lib/tools/vector/__tests__/component.test.js +32 -0
  107. package/lib/tools/vector/component.js +1 -1
  108. package/lib/tools/vector/index.js +1 -1
  109. package/lib/undo-redo.js +1 -1
  110. package/lib/use-debounce.js +1 -1
  111. package/lib/utils.js +1 -1
  112. package/package.json +9 -12
  113. package/LICENSE.md +0 -5
@@ -0,0 +1,133 @@
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 _markLabel = require("../mark-label");
8
+ var _utils = require("./utils");
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ describe('MarkLabel', function () {
12
+ var onChange = jest.fn();
13
+ var inputRef = jest.fn();
14
+ var renderComponent = function renderComponent(extras) {
15
+ var defaults = {
16
+ classes: {},
17
+ className: 'className',
18
+ onChange: onChange,
19
+ inputRef: inputRef,
20
+ mark: {
21
+ x: 1,
22
+ y: 1
23
+ },
24
+ graphProps: (0, _utils.graphProps)(0, 10, 0, 10)
25
+ };
26
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
27
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_markLabel.MarkLabel, props));
28
+ };
29
+ describe('rendering', function () {
30
+ it('renders without crashing', function () {
31
+ var _renderComponent = renderComponent(),
32
+ container = _renderComponent.container;
33
+ expect(container.firstChild).toBeInTheDocument();
34
+ });
35
+ it('renders with different mark position', function () {
36
+ var _renderComponent2 = renderComponent({
37
+ mark: {
38
+ x: 10,
39
+ y: 10
40
+ }
41
+ }),
42
+ container = _renderComponent2.container;
43
+ expect(container.firstChild).toBeInTheDocument();
44
+ });
45
+ });
46
+ });
47
+ describe('position', function () {
48
+ var assertPosition = function assertPosition(mark, rect, expected) {
49
+ it("".concat(mark.x, ",").concat(mark.y, " + ").concat(rect.width, ",").concat(rect.height, " => ").concat(expected), function () {
50
+ // we set range.min to a value because in pixels - the greater the Y the lower down on the screen.
51
+ var graphProps = (0, _utils.graphProps)(0, 12, 12, 0);
52
+ var result = (0, _markLabel.position)(graphProps, mark, rect);
53
+ expect(result).toEqual(expected);
54
+ });
55
+ };
56
+ assertPosition({
57
+ x: 0,
58
+ y: 0
59
+ }, {
60
+ width: 10,
61
+ height: 10
62
+ }, 'top-left');
63
+ assertPosition({
64
+ x: 0,
65
+ y: 0
66
+ }, {
67
+ width: 1,
68
+ height: 1
69
+ }, 'bottom-right');
70
+ assertPosition({
71
+ x: 0,
72
+ y: 0
73
+ }, {
74
+ width: 10,
75
+ height: 0
76
+ }, 'bottom-left');
77
+ assertPosition({
78
+ x: 0,
79
+ y: 0
80
+ }, {
81
+ width: 0,
82
+ height: 10
83
+ }, 'top-right');
84
+ });
85
+ describe('coordinates', function () {
86
+ var assertCoordinates = function assertCoordinates(mark, rect, pos, expected) {
87
+ it("".concat(mark.x, ", ").concat(mark.y, " -> ").concat(pos, " = ").concat(expected.left, ", ").concat(expected.top), function () {
88
+ var result = (0, _markLabel.coordinates)((0, _utils.graphProps)(), mark, rect, pos);
89
+ expect(result).toEqual(expected);
90
+ });
91
+ };
92
+ assertCoordinates({
93
+ x: 0,
94
+ y: 0
95
+ }, {
96
+ width: 0,
97
+ height: 0
98
+ }, 'top-left', {
99
+ left: -5,
100
+ top: -5
101
+ });
102
+ assertCoordinates({
103
+ x: 0,
104
+ y: 0
105
+ }, {
106
+ width: 0,
107
+ height: 0
108
+ }, 'bottom-left', {
109
+ left: -5,
110
+ top: 5
111
+ });
112
+ assertCoordinates({
113
+ x: 0,
114
+ y: 0
115
+ }, {
116
+ width: 0,
117
+ height: 0
118
+ }, 'top-right', {
119
+ left: 5,
120
+ top: -5
121
+ });
122
+ assertCoordinates({
123
+ x: 0,
124
+ y: 0
125
+ }, {
126
+ width: 0,
127
+ height: 0
128
+ }, 'bottom-right', {
129
+ left: 5,
130
+ top: 5
131
+ });
132
+ });
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFya0xhYmVsIiwiX3V0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwiaW5wdXRSZWYiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJtYXJrIiwieCIsInkiLCJncmFwaFByb3BzIiwiZ2V0R3JhcGhQcm9wcyIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIk1hcmtMYWJlbCIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXJDb21wb25lbnQyIiwiYXNzZXJ0UG9zaXRpb24iLCJyZWN0IiwiZXhwZWN0ZWQiLCJjb25jYXQiLCJ3aWR0aCIsImhlaWdodCIsInJlc3VsdCIsInBvc2l0aW9uIiwidG9FcXVhbCIsImFzc2VydENvb3JkaW5hdGVzIiwicG9zIiwibGVmdCIsInRvcCIsImNvb3JkaW5hdGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9tYXJrLWxhYmVsLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvb3JkaW5hdGVzLCBNYXJrTGFiZWwsIHBvc2l0aW9uIH0gZnJvbSAnLi4vbWFyay1sYWJlbCc7XG5pbXBvcnQgeyBncmFwaFByb3BzIGFzIGdldEdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZGVzY3JpYmUoJ01hcmtMYWJlbCcsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBsZXQgaW5wdXRSZWYgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgaW5wdXRSZWYsXG4gICAgICBtYXJrOiB7IHg6IDEsIHk6IDEgfSxcbiAgICAgIGdyYXBoUHJvcHM6IGdldEdyYXBoUHJvcHMoMCwgMTAsIDAsIDEwKSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8TWFya0xhYmVsIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkaWZmZXJlbnQgbWFyayBwb3NpdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IHg6IDEwLCB5OiAxMCB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgncG9zaXRpb24nLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VydFBvc2l0aW9uID0gKG1hcmssIHJlY3QsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYCR7bWFyay54fSwke21hcmsueX0gKyAke3JlY3Qud2lkdGh9LCR7cmVjdC5oZWlnaHR9ID0+ICR7ZXhwZWN0ZWR9YCwgKCkgPT4ge1xuICAgICAgLy8gd2Ugc2V0IHJhbmdlLm1pbiB0byBhIHZhbHVlIGJlY2F1c2UgaW4gcGl4ZWxzIC0gdGhlIGdyZWF0ZXIgdGhlIFkgdGhlIGxvd2VyIGRvd24gb24gdGhlIHNjcmVlbi5cbiAgICAgIGNvbnN0IGdyYXBoUHJvcHMgPSBnZXRHcmFwaFByb3BzKDAsIDEyLCAxMiwgMCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwb3NpdGlvbihncmFwaFByb3BzLCBtYXJrLCByZWN0KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGFzc2VydFBvc2l0aW9uKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAxMCwgaGVpZ2h0OiAxMCB9LCAndG9wLWxlZnQnKTtcbiAgYXNzZXJ0UG9zaXRpb24oeyB4OiAwLCB5OiAwIH0sIHsgd2lkdGg6IDEsIGhlaWdodDogMSB9LCAnYm90dG9tLXJpZ2h0Jyk7XG4gIGFzc2VydFBvc2l0aW9uKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAxMCwgaGVpZ2h0OiAwIH0sICdib3R0b20tbGVmdCcpO1xuICBhc3NlcnRQb3NpdGlvbih7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAxMCB9LCAndG9wLXJpZ2h0Jyk7XG59KTtcblxuZGVzY3JpYmUoJ2Nvb3JkaW5hdGVzJywgKCkgPT4ge1xuICBjb25zdCBhc3NlcnRDb29yZGluYXRlcyA9IChtYXJrLCByZWN0LCBwb3MsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYCR7bWFyay54fSwgJHttYXJrLnl9IC0+ICR7cG9zfSA9ICR7ZXhwZWN0ZWQubGVmdH0sICR7ZXhwZWN0ZWQudG9wfWAsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNvb3JkaW5hdGVzKGdldEdyYXBoUHJvcHMoKSwgbWFyaywgcmVjdCwgcG9zKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuICBhc3NlcnRDb29yZGluYXRlcyh7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sICd0b3AtbGVmdCcsIHsgbGVmdDogLTUsIHRvcDogLTUgfSk7XG4gIGFzc2VydENvb3JkaW5hdGVzKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSwgJ2JvdHRvbS1sZWZ0JywgeyBsZWZ0OiAtNSwgdG9wOiA1IH0pO1xuICBhc3NlcnRDb29yZGluYXRlcyh7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sICd0b3AtcmlnaHQnLCB7IGxlZnQ6IDUsIHRvcDogLTUgfSk7XG4gIGFzc2VydENvb3JkaW5hdGVzKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSwgJ2JvdHRvbS1yaWdodCcsIHtcbiAgICBsZWZ0OiA1LFxuICAgIHRvcDogNSxcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFzRCxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFF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
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _testUtils = require("@pie-lib/test-utils");
10
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _toggleBar = require("../toggle-bar");
13
+ 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; }
14
+ 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; }
15
+ jest.mock('@pie-lib/drag', function () {
16
+ return {
17
+ DragProvider: function DragProvider(_ref) {
18
+ var children = _ref.children;
19
+ return /*#__PURE__*/_react["default"].createElement("div", {
20
+ "data-testid": "drag-provider"
21
+ }, children);
22
+ }
23
+ };
24
+ });
25
+ jest.mock('@dnd-kit/core', function () {
26
+ return {
27
+ useDraggable: jest.fn(function () {
28
+ return {
29
+ attributes: {
30
+ role: 'button',
31
+ tabIndex: 0
32
+ },
33
+ listeners: {
34
+ onPointerDown: jest.fn()
35
+ },
36
+ setNodeRef: jest.fn(),
37
+ transform: null,
38
+ transition: null,
39
+ isDragging: false
40
+ };
41
+ }),
42
+ useDroppable: jest.fn(function () {
43
+ return {
44
+ setNodeRef: jest.fn(),
45
+ isOver: false,
46
+ active: null
47
+ };
48
+ })
49
+ };
50
+ });
51
+ jest.mock('@dnd-kit/utilities', function () {
52
+ return {
53
+ CSS: {
54
+ Transform: {
55
+ toString: jest.fn(function (transform) {
56
+ return transform ? 'translate3d(0, 0, 0)' : '';
57
+ })
58
+ }
59
+ }
60
+ };
61
+ });
62
+ jest.mock('@dnd-kit/sortable', function () {
63
+ return {
64
+ arrayMove: jest.fn(function (array, from, to) {
65
+ var newArray = (0, _toConsumableArray2["default"])(array);
66
+ var _newArray$splice = newArray.splice(from, 1),
67
+ _newArray$splice2 = (0, _slicedToArray2["default"])(_newArray$splice, 1),
68
+ removed = _newArray$splice2[0];
69
+ newArray.splice(to, 0, removed);
70
+ return newArray;
71
+ })
72
+ };
73
+ });
74
+ jest.mock('@pie-lib/translator', function () {
75
+ return {
76
+ translator: {
77
+ t: function t(key) {
78
+ var parts = key.split('.');
79
+ return parts[parts.length - 1];
80
+ }
81
+ }
82
+ };
83
+ });
84
+ describe('ToggleBar', function () {
85
+ var onChange = jest.fn();
86
+ var onChangeToolsOrder = jest.fn();
87
+ beforeEach(function () {
88
+ onChange.mockClear();
89
+ onChangeToolsOrder.mockClear();
90
+ });
91
+ var renderComponent = function renderComponent(extras) {
92
+ var defaults = {
93
+ className: 'className',
94
+ onChange: onChange,
95
+ onChangeToolsOrder: onChangeToolsOrder,
96
+ options: ['point', 'line'],
97
+ language: 'en'
98
+ };
99
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
100
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toggleBar.ToggleBar, props));
101
+ };
102
+ describe('rendering', function () {
103
+ it('renders without crashing', function () {
104
+ var _renderComponent = renderComponent(),
105
+ container = _renderComponent.container;
106
+ expect(container.firstChild).toBeInTheDocument();
107
+ });
108
+ it('renders tool buttons for valid tools', function () {
109
+ renderComponent({
110
+ options: ['point', 'line', 'circle']
111
+ });
112
+ expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
113
+ expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
114
+ expect(_testUtils.screen.getByText(/circle/i)).toBeInTheDocument();
115
+ });
116
+ it('does not render invalid tool options', function () {
117
+ renderComponent({
118
+ options: ['point', 'invalid-tool', 'line']
119
+ });
120
+ expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
121
+ expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
122
+ expect(_testUtils.screen.queryByText(/invalid-tool/i)).not.toBeInTheDocument();
123
+ });
124
+ it('highlights selected tool', function () {
125
+ var _renderComponent2 = renderComponent({
126
+ selectedToolType: 'line'
127
+ }),
128
+ container = _renderComponent2.container;
129
+ var selectedButton = _testUtils.screen.getByText(/line/i).closest('button');
130
+ expect(selectedButton).toHaveAttribute('value', 'line');
131
+ });
132
+ });
133
+ describe('interactions', function () {
134
+ it('calls onChange when tool button is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
135
+ var user, pointButton;
136
+ return _regenerator["default"].wrap(function (_context) {
137
+ while (1) switch (_context.prev = _context.next) {
138
+ case 0:
139
+ user = _userEvent["default"].setup();
140
+ renderComponent({
141
+ options: ['point', 'line']
142
+ });
143
+ pointButton = _testUtils.screen.getByText(/point/i).closest('button');
144
+ _context.next = 1;
145
+ return user.click(pointButton);
146
+ case 1:
147
+ expect(onChange).toHaveBeenCalledWith('point');
148
+ case 2:
149
+ case "end":
150
+ return _context.stop();
151
+ }
152
+ }, _callee);
153
+ })));
154
+ it('calls onChange with selected tool type', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
155
+ var user, lineButton;
156
+ return _regenerator["default"].wrap(function (_context2) {
157
+ while (1) switch (_context2.prev = _context2.next) {
158
+ case 0:
159
+ user = _userEvent["default"].setup();
160
+ renderComponent({
161
+ options: ['point', 'line'],
162
+ selectedToolType: 'point'
163
+ });
164
+ lineButton = _testUtils.screen.getByText(/line/i).closest('button');
165
+ _context2.next = 1;
166
+ return user.click(lineButton);
167
+ case 1:
168
+ expect(onChange).toHaveBeenCalledWith('line');
169
+ case 2:
170
+ case "end":
171
+ return _context2.stop();
172
+ }
173
+ }, _callee2);
174
+ })));
175
+ it('disables buttons when disabled prop is true', function () {
176
+ renderComponent({
177
+ disabled: true,
178
+ options: ['point', 'line']
179
+ });
180
+ var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
181
+ var lineButton = _testUtils.screen.getByText(/line/i).closest('button');
182
+ expect(pointButton).toBeDisabled();
183
+ expect(lineButton).toBeDisabled();
184
+ });
185
+ it('does not call onChange when disabled', function () {
186
+ renderComponent({
187
+ disabled: true,
188
+ options: ['point']
189
+ });
190
+ var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
191
+ expect(pointButton).toBeDisabled();
192
+ // Note: Cannot test click on disabled button with pointer-events: none
193
+ // The disabled state is verified above
194
+ });
195
+ });
196
+ });
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl91c2VyRXZlbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX3RvZ2dsZUJhciIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiamVzdCIsIm1vY2siLCJEcmFnUHJvdmlkZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwidXNlRHJhZ2dhYmxlIiwiZm4iLCJhdHRyaWJ1dGVzIiwicm9sZSIsInRhYkluZGV4IiwibGlzdGVuZXJzIiwib25Qb2ludGVyRG93biIsInNldE5vZGVSZWYiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwiaXNEcmFnZ2luZyIsInVzZURyb3BwYWJsZSIsImlzT3ZlciIsImFjdGl2ZSIsIkNTUyIsIlRyYW5zZm9ybSIsInRvU3RyaW5nIiwiYXJyYXlNb3ZlIiwiYXJyYXkiLCJmcm9tIiwidG8iLCJuZXdBcnJheSIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJfbmV3QXJyYXkkc3BsaWNlIiwic3BsaWNlIiwiX25ld0FycmF5JHNwbGljZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJyZW1vdmVkIiwidHJhbnNsYXRvciIsImtleSIsInBhcnRzIiwic3BsaXQiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwib25DaGFuZ2VUb29sc09yZGVyIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NOYW1lIiwib3B0aW9ucyIsImxhbmd1YWdlIiwicHJvcHMiLCJyZW5kZXIiLCJUb2dnbGVCYXIiLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJxdWVyeUJ5VGV4dCIsIm5vdCIsIl9yZW5kZXJDb21wb25lbnQyIiwic2VsZWN0ZWRUb29sVHlwZSIsInNlbGVjdGVkQnV0dG9uIiwiY2xvc2VzdCIsInRvSGF2ZUF0dHJpYnV0ZSIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwidXNlciIsInBvaW50QnV0dG9uIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJzdG9wIiwiX2NhbGxlZTIiLCJsaW5lQnV0dG9uIiwiX2NvbnRleHQyIiwiZGlzYWJsZWQiLCJ0b0JlRGlzYWJsZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3RvZ2dsZS1iYXIudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4gfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCB1c2VyRXZlbnQgZnJvbSAnQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IFRvZ2dsZUJhciB9IGZyb20gJy4uL3RvZ2dsZS1iYXInO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLXByb3ZpZGVyXCI+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC9jb3JlJywgKCkgPT4gKHtcbiAgdXNlRHJhZ2dhYmxlOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgYXR0cmlidXRlczoge1xuICAgICAgcm9sZTogJ2J1dHRvbicsXG4gICAgICB0YWJJbmRleDogMCxcbiAgICB9LFxuICAgIGxpc3RlbmVyczoge1xuICAgICAgb25Qb2ludGVyRG93bjogamVzdC5mbigpLFxuICAgIH0sXG4gICAgc2V0Tm9kZVJlZjogamVzdC5mbigpLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICB0cmFuc2l0aW9uOiBudWxsLFxuICAgIGlzRHJhZ2dpbmc6IGZhbHNlLFxuICB9KSksXG4gIHVzZURyb3BwYWJsZTogamVzdC5mbigoKSA9PiAoe1xuICAgIHNldE5vZGVSZWY6IGplc3QuZm4oKSxcbiAgICBpc092ZXI6IGZhbHNlLFxuICAgIGFjdGl2ZTogbnVsbCxcbiAgfSkpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BkbmQta2l0L3V0aWxpdGllcycsICgpID0+ICh7XG4gIENTUzoge1xuICAgIFRyYW5zZm9ybToge1xuICAgICAgdG9TdHJpbmc6IGplc3QuZm4oKHRyYW5zZm9ybSkgPT4gKHRyYW5zZm9ybSA/ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScgOiAnJykpLFxuICAgIH0sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQGRuZC1raXQvc29ydGFibGUnLCAoKSA9PiAoe1xuICBhcnJheU1vdmU6IGplc3QuZm4oKGFycmF5LCBmcm9tLCB0bykgPT4ge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBjb25zdCBbcmVtb3ZlZF0gPSBuZXdBcnJheS5zcGxpY2UoZnJvbSwgMSk7XG4gICAgbmV3QXJyYXkuc3BsaWNlKHRvLCAwLCByZW1vdmVkKTtcbiAgICByZXR1cm4gbmV3QXJyYXk7XG4gIH0pLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3RyYW5zbGF0b3InLCAoKSA9PiAoe1xuICB0cmFuc2xhdG9yOiB7XG4gICAgdDogKGtleSkgPT4ge1xuICAgICAgY29uc3QgcGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICB9LFxuICB9LFxufSkpO1xuXG5kZXNjcmliZSgnVG9nZ2xlQmFyJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGxldCBvbkNoYW5nZVRvb2xzT3JkZXIgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UubW9ja0NsZWFyKCk7XG4gICAgb25DaGFuZ2VUb29sc09yZGVyLm1vY2tDbGVhcigpO1xuICB9KTtcblxuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNoYW5nZVRvb2xzT3JkZXIsXG4gICAgICBvcHRpb25zOiBbJ3BvaW50JywgJ2xpbmUnXSxcbiAgICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxUb2dnbGVCYXIgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgdG9vbCBidXR0b25zIGZvciB2YWxpZCB0b29scycsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IG9wdGlvbnM6IFsncG9pbnQnLCAnbGluZScsICdjaXJjbGUnXSB9KTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9wb2ludC9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL2NpcmNsZS9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCByZW5kZXIgaW52YWxpZCB0b29sIG9wdGlvbnMnLCAoKSA9PiB7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyBvcHRpb25zOiBbJ3BvaW50JywgJ2ludmFsaWQtdG9vbCcsICdsaW5lJ10gfSk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvbGluZS9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoL2ludmFsaWQtdG9vbC9pKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGlnaGxpZ2h0cyBzZWxlY3RlZCB0b29sJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IHNlbGVjdGVkVG9vbFR5cGU6ICdsaW5lJyB9KTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkQnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvbGluZS9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGV4cGVjdChzZWxlY3RlZEJ1dHRvbikudG9IYXZlQXR0cmlidXRlKCd2YWx1ZScsICdsaW5lJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gdG9vbCBidXR0b24gaXMgY2xpY2tlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IG9wdGlvbnM6IFsncG9pbnQnLCAnbGluZSddIH0pO1xuXG4gICAgICBjb25zdCBwb2ludEJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgYXdhaXQgdXNlci5jbGljayhwb2ludEJ1dHRvbik7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3BvaW50Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugd2l0aCBzZWxlY3RlZCB0b29sIHR5cGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyBvcHRpb25zOiBbJ3BvaW50JywgJ2xpbmUnXSwgc2VsZWN0ZWRUb29sVHlwZTogJ3BvaW50JyB9KTtcblxuICAgICAgY29uc3QgbGluZUJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKGxpbmVCdXR0b24pO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdsaW5lJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGlzYWJsZXMgYnV0dG9ucyB3aGVuIGRpc2FibGVkIHByb3AgaXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IGRpc2FibGVkOiB0cnVlLCBvcHRpb25zOiBbJ3BvaW50JywgJ2xpbmUnXSB9KTtcblxuICAgICAgY29uc3QgcG9pbnRCdXR0b24gPSBzY3JlZW4uZ2V0QnlUZXh0KC9wb2ludC9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGNvbnN0IGxpbmVCdXR0b24gPSBzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuXG4gICAgICBleHBlY3QocG9pbnRCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgICAgZXhwZWN0KGxpbmVCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IGNhbGwgb25DaGFuZ2Ugd2hlbiBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IGRpc2FibGVkOiB0cnVlLCBvcHRpb25zOiBbJ3BvaW50J10gfSk7XG5cbiAgICAgIGNvbnN0IHBvaW50QnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBleHBlY3QocG9pbnRCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgICAgLy8gTm90ZTogQ2Fubm90IHRlc3QgY2xpY2sgb24gZGlzYWJsZWQgYnV0dG9uIHdpdGggcG9pbnRlci1ldmVudHM6IG5vbmVcbiAgICAgIC8vIFRoZSBkaXNhYmxlZCBzdGF0ZSBpcyB2ZXJpZmllZCBhYm92ZVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUEwQyxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FB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
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _testUtils = require("@pie-lib/test-utils");
10
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _toolMenu = _interopRequireDefault(require("../tool-menu"));
13
+ 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; }
14
+ 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; }
15
+ jest.mock('@pie-lib/drag', function () {
16
+ return {
17
+ DragProvider: function DragProvider(_ref) {
18
+ var children = _ref.children;
19
+ return /*#__PURE__*/_react["default"].createElement("div", {
20
+ "data-testid": "drag-provider"
21
+ }, children);
22
+ }
23
+ };
24
+ });
25
+ jest.mock('@dnd-kit/core', function () {
26
+ return {
27
+ useDraggable: jest.fn(function () {
28
+ return {
29
+ attributes: {
30
+ role: 'button',
31
+ tabIndex: 0
32
+ },
33
+ listeners: {
34
+ onPointerDown: jest.fn()
35
+ },
36
+ setNodeRef: jest.fn(),
37
+ transform: null,
38
+ transition: null,
39
+ isDragging: false
40
+ };
41
+ }),
42
+ useDroppable: jest.fn(function () {
43
+ return {
44
+ setNodeRef: jest.fn(),
45
+ isOver: false,
46
+ active: null
47
+ };
48
+ })
49
+ };
50
+ });
51
+ jest.mock('@dnd-kit/utilities', function () {
52
+ return {
53
+ CSS: {
54
+ Transform: {
55
+ toString: jest.fn(function (transform) {
56
+ return transform ? 'translate3d(0, 0, 0)' : '';
57
+ })
58
+ }
59
+ }
60
+ };
61
+ });
62
+ jest.mock('@dnd-kit/sortable', function () {
63
+ return {
64
+ arrayMove: jest.fn(function (array, from, to) {
65
+ var newArray = (0, _toConsumableArray2["default"])(array);
66
+ var _newArray$splice = newArray.splice(from, 1),
67
+ _newArray$splice2 = (0, _slicedToArray2["default"])(_newArray$splice, 1),
68
+ removed = _newArray$splice2[0];
69
+ newArray.splice(to, 0, removed);
70
+ return newArray;
71
+ })
72
+ };
73
+ });
74
+ describe('ToolMenu', function () {
75
+ var onChange = jest.fn();
76
+ var onChangeTools = jest.fn();
77
+ beforeEach(function () {
78
+ onChange.mockClear();
79
+ onChangeTools.mockClear();
80
+ });
81
+ var renderComponent = function renderComponent(extras) {
82
+ var defaults = {
83
+ className: 'className',
84
+ onChange: onChange,
85
+ onChangeTools: onChangeTools,
86
+ currentToolType: 'point',
87
+ toolbarTools: ['point', 'line'],
88
+ language: 'en'
89
+ };
90
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
91
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toolMenu["default"], props));
92
+ };
93
+ describe('rendering', function () {
94
+ it('renders without crashing', function () {
95
+ var _renderComponent = renderComponent(),
96
+ container = _renderComponent.container;
97
+ expect(container.firstChild).toBeInTheDocument();
98
+ });
99
+ it('renders ToggleBar with correct props', function () {
100
+ renderComponent({
101
+ toolbarTools: ['point', 'line', 'circle']
102
+ });
103
+ expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
104
+ expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
105
+ expect(_testUtils.screen.getByText(/circle/i)).toBeInTheDocument();
106
+ });
107
+ it('passes currentToolType to ToggleBar', function () {
108
+ renderComponent({
109
+ currentToolType: 'line'
110
+ });
111
+ var selectedButton = _testUtils.screen.getByText(/line/i).closest('button');
112
+ expect(selectedButton).toBeInTheDocument();
113
+ });
114
+ });
115
+ describe('interactions', function () {
116
+ it('calls onChange when tool is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
117
+ var user, lineButton;
118
+ return _regenerator["default"].wrap(function (_context) {
119
+ while (1) switch (_context.prev = _context.next) {
120
+ case 0:
121
+ user = _userEvent["default"].setup();
122
+ renderComponent();
123
+ lineButton = _testUtils.screen.getByText(/line/i).closest('button');
124
+ _context.next = 1;
125
+ return user.click(lineButton);
126
+ case 1:
127
+ expect(onChange).toHaveBeenCalledWith('line');
128
+ case 2:
129
+ case "end":
130
+ return _context.stop();
131
+ }
132
+ }, _callee);
133
+ })));
134
+ it('calls onChangeTools when tools order changes', function () {
135
+ renderComponent({
136
+ draggableTools: true
137
+ });
138
+ // Note: Drag-and-drop testing requires more complex setup with @dnd-kit/test-utils
139
+ // For now, we verify the component renders with draggableTools enabled
140
+ expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
141
+ });
142
+ it('disables tools when disabled prop is true', function () {
143
+ renderComponent({
144
+ disabled: true
145
+ });
146
+ var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
147
+ expect(pointButton).toBeDisabled();
148
+ });
149
+ });
150
+ });
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl91c2VyRXZlbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX3Rvb2xNZW51Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIkRyYWdQcm92aWRlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJ1c2VEcmFnZ2FibGUiLCJmbiIsImF0dHJpYnV0ZXMiLCJyb2xlIiwidGFiSW5kZXgiLCJsaXN0ZW5lcnMiLCJvblBvaW50ZXJEb3duIiwic2V0Tm9kZVJlZiIsInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJpc0RyYWdnaW5nIiwidXNlRHJvcHBhYmxlIiwiaXNPdmVyIiwiYWN0aXZlIiwiQ1NTIiwiVHJhbnNmb3JtIiwidG9TdHJpbmciLCJhcnJheU1vdmUiLCJhcnJheSIsImZyb20iLCJ0byIsIm5ld0FycmF5IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIl9uZXdBcnJheSRzcGxpY2UiLCJzcGxpY2UiLCJfbmV3QXJyYXkkc3BsaWNlMiIsIl9zbGljZWRUb0FycmF5MiIsInJlbW92ZWQiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwib25DaGFuZ2VUb29scyIsImJlZm9yZUVhY2giLCJtb2NrQ2xlYXIiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzTmFtZSIsImN1cnJlbnRUb29sVHlwZSIsInRvb2xiYXJUb29scyIsImxhbmd1YWdlIiwicHJvcHMiLCJyZW5kZXIiLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJzZWxlY3RlZEJ1dHRvbiIsImNsb3Nlc3QiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInVzZXIiLCJsaW5lQnV0dG9uIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJzdG9wIiwiZHJhZ2dhYmxlVG9vbHMiLCJkaXNhYmxlZCIsInBvaW50QnV0dG9uIiwidG9CZURpc2FibGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy90b29sLW1lbnUudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4gfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCB1c2VyRXZlbnQgZnJvbSAnQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBUb29sTWVudSBmcm9tICcuLi90b29sLW1lbnUnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLXByb3ZpZGVyXCI+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC9jb3JlJywgKCkgPT4gKHtcbiAgdXNlRHJhZ2dhYmxlOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgYXR0cmlidXRlczoge1xuICAgICAgcm9sZTogJ2J1dHRvbicsXG4gICAgICB0YWJJbmRleDogMCxcbiAgICB9LFxuICAgIGxpc3RlbmVyczoge1xuICAgICAgb25Qb2ludGVyRG93bjogamVzdC5mbigpLFxuICAgIH0sXG4gICAgc2V0Tm9kZVJlZjogamVzdC5mbigpLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICB0cmFuc2l0aW9uOiBudWxsLFxuICAgIGlzRHJhZ2dpbmc6IGZhbHNlLFxuICB9KSksXG4gIHVzZURyb3BwYWJsZTogamVzdC5mbigoKSA9PiAoe1xuICAgIHNldE5vZGVSZWY6IGplc3QuZm4oKSxcbiAgICBpc092ZXI6IGZhbHNlLFxuICAgIGFjdGl2ZTogbnVsbCxcbiAgfSkpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BkbmQta2l0L3V0aWxpdGllcycsICgpID0+ICh7XG4gIENTUzoge1xuICAgIFRyYW5zZm9ybToge1xuICAgICAgdG9TdHJpbmc6IGplc3QuZm4oKHRyYW5zZm9ybSkgPT4gKHRyYW5zZm9ybSA/ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScgOiAnJykpLFxuICAgIH0sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQGRuZC1raXQvc29ydGFibGUnLCAoKSA9PiAoe1xuICBhcnJheU1vdmU6IGplc3QuZm4oKGFycmF5LCBmcm9tLCB0bykgPT4ge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBjb25zdCBbcmVtb3ZlZF0gPSBuZXdBcnJheS5zcGxpY2UoZnJvbSwgMSk7XG4gICAgbmV3QXJyYXkuc3BsaWNlKHRvLCAwLCByZW1vdmVkKTtcbiAgICByZXR1cm4gbmV3QXJyYXk7XG4gIH0pLFxufSkpO1xuXG5kZXNjcmliZSgnVG9vbE1lbnUnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgbGV0IG9uQ2hhbmdlVG9vbHMgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UubW9ja0NsZWFyKCk7XG4gICAgb25DaGFuZ2VUb29scy5tb2NrQ2xlYXIoKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyQ29tcG9uZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25DaGFuZ2VUb29scyxcbiAgICAgIGN1cnJlbnRUb29sVHlwZTogJ3BvaW50JyxcbiAgICAgIHRvb2xiYXJUb29sczogWydwb2ludCcsICdsaW5lJ10sXG4gICAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8VG9vbE1lbnUgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgVG9nZ2xlQmFyIHdpdGggY29ycmVjdCBwcm9wcycsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IHRvb2xiYXJUb29sczogWydwb2ludCcsICdsaW5lJywgJ2NpcmNsZSddIH0pO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvY2lyY2xlL2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Bhc3NlcyBjdXJyZW50VG9vbFR5cGUgdG8gVG9nZ2xlQmFyJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgY3VycmVudFRvb2xUeXBlOiAnbGluZScgfSk7XG4gICAgICBjb25zdCBzZWxlY3RlZEJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBleHBlY3Qoc2VsZWN0ZWRCdXR0b24pLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gdG9vbCBpcyBzZWxlY3RlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlckNvbXBvbmVudCgpO1xuXG4gICAgICBjb25zdCBsaW5lQnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvbGluZS9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGF3YWl0IHVzZXIuY2xpY2sobGluZUJ1dHRvbik7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2xpbmUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZVRvb2xzIHdoZW4gdG9vbHMgb3JkZXIgY2hhbmdlcycsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IGRyYWdnYWJsZVRvb2xzOiB0cnVlIH0pO1xuICAgICAgLy8gTm90ZTogRHJhZy1hbmQtZHJvcCB0ZXN0aW5nIHJlcXVpcmVzIG1vcmUgY29tcGxleCBzZXR1cCB3aXRoIEBkbmQta2l0L3Rlc3QtdXRpbHNcbiAgICAgIC8vIEZvciBub3csIHdlIHZlcmlmeSB0aGUgY29tcG9uZW50IHJlbmRlcnMgd2l0aCBkcmFnZ2FibGVUb29scyBlbmFibGVkXG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGlzYWJsZXMgdG9vbHMgd2hlbiBkaXNhYmxlZCBwcm9wIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyBkaXNhYmxlZDogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IHBvaW50QnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBleHBlY3QocG9pbnRCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUFvQyxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENB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
@@ -0,0 +1,31 @@
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 _undoRedo = _interopRequireDefault(require("../undo-redo"));
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ describe('UndoRedo', function () {
11
+ var onUndo = jest.fn();
12
+ var onRedo = jest.fn();
13
+ var onReset = jest.fn();
14
+ var renderComponent = function renderComponent(extras) {
15
+ var defaults = {
16
+ onUndo: onUndo,
17
+ onRedo: onRedo,
18
+ onReset: onReset
19
+ };
20
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
21
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_undoRedo["default"], props));
22
+ };
23
+ describe('rendering', function () {
24
+ it('renders without crashing', function () {
25
+ var _renderComponent = renderComponent(),
26
+ container = _renderComponent.container;
27
+ expect(container.firstChild).toBeInTheDocument();
28
+ });
29
+ });
30
+ });
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdW5kb1JlZG8iLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImRlc2NyaWJlIiwib25VbmRvIiwiamVzdCIsImZuIiwib25SZWRvIiwib25SZXNldCIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsImRlZmF1bHRzIiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy91bmRvLXJlZG8udGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHBpZS1saWIvdGVzdC11dGlscyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFVuZG9SZWRvIGZyb20gJy4uL3VuZG8tcmVkbyc7XG5cbmRlc2NyaWJlKCdVbmRvUmVkbycsICgpID0+IHtcbiAgbGV0IG9uVW5kbyA9IGplc3QuZm4oKTtcbiAgbGV0IG9uUmVkbyA9IGplc3QuZm4oKTtcbiAgbGV0IG9uUmVzZXQgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG9uVW5kbyxcbiAgICAgIG9uUmVkbyxcbiAgICAgIG9uUmVzZXQsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPFVuZG9SZWRvIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFBb0MsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFFcENvQixRQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07RUFDekIsSUFBSUMsTUFBTSxHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0VBQ3RCLElBQUlDLE1BQU0sR0FBR0YsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztFQUN0QixJQUFJRSxPQUFPLEdBQUdILElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7RUFDdkIsSUFBTUcsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxNQUFNLEVBQUs7SUFDbEMsSUFBTUMsUUFBUSxHQUFHO01BQ2ZQLE1BQU0sRUFBTkEsTUFBTTtNQUNORyxNQUFNLEVBQU5BLE1BQU07TUFDTkMsT0FBTyxFQUFQQTtJQUNGLENBQUM7SUFDRCxJQUFNSSxLQUFLLEdBQUFqQixhQUFBLENBQUFBLGFBQUEsS0FBUWdCLFFBQVEsR0FBS0QsTUFBTSxDQUFFO0lBQ3hDLE9BQU8sSUFBQUcsaUJBQU0sZUFBQ2xDLE1BQUEsWUFBQW1DLGFBQUEsQ0FBQ2pDLFNBQUEsV0FBUSxFQUFLK0IsS0FBUSxDQUFDLENBQUM7RUFDeEMsQ0FBQztFQUNEVCxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07SUFDMUJZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO01BQ25DLElBQUFDLGdCQUFBLEdBQXNCUCxlQUFlLENBQUMsQ0FBQztRQUEvQlEsU0FBUyxHQUFBRCxnQkFBQSxDQUFUQyxTQUFTO01BQ2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _react = require("react");
4
+ var _useDebounce = require("../use-debounce");
5
+ jest.useFakeTimers();
6
+ jest.mock('react', function () {
7
+ return {
8
+ useState: jest.fn(),
9
+ useEffect: jest.fn(function (fn, deps) {
10
+ return fn();
11
+ })
12
+ };
13
+ });
14
+ describe('useDebounce', function () {
15
+ it('..', function () {
16
+ var debouncedValue = null;
17
+ var setDebouncedValue = jest.fn();
18
+ _react.useState.mockReturnValue([debouncedValue, setDebouncedValue]);
19
+ (0, _useDebounce.useDebounce)('foo', 1000);
20
+ jest.runAllTimers();
21
+ expect(setDebouncedValue).toHaveBeenCalledWith('foo');
22
+ });
23
+ });
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZURlYm91bmNlIiwiamVzdCIsInVzZUZha2VUaW1lcnMiLCJtb2NrIiwidXNlU3RhdGUiLCJmbiIsInVzZUVmZmVjdCIsImRlcHMiLCJkZXNjcmliZSIsIml0IiwiZGVib3VuY2VkVmFsdWUiLCJzZXREZWJvdW5jZWRWYWx1ZSIsIm1vY2tSZXR1cm5WYWx1ZSIsInVzZURlYm91bmNlIiwicnVuQWxsVGltZXJzIiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3VzZS1kZWJvdW5jZS50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuLi91c2UtZGVib3VuY2UnO1xuXG5qZXN0LnVzZUZha2VUaW1lcnMoKTtcblxuamVzdC5tb2NrKCdyZWFjdCcsICgpID0+ICh7XG4gIHVzZVN0YXRlOiBqZXN0LmZuKCksXG4gIHVzZUVmZmVjdDogamVzdC5mbigoZm4sIGRlcHMpID0+IGZuKCkpLFxufSkpO1xuXG5kZXNjcmliZSgndXNlRGVib3VuY2UnLCAoKSA9PiB7XG4gIGl0KCcuLicsICgpID0+IHtcbiAgICBjb25zdCBkZWJvdW5jZWRWYWx1ZSA9IG51bGw7XG4gICAgY29uc3Qgc2V0RGVib3VuY2VkVmFsdWUgPSBqZXN0LmZuKCk7XG5cbiAgICB1c2VTdGF0ZS5tb2NrUmV0dXJuVmFsdWUoW2RlYm91bmNlZFZhbHVlLCBzZXREZWJvdW5jZWRWYWx1ZV0pO1xuICAgIHVzZURlYm91bmNlKCdmb28nLCAxMDAwKTtcbiAgICBqZXN0LnJ1bkFsbFRpbWVycygpO1xuICAgIGV4cGVjdChzZXREZWJvdW5jZWRWYWx1ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2ZvbycpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUVBRSxJQUFJLENBQUNDLGFBQWEsQ0FBQyxDQUFDO0FBRXBCRCxJQUFJLENBQUNFLElBQUksQ0FBQyxPQUFPLEVBQUU7RUFBQSxPQUFPO0lBQ3hCQyxRQUFRLEVBQUVILElBQUksQ0FBQ0ksRUFBRSxDQUFDLENBQUM7SUFDbkJDLFNBQVMsRUFBRUwsSUFBSSxDQUFDSSxFQUFFLENBQUMsVUFBQ0EsRUFBRSxFQUFFRSxJQUFJO01BQUEsT0FBS0YsRUFBRSxDQUFDLENBQUM7SUFBQTtFQUN2QyxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBTTtFQUM1QkMsRUFBRSxDQUFDLElBQUksRUFBRSxZQUFNO0lBQ2IsSUFBTUMsY0FBYyxHQUFHLElBQUk7SUFDM0IsSUFBTUMsaUJBQWlCLEdBQUdWLElBQUksQ0FBQ0ksRUFBRSxDQUFDLENBQUM7SUFFbkNELGVBQVEsQ0FBQ1EsZUFBZSxDQUFDLENBQUNGLGNBQWMsRUFBRUMsaUJBQWlCLENBQUMsQ0FBQztJQUM3RCxJQUFBRSx3QkFBVyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDeEJaLElBQUksQ0FBQ2EsWUFBWSxDQUFDLENBQUM7SUFDbkJDLE1BQU0sQ0FBQ0osaUJBQWlCLENBQUMsQ0FBQ0ssb0JBQW9CLENBQUMsS0FBSyxDQUFDO0VBQ3ZELENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==