@pie-lib/charting 6.2.0-next.0 → 6.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 (59) hide show
  1. package/lib/__tests__/actions-button.test.js +332 -0
  2. package/lib/__tests__/axes.test.js +746 -0
  3. package/lib/__tests__/chart-setup.test.js +796 -0
  4. package/lib/__tests__/chart-type.test.js +25 -0
  5. package/lib/__tests__/chart.test.js +103 -0
  6. package/lib/__tests__/grid.test.js +39 -0
  7. package/lib/__tests__/key-legend.test.js +235 -0
  8. package/lib/__tests__/mark-label.test.js +46 -0
  9. package/lib/__tests__/tool-menu.test.js +627 -0
  10. package/lib/__tests__/utils.js +56 -0
  11. package/lib/__tests__/utils.test.js +186 -0
  12. package/lib/actions-button.js +1 -1
  13. package/lib/axes.js +1 -1
  14. package/lib/bars/__tests__/bar.test.js +53 -0
  15. package/lib/bars/__tests__/histogram.test.js +53 -0
  16. package/lib/bars/__tests__/utils.js +50 -0
  17. package/lib/bars/bar.js +1 -1
  18. package/lib/bars/common/__tests__/bars.test.js +76 -0
  19. package/lib/bars/common/__tests__/utils.js +50 -0
  20. package/lib/bars/common/bars.js +1 -1
  21. package/lib/bars/common/correct-check-icon.js +1 -1
  22. package/lib/bars/histogram.js +1 -1
  23. package/lib/chart-setup.js +1 -1
  24. package/lib/chart-type.js +1 -1
  25. package/lib/chart-types.js +1 -1
  26. package/lib/chart.js +1 -1
  27. package/lib/common/__tests__/correctness-indicators.test.js +887 -0
  28. package/lib/common/__tests__/drag-handle.test.js +73 -0
  29. package/lib/common/__tests__/utils.js +50 -0
  30. package/lib/common/correctness-indicators.js +1 -1
  31. package/lib/common/drag-handle.js +1 -1
  32. package/lib/common/drag-icon.js +1 -1
  33. package/lib/common/styles.js +1 -1
  34. package/lib/grid.js +1 -1
  35. package/lib/index.js +1 -1
  36. package/lib/key-legend.js +1 -1
  37. package/lib/line/__tests__/line-cross.test.js +617 -0
  38. package/lib/line/__tests__/line-dot.test.js +47 -0
  39. package/lib/line/__tests__/utils.js +56 -0
  40. package/lib/line/common/__tests__/drag-handle.test.js +73 -0
  41. package/lib/line/common/__tests__/line.test.js +92 -0
  42. package/lib/line/common/__tests__/utils.js +50 -0
  43. package/lib/line/common/drag-handle.js +1 -1
  44. package/lib/line/common/line.js +1 -1
  45. package/lib/line/line-cross.js +1 -1
  46. package/lib/line/line-dot.js +1 -1
  47. package/lib/mark-label.js +1 -1
  48. package/lib/plot/__tests__/dot.test.js +513 -0
  49. package/lib/plot/__tests__/line.test.js +566 -0
  50. package/lib/plot/__tests__/utils.js +50 -0
  51. package/lib/plot/common/__tests__/plot.test.js +79 -0
  52. package/lib/plot/common/__tests__/utils.js +50 -0
  53. package/lib/plot/common/plot.js +1 -1
  54. package/lib/plot/dot.js +1 -1
  55. package/lib/plot/line.js +1 -1
  56. package/lib/tool-menu.js +1 -1
  57. package/lib/utils.js +1 -1
  58. package/package.json +8 -11
  59. package/LICENSE.md +0 -5
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _testUtils = require("@pie-lib/test-utils");
6
+ var _chartType = _interopRequireDefault(require("../chart-type"));
7
+ describe('ChartType', function () {
8
+ var props;
9
+ var onChange = jest.fn();
10
+ beforeEach(function () {
11
+ props = {
12
+ classes: {},
13
+ value: 'bar',
14
+ onChange: onChange
15
+ };
16
+ });
17
+ describe('rendering', function () {
18
+ it('renders chart type selector', function () {
19
+ var _render = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_chartType["default"], props)),
20
+ container = _render.container;
21
+ expect(container.firstChild).toBeInTheDocument();
22
+ });
23
+ });
24
+ });
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90ZXN0VXRpbHMiLCJfY2hhcnRUeXBlIiwiZGVzY3JpYmUiLCJwcm9wcyIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwiYmVmb3JlRWFjaCIsImNsYXNzZXMiLCJ2YWx1ZSIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2NoYXJ0LXR5cGUudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IENoYXJ0VHlwZSBmcm9tICcuLi9jaGFydC10eXBlJztcblxuZGVzY3JpYmUoJ0NoYXJ0VHlwZScsICgpID0+IHtcbiAgbGV0IHByb3BzO1xuICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBwcm9wcyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgdmFsdWU6ICdiYXInLFxuICAgICAgb25DaGFuZ2UsXG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBjaGFydCB0eXBlIHNlbGVjdG9yJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hhcnRUeXBlIHsuLi5wcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFNO0VBQzFCLElBQUlDLEtBQUs7RUFDVCxJQUFNQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7RUFFMUJDLFVBQVUsQ0FBQyxZQUFNO0lBQ2ZKLEtBQUssR0FBRztNQUNOSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1hDLEtBQUssRUFBRSxLQUFLO01BQ1pMLFFBQVEsRUFBUkE7SUFDRixDQUFDO0VBQ0gsQ0FBQyxDQUFDO0VBRUZGLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQlEsRUFBRSxDQUFDLDZCQUE2QixFQUFFLFlBQU07TUFDdEMsSUFBQUMsT0FBQSxHQUFzQixJQUFBQyxpQkFBTSxlQUFDZixNQUFBLFlBQUFnQixhQUFBLENBQUNaLFVBQUEsV0FBUyxFQUFLRSxLQUFRLENBQUMsQ0FBQztRQUE5Q1csU0FBUyxHQUFBSCxPQUFBLENBQVRHLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _testUtils = require("@pie-lib/test-utils");
7
+ var _chart = require("../chart");
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('ChartAxes', function () {
12
+ var onDataChange = jest.fn();
13
+ var renderComponent = function renderComponent(extras) {
14
+ var defaults = {
15
+ classes: {},
16
+ onDataChange: onDataChange,
17
+ className: 'className',
18
+ graphProps: (0, _utils.graphProps)(),
19
+ xBand: (0, _utils.createBandScale)(['a', 'b', 'c'], [0, 100]),
20
+ charts: [{
21
+ type: 'bar',
22
+ Component: function Component() {
23
+ return /*#__PURE__*/_react["default"].createElement("div", null);
24
+ }
25
+ }],
26
+ chartType: 'bar',
27
+ domain: {},
28
+ range: {
29
+ min: 0,
30
+ max: 10
31
+ },
32
+ size: {
33
+ width: 100,
34
+ height: 100
35
+ },
36
+ data: []
37
+ };
38
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
39
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_chart.Chart, props));
40
+ };
41
+ describe('rendering', function () {
42
+ it('renders chart container', function () {
43
+ var _renderComponent = renderComponent(),
44
+ container = _renderComponent.container;
45
+ expect(container.firstChild).toBeInTheDocument();
46
+ expect(container.querySelector('svg')).toBeInTheDocument();
47
+ });
48
+ it('renders chart with default size', function () {
49
+ var _renderComponent2 = renderComponent(),
50
+ container = _renderComponent2.container;
51
+ var svg = container.querySelector('svg');
52
+ expect(svg).toBeInTheDocument();
53
+ expect(svg).toHaveAttribute('width', '240');
54
+ expect(svg).toHaveAttribute('height', '240');
55
+ });
56
+ it('renders chart when size is not defined', function () {
57
+ var _renderComponent3 = renderComponent({
58
+ size: undefined
59
+ }),
60
+ container = _renderComponent3.container;
61
+ expect(container.firstChild).toBeInTheDocument();
62
+ var svg = container.querySelector('svg');
63
+ expect(svg).toBeInTheDocument();
64
+ });
65
+ it('renders chart without chartType property', function () {
66
+ var _renderComponent4 = renderComponent({
67
+ chartType: null
68
+ }),
69
+ container = _renderComponent4.container;
70
+ expect(container.firstChild).toBeInTheDocument();
71
+ expect(container.querySelector('svg')).toBeInTheDocument();
72
+ });
73
+ it('renders chart without chartType and charts properties', function () {
74
+ var _renderComponent5 = renderComponent({
75
+ chartType: null,
76
+ charts: null
77
+ }),
78
+ container = _renderComponent5.container;
79
+ expect(container.firstChild).toBeInTheDocument();
80
+ });
81
+ it('renders chart without chartType property and empty charts property', function () {
82
+ var _renderComponent6 = renderComponent({
83
+ chartType: null,
84
+ charts: []
85
+ }),
86
+ container = _renderComponent6.container;
87
+ expect(container.firstChild).toBeInTheDocument();
88
+ });
89
+ it('renders chart with chartType property and empty charts property', function () {
90
+ var _renderComponent7 = renderComponent({
91
+ charts: []
92
+ }),
93
+ container = _renderComponent7.container;
94
+ expect(container.firstChild).toBeInTheDocument();
95
+ expect(container.querySelector('svg')).toBeInTheDocument();
96
+ });
97
+ });
98
+
99
+ // Note: changeData, getChart, and deleteCategory are internal implementation details.
100
+ // In RTL philosophy, we test user-visible behavior rather than implementation.
101
+ // These methods would be tested indirectly through user interactions that trigger them.
102
+ });
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90ZXN0VXRpbHMiLCJfY2hhcnQiLCJfdXRpbHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImRlc2NyaWJlIiwib25EYXRhQ2hhbmdlIiwiamVzdCIsImZuIiwicmVuZGVyQ29tcG9uZW50IiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZ3JhcGhQcm9wcyIsInhCYW5kIiwiY3JlYXRlQmFuZFNjYWxlIiwiY2hhcnRzIiwidHlwZSIsIkNvbXBvbmVudCIsImNyZWF0ZUVsZW1lbnQiLCJjaGFydFR5cGUiLCJkb21haW4iLCJyYW5nZSIsIm1pbiIsIm1heCIsInNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRhdGEiLCJwcm9wcyIsInJlbmRlciIsIkNoYXJ0IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIl9yZW5kZXJDb21wb25lbnQyIiwic3ZnIiwidG9IYXZlQXR0cmlidXRlIiwiX3JlbmRlckNvbXBvbmVudDMiLCJ1bmRlZmluZWQiLCJfcmVuZGVyQ29tcG9uZW50NCIsIl9yZW5kZXJDb21wb25lbnQ1IiwiX3JlbmRlckNvbXBvbmVudDYiLCJfcmVuZGVyQ29tcG9uZW50NyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2hhcnQudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICcuLi9jaGFydCc7XG5pbXBvcnQgeyBjcmVhdGVCYW5kU2NhbGUsIGdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZGVzY3JpYmUoJ0NoYXJ0QXhlcycsICgpID0+IHtcbiAgbGV0IG9uRGF0YUNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIG9uRGF0YUNoYW5nZSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBncmFwaFByb3BzOiBncmFwaFByb3BzKCksXG4gICAgICB4QmFuZDogY3JlYXRlQmFuZFNjYWxlKFsnYScsICdiJywgJ2MnXSwgWzAsIDEwMF0pLFxuICAgICAgY2hhcnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYmFyJyxcbiAgICAgICAgICBDb21wb25lbnQ6ICgpID0+IDxkaXYgLz4sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY2hhcnRUeXBlOiAnYmFyJyxcbiAgICAgIGRvbWFpbjoge30sXG4gICAgICByYW5nZToge1xuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogMTAsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgIH0sXG4gICAgICBkYXRhOiBbXSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8Q2hhcnQgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBjaGFydCBjb250YWluZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY2hhcnQgd2l0aCBkZWZhdWx0IHNpemUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgICBleHBlY3Qoc3ZnKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHN2ZykudG9IYXZlQXR0cmlidXRlKCd3aWR0aCcsICcyNDAnKTtcbiAgICAgIGV4cGVjdChzdmcpLnRvSGF2ZUF0dHJpYnV0ZSgnaGVpZ2h0JywgJzI0MCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY2hhcnQgd2hlbiBzaXplIGlzIG5vdCBkZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IHNpemU6IHVuZGVmaW5lZCB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICAgIGV4cGVjdChzdmcpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjaGFydCB3aXRob3V0IGNoYXJ0VHlwZSBwcm9wZXJ0eScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBjaGFydFR5cGU6IG51bGwgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY2hhcnQgd2l0aG91dCBjaGFydFR5cGUgYW5kIGNoYXJ0cyBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IGNoYXJ0VHlwZTogbnVsbCwgY2hhcnRzOiBudWxsIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY2hhcnQgd2l0aG91dCBjaGFydFR5cGUgcHJvcGVydHkgYW5kIGVtcHR5IGNoYXJ0cyBwcm9wZXJ0eScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBjaGFydFR5cGU6IG51bGwsIGNoYXJ0czogW10gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjaGFydCB3aXRoIGNoYXJ0VHlwZSBwcm9wZXJ0eSBhbmQgZW1wdHkgY2hhcnRzIHByb3BlcnR5JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IGNoYXJ0czogW10gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBOb3RlOiBjaGFuZ2VEYXRhLCBnZXRDaGFydCwgYW5kIGRlbGV0ZUNhdGVnb3J5IGFyZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLlxuICAvLyBJbiBSVEwgcGhpbG9zb3BoeSwgd2UgdGVzdCB1c2VyLXZpc2libGUgYmVoYXZpb3IgcmF0aGVyIHRoYW4gaW1wbGVtZW50YXRpb24uXG4gIC8vIFRoZXNlIG1ldGhvZHMgd291bGQgYmUgdGVzdGVkIGluZGlyZWN0bHkgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9ucyB0aGF0IHRyaWdnZXIgdGhlbS5cbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQXNELFNBQUFJLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFX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
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _testUtils = require("@pie-lib/test-utils");
7
+ var _grid = require("../grid");
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('Grid', function () {
12
+ var renderComponent = function renderComponent(extras) {
13
+ var defaults = {
14
+ classes: {},
15
+ className: 'className',
16
+ graphProps: (0, _utils.graphProps)(),
17
+ xBand: (0, _utils.createBandScale)(['a', 'b', 'c'], [0, 400])
18
+ };
19
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
20
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement("svg", null, /*#__PURE__*/_react["default"].createElement(_grid.Grid, props)));
21
+ };
22
+ describe('rendering', function () {
23
+ it('renders grid container', function () {
24
+ var _renderComponent = renderComponent(),
25
+ container = _renderComponent.container;
26
+ expect(container.firstChild).toBeInTheDocument();
27
+ });
28
+ it('renders grid with SVG group', function () {
29
+ var _renderComponent2 = renderComponent(),
30
+ container = _renderComponent2.container;
31
+ var svg = container.querySelector('svg');
32
+ expect(svg).toBeInTheDocument();
33
+ // Grid renders a <g> element (StyledGridGroup)
34
+ var gridGroup = container.querySelector('g');
35
+ expect(gridGroup).toBeInTheDocument();
36
+ });
37
+ });
38
+ });
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90ZXN0VXRpbHMiLCJfZ3JpZCIsIl91dGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGVzY3JpYmUiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJncmFwaFByb3BzIiwieEJhbmQiLCJjcmVhdGVCYW5kU2NhbGUiLCJwcm9wcyIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJHcmlkIiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlckNvbXBvbmVudDIiLCJzdmciLCJxdWVyeVNlbGVjdG9yIiwiZ3JpZEdyb3VwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9ncmlkLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCB7IEdyaWQgfSBmcm9tICcuLi9ncmlkJztcbmltcG9ydCB7IGNyZWF0ZUJhbmRTY2FsZSwgZ3JhcGhQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5kZXNjcmliZSgnR3JpZCcsICgpID0+IHtcbiAgY29uc3QgcmVuZGVyQ29tcG9uZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgZ3JhcGhQcm9wczogZ3JhcGhQcm9wcygpLFxuICAgICAgeEJhbmQ6IGNyZWF0ZUJhbmRTY2FsZShbJ2EnLCAnYicsICdjJ10sIFswLCA0MDBdKSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcihcbiAgICAgIDxzdmc+XG4gICAgICAgIDxHcmlkIHsuLi5wcm9wc30gLz5cbiAgICAgIDwvc3ZnPixcbiAgICApO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgZ3JpZCBjb250YWluZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBncmlkIHdpdGggU1ZHIGdyb3VwJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgICAgZXhwZWN0KHN2ZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIC8vIEdyaWQgcmVuZGVycyBhIDxnPiBlbGVtZW50IChTdHlsZWRHcmlkR3JvdXApXG4gICAgICBjb25zdCBncmlkR3JvdXAgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZycpO1xuICAgICAgZXhwZWN0KGdyaWRHcm91cCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUFzRCxTQUFBSSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQTtBQUV0RG9CLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBTTtFQUNyQixJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUlDLE1BQU0sRUFBSztJQUNsQyxJQUFNQyxRQUFRLEdBQUc7TUFDZkMsT0FBTyxFQUFFLENBQUMsQ0FBQztNQUNYQyxTQUFTLEVBQUUsV0FBVztNQUN0QkMsVUFBVSxFQUFFLElBQUFBLGlCQUFVLEVBQUMsQ0FBQztNQUN4QkMsS0FBSyxFQUFFLElBQUFDLHNCQUFlLEVBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBTUMsS0FBSyxHQUFBakIsYUFBQSxDQUFBQSxhQUFBLEtBQVFXLFFBQVEsR0FBS0QsTUFBTSxDQUFFO0lBQ3hDLE9BQU8sSUFBQVEsaUJBQU0sZUFDWHJDLE1BQUEsWUFBQXNDLGFBQUEsMkJBQ0V0QyxNQUFBLFlBQUFzQyxhQUFBLENBQUNsQyxLQUFBLENBQUFtQyxJQUFJLEVBQUtILEtBQVEsQ0FDZixDQUNQLENBQUM7RUFDSCxDQUFDO0VBRURULFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQmEsRUFBRSxDQUFDLHdCQUF3QixFQUFFLFlBQU07TUFDakMsSUFBQUMsZ0JBQUEsR0FBc0JiLGVBQWUsQ0FBQyxDQUFDO1FBQS9CYyxTQUFTLEdBQUFELGdCQUFBLENBQVRDLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDZCQUE2QixFQUFFLFlBQU07TUFDdEMsSUFBQU0saUJBQUEsR0FBc0JsQixlQUFlLENBQUMsQ0FBQztRQUEvQmMsU0FBUyxHQUFBSSxpQkFBQSxDQUFUSixTQUFTO01BQ2pCLElBQU1LLEdBQUcsR0FBR0wsU0FBUyxDQUFDTSxhQUFhLENBQUMsS0FBSyxDQUFDO01BQzFDTCxNQUFNLENBQUNJLEdBQUcsQ0FBQyxDQUFDRixpQkFBaUIsQ0FBQyxDQUFDO01BQy9CO01BQ0EsSUFBTUksU0FBUyxHQUFHUCxTQUFTLENBQUNNLGFBQWEsQ0FBQyxHQUFHLENBQUM7TUFDOUNMLE1BQU0sQ0FBQ00sU0FBUyxDQUFDLENBQUNKLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
5
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _react2 = require("@testing-library/react");
9
+ var _styles = require("@mui/material/styles");
10
+ var _keyLegend = _interopRequireDefault(require("../key-legend"));
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/translator', function () {
14
+ return {
15
+ __esModule: true,
16
+ "default": {
17
+ translator: {
18
+ t: jest.fn(function (key) {
19
+ var translations = {
20
+ 'charting.keyLegend.incorrectAnswer': 'Incorrect answer selected',
21
+ 'charting.keyLegend.correctAnswer': 'Correct answer selected',
22
+ 'charting.keyLegend.correctKeyAnswer': 'Correct answer'
23
+ };
24
+ return translations[key] || key;
25
+ })
26
+ }
27
+ }
28
+ };
29
+ });
30
+ jest.mock('@mui/icons-material/Check', function () {
31
+ return function Check(props) {
32
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
33
+ "data-testid": "check-icon"
34
+ }, props));
35
+ };
36
+ });
37
+ jest.mock('@mui/icons-material/Close', function () {
38
+ return function Close(props) {
39
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
40
+ "data-testid": "close-icon"
41
+ }, props));
42
+ };
43
+ });
44
+ var theme;
45
+ beforeAll(function () {
46
+ theme = (0, _styles.createTheme)();
47
+ });
48
+ describe('KeyLegend', function () {
49
+ var renderComponent = function renderComponent() {
50
+ var extras = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
51
+ var defaults = {
52
+ language: 'en'
53
+ };
54
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
55
+ return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_styles.ThemeProvider, {
56
+ theme: theme
57
+ }, /*#__PURE__*/_react["default"].createElement(_keyLegend["default"], props)));
58
+ };
59
+ describe('rendering', function () {
60
+ it('renders without crashing', function () {
61
+ var _renderComponent = renderComponent(),
62
+ container = _renderComponent.container;
63
+ expect(container).toBeInTheDocument();
64
+ });
65
+ it('renders Key title', function () {
66
+ var _renderComponent2 = renderComponent(),
67
+ getByText = _renderComponent2.getByText;
68
+ expect(getByText('Key')).toBeInTheDocument();
69
+ });
70
+ it('renders incorrect answer row', function () {
71
+ var _renderComponent3 = renderComponent(),
72
+ getByText = _renderComponent3.getByText;
73
+ expect(getByText('Incorrect answer selected')).toBeInTheDocument();
74
+ });
75
+ it('renders correct answer row', function () {
76
+ var _renderComponent4 = renderComponent(),
77
+ getByText = _renderComponent4.getByText;
78
+ expect(getByText('Correct answer selected')).toBeInTheDocument();
79
+ });
80
+ it('renders correct key answer row', function () {
81
+ var _renderComponent5 = renderComponent(),
82
+ getByText = _renderComponent5.getByText;
83
+ expect(getByText('Correct answer')).toBeInTheDocument();
84
+ });
85
+ it('renders with custom language', function () {
86
+ var _renderComponent6 = renderComponent({
87
+ language: 'es'
88
+ }),
89
+ container = _renderComponent6.container;
90
+ expect(container).toBeInTheDocument();
91
+ });
92
+ it('renders with undefined language', function () {
93
+ var _renderComponent7 = renderComponent({
94
+ language: undefined
95
+ }),
96
+ container = _renderComponent7.container;
97
+ expect(container).toBeInTheDocument();
98
+ });
99
+ });
100
+ describe('icons', function () {
101
+ it('renders incorrect icon (Close)', function () {
102
+ var _renderComponent8 = renderComponent(),
103
+ getAllByTestId = _renderComponent8.getAllByTestId;
104
+ var closeIcons = getAllByTestId('close-icon');
105
+ expect(closeIcons.length).toBeGreaterThan(0);
106
+ });
107
+ it('renders correct icons (Check)', function () {
108
+ var _renderComponent9 = renderComponent(),
109
+ getAllByTestId = _renderComponent9.getAllByTestId;
110
+ var checkIcons = getAllByTestId('check-icon');
111
+ expect(checkIcons.length).toBe(2);
112
+ });
113
+ it('renders small check icon for correct key answer', function () {
114
+ var _renderComponent0 = renderComponent(),
115
+ getAllByTestId = _renderComponent0.getAllByTestId;
116
+ var checkIcons = getAllByTestId('check-icon');
117
+ expect(checkIcons.length).toBeGreaterThan(0);
118
+ checkIcons.forEach(function (icon) {
119
+ expect(icon).toBeInTheDocument();
120
+ });
121
+ });
122
+ });
123
+ describe('structure', function () {
124
+ it('has correct number of rows', function () {
125
+ var _renderComponent1 = renderComponent(),
126
+ container = _renderComponent1.container;
127
+ var texts = ['Incorrect answer selected', 'Correct answer selected', 'Correct answer'];
128
+ texts.forEach(function (text) {
129
+ expect(container.textContent).toContain(text);
130
+ });
131
+ });
132
+ it('displays title at the top', function () {
133
+ var _renderComponent10 = renderComponent(),
134
+ container = _renderComponent10.container;
135
+ var firstChild = container.querySelector('div > div');
136
+ expect(firstChild === null || firstChild === void 0 ? void 0 : firstChild.textContent).toContain('Key');
137
+ });
138
+ });
139
+ describe('styling', function () {
140
+ it('applies styled container', function () {
141
+ var _container$firstChild;
142
+ var _renderComponent11 = renderComponent(),
143
+ container = _renderComponent11.container;
144
+ var styledDiv = (_container$firstChild = container.firstChild) === null || _container$firstChild === void 0 ? void 0 : _container$firstChild.firstChild;
145
+ expect(styledDiv).toBeInTheDocument();
146
+ });
147
+ it('renders all content in proper structure', function () {
148
+ var _renderComponent12 = renderComponent(),
149
+ container = _renderComponent12.container;
150
+ expect(container.querySelector('[data-testid="close-icon"]')).toBeInTheDocument();
151
+ expect(container.querySelectorAll('[data-testid="check-icon"]').length).toBe(2);
152
+ });
153
+ });
154
+ describe('accessibility', function () {
155
+ it('has readable text content', function () {
156
+ var _renderComponent13 = renderComponent(),
157
+ container = _renderComponent13.container;
158
+ var text = container.textContent;
159
+ expect(text).toContain('Key');
160
+ expect(text).toContain('Incorrect answer selected');
161
+ expect(text).toContain('Correct answer selected');
162
+ expect(text).toContain('Correct answer');
163
+ });
164
+ it('icons have proper structure for screen readers', function () {
165
+ var _renderComponent14 = renderComponent(),
166
+ getAllByTestId = _renderComponent14.getAllByTestId;
167
+ var icons = [].concat((0, _toConsumableArray2["default"])(getAllByTestId('close-icon')), (0, _toConsumableArray2["default"])(getAllByTestId('check-icon')));
168
+ expect(icons.length).toBeGreaterThan(0);
169
+ });
170
+ });
171
+ describe('edge cases', function () {
172
+ it('handles null language', function () {
173
+ var _renderComponent15 = renderComponent({
174
+ language: null
175
+ }),
176
+ container = _renderComponent15.container;
177
+ expect(container).toBeInTheDocument();
178
+ });
179
+ it('handles empty string language', function () {
180
+ var _renderComponent16 = renderComponent({
181
+ language: ''
182
+ }),
183
+ container = _renderComponent16.container;
184
+ expect(container).toBeInTheDocument();
185
+ });
186
+ it('renders consistently with different language codes', function () {
187
+ var languages = ['en', 'es', 'fr', 'de', 'zh'];
188
+ languages.forEach(function (lang) {
189
+ var _renderComponent17 = renderComponent({
190
+ language: lang
191
+ }),
192
+ container = _renderComponent17.container,
193
+ unmount = _renderComponent17.unmount;
194
+ expect(container).toBeInTheDocument();
195
+ unmount();
196
+ });
197
+ });
198
+ });
199
+ describe('translation integration', function () {
200
+ it('calls translator with language parameter', function () {
201
+ var Translator = require('@pie-lib/translator')["default"];
202
+ var t = Translator.translator.t;
203
+ renderComponent({
204
+ language: 'es'
205
+ });
206
+ expect(t).toHaveBeenCalled();
207
+ });
208
+ it('displays all required translation keys', function () {
209
+ var _renderComponent18 = renderComponent(),
210
+ container = _renderComponent18.container;
211
+ var text = container.textContent;
212
+ expect(text).toContain('Incorrect answer selected');
213
+ expect(text).toContain('Correct answer selected');
214
+ expect(text).toContain('Correct answer');
215
+ });
216
+ });
217
+ describe('layout', function () {
218
+ it('renders in a flex column layout', function () {
219
+ var _container$firstChild2;
220
+ var _renderComponent19 = renderComponent(),
221
+ container = _renderComponent19.container;
222
+ var mainContainer = (_container$firstChild2 = container.firstChild) === null || _container$firstChild2 === void 0 ? void 0 : _container$firstChild2.firstChild;
223
+ expect(mainContainer).toBeInTheDocument();
224
+ });
225
+ it('has proper spacing between elements', function () {
226
+ var _renderComponent20 = renderComponent(),
227
+ getByText = _renderComponent20.getByText;
228
+ expect(getByText('Key')).toBeInTheDocument();
229
+ expect(getByText('Incorrect answer selected')).toBeInTheDocument();
230
+ expect(getByText('Correct answer selected')).toBeInTheDocument();
231
+ expect(getByText('Correct answer')).toBeInTheDocument();
232
+ });
233
+ });
234
+ });
235
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2tleUxlZ2VuZCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiamVzdCIsIm1vY2siLCJfX2VzTW9kdWxlIiwidHJhbnNsYXRvciIsImZuIiwia2V5IiwidHJhbnNsYXRpb25zIiwiQ2hlY2siLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJDbG9zZSIsInRoZW1lIiwiYmVmb3JlQWxsIiwiY3JlYXRlVGhlbWUiLCJkZXNjcmliZSIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsInVuZGVmaW5lZCIsImRlZmF1bHRzIiwibGFuZ3VhZ2UiLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyQ29tcG9uZW50MiIsImdldEJ5VGV4dCIsIl9yZW5kZXJDb21wb25lbnQzIiwiX3JlbmRlckNvbXBvbmVudDQiLCJfcmVuZGVyQ29tcG9uZW50NSIsIl9yZW5kZXJDb21wb25lbnQ2IiwiX3JlbmRlckNvbXBvbmVudDciLCJfcmVuZGVyQ29tcG9uZW50OCIsImdldEFsbEJ5VGVzdElkIiwiY2xvc2VJY29ucyIsInRvQmVHcmVhdGVyVGhhbiIsIl9yZW5kZXJDb21wb25lbnQ5IiwiY2hlY2tJY29ucyIsInRvQmUiLCJfcmVuZGVyQ29tcG9uZW50MCIsImljb24iLCJfcmVuZGVyQ29tcG9uZW50MSIsInRleHRzIiwidGV4dCIsInRleHRDb250ZW50IiwidG9Db250YWluIiwiX3JlbmRlckNvbXBvbmVudDEwIiwiZmlyc3RDaGlsZCIsInF1ZXJ5U2VsZWN0b3IiLCJfY29udGFpbmVyJGZpcnN0Q2hpbGQiLCJfcmVuZGVyQ29tcG9uZW50MTEiLCJzdHlsZWREaXYiLCJfcmVuZGVyQ29tcG9uZW50MTIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiX3JlbmRlckNvbXBvbmVudDEzIiwiX3JlbmRlckNvbXBvbmVudDE0IiwiaWNvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX3JlbmRlckNvbXBvbmVudDE1IiwiX3JlbmRlckNvbXBvbmVudDE2IiwibGFuZ3VhZ2VzIiwibGFuZyIsIl9yZW5kZXJDb21wb25lbnQxNyIsInVubW91bnQiLCJUcmFuc2xhdG9yIiwidG9IYXZlQmVlbkNhbGxlZCIsIl9yZW5kZXJDb21wb25lbnQxOCIsIl9jb250YWluZXIkZmlyc3RDaGlsZDIiLCJfcmVuZGVyQ29tcG9uZW50MTkiLCJtYWluQ29udGFpbmVyIiwiX3JlbmRlckNvbXBvbmVudDIwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9rZXktbGVnZW5kLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVRoZW1lLCBUaGVtZVByb3ZpZGVyIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IEtleUxlZ2VuZCBmcm9tICcuLi9rZXktbGVnZW5kJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi90cmFuc2xhdG9yJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDoge1xuICAgIHRyYW5zbGF0b3I6IHtcbiAgICAgIHQ6IGplc3QuZm4oKGtleSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSB7XG4gICAgICAgICAgJ2NoYXJ0aW5nLmtleUxlZ2VuZC5pbmNvcnJlY3RBbnN3ZXInOiAnSW5jb3JyZWN0IGFuc3dlciBzZWxlY3RlZCcsXG4gICAgICAgICAgJ2NoYXJ0aW5nLmtleUxlZ2VuZC5jb3JyZWN0QW5zd2VyJzogJ0NvcnJlY3QgYW5zd2VyIHNlbGVjdGVkJyxcbiAgICAgICAgICAnY2hhcnRpbmcua2V5TGVnZW5kLmNvcnJlY3RLZXlBbnN3ZXInOiAnQ29ycmVjdCBhbnN3ZXInLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gdHJhbnNsYXRpb25zW2tleV0gfHwga2V5O1xuICAgICAgfSksXG4gICAgfSxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdAbXVpL2ljb25zLW1hdGVyaWFsL0NoZWNrJywgKCkgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gQ2hlY2socHJvcHMpIHtcbiAgICByZXR1cm4gPGRpdiBkYXRhLXRlc3RpZD1cImNoZWNrLWljb25cIiB7Li4ucHJvcHN9IC8+O1xuICB9O1xufSk7XG5cbmplc3QubW9jaygnQG11aS9pY29ucy1tYXRlcmlhbC9DbG9zZScsICgpID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIENsb3NlKHByb3BzKSB7XG4gICAgcmV0dXJuIDxkaXYgZGF0YS10ZXN0aWQ9XCJjbG9zZS1pY29uXCIgey4uLnByb3BzfSAvPjtcbiAgfTtcbn0pO1xuXG5sZXQgdGhlbWU7XG5cbmJlZm9yZUFsbCgoKSA9PiB7XG4gIHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcbn0pO1xuXG5kZXNjcmliZSgnS2V5TGVnZW5kJywgKCkgPT4ge1xuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzID0ge30pID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgPEtleUxlZ2VuZCB7Li4ucHJvcHN9IC8+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+LFxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIEtleSB0aXRsZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChnZXRCeVRleHQoJ0tleScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgaW5jb3JyZWN0IGFuc3dlciByb3cnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoZ2V0QnlUZXh0KCdJbmNvcnJlY3QgYW5zd2VyIHNlbGVjdGVkJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjb3JyZWN0IGFuc3dlciByb3cnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoZ2V0QnlUZXh0KCdDb3JyZWN0IGFuc3dlciBzZWxlY3RlZCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdCBrZXkgYW5zd2VyIHJvdycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChnZXRCeVRleHQoJ0NvcnJlY3QgYW5zd2VyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGN1c3RvbSBsYW5ndWFnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBsYW5ndWFnZTogJ2VzJyB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIHVuZGVmaW5lZCBsYW5ndWFnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBsYW5ndWFnZTogdW5kZWZpbmVkIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ljb25zJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIGluY29ycmVjdCBpY29uIChDbG9zZSknLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFsbEJ5VGVzdElkIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGNvbnN0IGNsb3NlSWNvbnMgPSBnZXRBbGxCeVRlc3RJZCgnY2xvc2UtaWNvbicpO1xuICAgICAgZXhwZWN0KGNsb3NlSWNvbnMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjb3JyZWN0IGljb25zIChDaGVjayknLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFsbEJ5VGVzdElkIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGNvbnN0IGNoZWNrSWNvbnMgPSBnZXRBbGxCeVRlc3RJZCgnY2hlY2staWNvbicpO1xuICAgICAgZXhwZWN0KGNoZWNrSWNvbnMubGVuZ3RoKS50b0JlKDIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgc21hbGwgY2hlY2sgaWNvbiBmb3IgY29ycmVjdCBrZXkgYW5zd2VyJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBbGxCeVRlc3RJZCB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBjb25zdCBjaGVja0ljb25zID0gZ2V0QWxsQnlUZXN0SWQoJ2NoZWNrLWljb24nKTtcblxuICAgICAgZXhwZWN0KGNoZWNrSWNvbnMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG5cbiAgICAgIGNoZWNrSWNvbnMuZm9yRWFjaCgoaWNvbikgPT4ge1xuICAgICAgICBleHBlY3QoaWNvbikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc3RydWN0dXJlJywgKCkgPT4ge1xuICAgIGl0KCdoYXMgY29ycmVjdCBudW1iZXIgb2Ygcm93cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGNvbnN0IHRleHRzID0gWydJbmNvcnJlY3QgYW5zd2VyIHNlbGVjdGVkJywgJ0NvcnJlY3QgYW5zd2VyIHNlbGVjdGVkJywgJ0NvcnJlY3QgYW5zd2VyJ107XG5cbiAgICAgIHRleHRzLmZvckVhY2goKHRleHQpID0+IHtcbiAgICAgICAgZXhwZWN0KGNvbnRhaW5lci50ZXh0Q29udGVudCkudG9Db250YWluKHRleHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGlzcGxheXMgdGl0bGUgYXQgdGhlIHRvcCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGNvbnN0IGZpcnN0Q2hpbGQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZGl2ID4gZGl2Jyk7XG4gICAgICBleHBlY3QoZmlyc3RDaGlsZD8udGV4dENvbnRlbnQpLnRvQ29udGFpbignS2V5Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzdHlsaW5nJywgKCkgPT4ge1xuICAgIGl0KCdhcHBsaWVzIHN0eWxlZCBjb250YWluZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBjb25zdCBzdHlsZWREaXYgPSBjb250YWluZXIuZmlyc3RDaGlsZD8uZmlyc3RDaGlsZDtcbiAgICAgIGV4cGVjdChzdHlsZWREaXYpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgY29udGVudCBpbiBwcm9wZXIgc3RydWN0dXJlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJjbG9zZS1pY29uXCJdJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXRlc3RpZD1cImNoZWNrLWljb25cIl0nKS5sZW5ndGgpLnRvQmUoMik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdhY2Nlc3NpYmlsaXR5JywgKCkgPT4ge1xuICAgIGl0KCdoYXMgcmVhZGFibGUgdGV4dCBjb250ZW50JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgY29uc3QgdGV4dCA9IGNvbnRhaW5lci50ZXh0Q29udGVudDtcblxuICAgICAgZXhwZWN0KHRleHQpLnRvQ29udGFpbignS2V5Jyk7XG4gICAgICBleHBlY3QodGV4dCkudG9Db250YWluKCdJbmNvcnJlY3QgYW5zd2VyIHNlbGVjdGVkJyk7XG4gICAgICBleHBlY3QodGV4dCkudG9Db250YWluKCdDb3JyZWN0IGFuc3dlciBzZWxlY3RlZCcpO1xuICAgICAgZXhwZWN0KHRleHQpLnRvQ29udGFpbignQ29ycmVjdCBhbnN3ZXInKTtcbiAgICB9KTtcblxuICAgIGl0KCdpY29ucyBoYXZlIHByb3BlciBzdHJ1Y3R1cmUgZm9yIHNjcmVlbiByZWFkZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBbGxCeVRlc3RJZCB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBjb25zdCBpY29ucyA9IFsuLi5nZXRBbGxCeVRlc3RJZCgnY2xvc2UtaWNvbicpLCAuLi5nZXRBbGxCeVRlc3RJZCgnY2hlY2staWNvbicpXTtcblxuICAgICAgZXhwZWN0KGljb25zLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZWRnZSBjYXNlcycsICgpID0+IHtcbiAgICBpdCgnaGFuZGxlcyBudWxsIGxhbmd1YWdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IGxhbmd1YWdlOiBudWxsIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIGVtcHR5IHN0cmluZyBsYW5ndWFnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBsYW5ndWFnZTogJycgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29uc2lzdGVudGx5IHdpdGggZGlmZmVyZW50IGxhbmd1YWdlIGNvZGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gWydlbicsICdlcycsICdmcicsICdkZScsICd6aCddO1xuXG4gICAgICBsYW5ndWFnZXMuZm9yRWFjaCgobGFuZykgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbnRhaW5lciwgdW5tb3VudCB9ID0gcmVuZGVyQ29tcG9uZW50KHsgbGFuZ3VhZ2U6IGxhbmcgfSk7XG4gICAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICAgIHVubW91bnQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndHJhbnNsYXRpb24gaW50ZWdyYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIHRyYW5zbGF0b3Igd2l0aCBsYW5ndWFnZSBwYXJhbWV0ZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCBUcmFuc2xhdG9yID0gcmVxdWlyZSgnQHBpZS1saWIvdHJhbnNsYXRvcicpLmRlZmF1bHQ7XG4gICAgICBjb25zdCB7IHQgfSA9IFRyYW5zbGF0b3IudHJhbnNsYXRvcjtcblxuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgbGFuZ3VhZ2U6ICdlcycgfSk7XG5cbiAgICAgIGV4cGVjdCh0KS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGlzcGxheXMgYWxsIHJlcXVpcmVkIHRyYW5zbGF0aW9uIGtleXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBjb25zdCB0ZXh0ID0gY29udGFpbmVyLnRleHRDb250ZW50O1xuXG4gICAgICBleHBlY3QodGV4dCkudG9Db250YWluKCdJbmNvcnJlY3QgYW5zd2VyIHNlbGVjdGVkJyk7XG4gICAgICBleHBlY3QodGV4dCkudG9Db250YWluKCdDb3JyZWN0IGFuc3dlciBzZWxlY3RlZCcpO1xuICAgICAgZXhwZWN0KHRleHQpLnRvQ29udGFpbignQ29ycmVjdCBhbnN3ZXInKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xheW91dCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBpbiBhIGZsZXggY29sdW1uIGxheW91dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGNvbnN0IG1haW5Db250YWluZXIgPSBjb250YWluZXIuZmlyc3RDaGlsZD8uZmlyc3RDaGlsZDtcbiAgICAgIGV4cGVjdChtYWluQ29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhcyBwcm9wZXIgc3BhY2luZyBiZXR3ZWVuIGVsZW1lbnRzJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuXG4gICAgICBleHBlY3QoZ2V0QnlUZXh0KCdLZXknKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChnZXRCeVRleHQoJ0luY29ycmVjdCBhbnN3ZXIgc2VsZWN0ZWQnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChnZXRCeVRleHQoJ0NvcnJlY3QgYW5zd2VyIHNlbGVjdGVkJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QoZ2V0QnlUZXh0KCdDb3JyZWN0IGFuc3dlcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFBc0MsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEs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
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _testUtils = require("@pie-lib/test-utils");
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 renderComponent = function renderComponent(extras) {
14
+ var defaults = {
15
+ classes: {},
16
+ defineChart: false,
17
+ className: 'className',
18
+ onChange: onChange,
19
+ mark: {
20
+ x: 1,
21
+ y: 1
22
+ },
23
+ graphProps: (0, _utils.graphProps)(0, 10, 0, 10)
24
+ };
25
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
26
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_markLabel.MarkLabel, props));
27
+ };
28
+ describe('rendering', function () {
29
+ it('renders mark label', function () {
30
+ var _renderComponent = renderComponent(),
31
+ container = _renderComponent.container;
32
+ expect(container.firstChild).toBeInTheDocument();
33
+ });
34
+ it('renders mark label at different positions', function () {
35
+ var _renderComponent2 = renderComponent({
36
+ mark: {
37
+ x: 10,
38
+ y: 10
39
+ }
40
+ }),
41
+ container = _renderComponent2.container;
42
+ expect(container.firstChild).toBeInTheDocument();
43
+ });
44
+ });
45
+ });
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90ZXN0VXRpbHMiLCJfbWFya0xhYmVsIiwiX3V0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwicmVuZGVyQ29tcG9uZW50IiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiZGVmaW5lQ2hhcnQiLCJjbGFzc05hbWUiLCJtYXJrIiwieCIsInkiLCJncmFwaFByb3BzIiwiZ2V0R3JhcGhQcm9wcyIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIk1hcmtMYWJlbCIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXJDb21wb25lbnQyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9tYXJrLWxhYmVsLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCB7IE1hcmtMYWJlbCB9IGZyb20gJy4uL21hcmstbGFiZWwnO1xuaW1wb3J0IHsgZ3JhcGhQcm9wcyBhcyBnZXRHcmFwaFByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5cbmRlc2NyaWJlKCdNYXJrTGFiZWwnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGRlZmluZUNoYXJ0OiBmYWxzZSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG1hcms6IHsgeDogMSwgeTogMSB9LFxuICAgICAgZ3JhcGhQcm9wczogZ2V0R3JhcGhQcm9wcygwLCAxMCwgMCwgMTApLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxNYXJrTGFiZWwgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBtYXJrIGxhYmVsJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgbWFyayBsYWJlbCBhdCBkaWZmZXJlbnQgcG9zaXRpb25zJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IG1hcms6IHsgeDogMTAsIHk6IDEwIH0gfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFBc0QsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFFdERvQixRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07RUFDMUIsSUFBSUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0VBRXhCLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUMsTUFBTSxFQUFLO0lBQ2xDLElBQU1DLFFBQVEsR0FBRztNQUNmQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1hDLFdBQVcsRUFBRSxLQUFLO01BQ2xCQyxTQUFTLEVBQUUsV0FBVztNQUN0QlIsUUFBUSxFQUFSQSxRQUFRO01BQ1JTLElBQUksRUFBRTtRQUFFQyxDQUFDLEVBQUUsQ0FBQztRQUFFQyxDQUFDLEVBQUU7TUFBRSxDQUFDO01BQ3BCQyxVQUFVLEVBQUUsSUFBQUMsaUJBQWEsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3hDLENBQUM7SUFDRCxJQUFNQyxLQUFLLEdBQUF2QixhQUFBLENBQUFBLGFBQUEsS0FBUWMsUUFBUSxHQUFLRCxNQUFNLENBQUU7SUFDeEMsT0FBTyxJQUFBVyxpQkFBTSxlQUFDM0MsTUFBQSxZQUFBNEMsYUFBQSxDQUFDeEMsVUFBQSxDQUFBeUMsU0FBUyxFQUFLSCxLQUFRLENBQUMsQ0FBQztFQUN6QyxDQUFDO0VBRURmLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQm1CLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFNO01BQzdCLElBQUFDLGdCQUFBLEdBQXNCaEIsZUFBZSxDQUFDLENBQUM7UUFBL0JpQixTQUFTLEdBQUFELGdCQUFBLENBQVRDLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLFlBQU07TUFDcEQsSUFBQU0saUJBQUEsR0FBc0JyQixlQUFlLENBQUM7VUFBRU0sSUFBSSxFQUFFO1lBQUVDLENBQUMsRUFBRSxFQUFFO1lBQUVDLENBQUMsRUFBRTtVQUFHO1FBQUUsQ0FBQyxDQUFDO1FBQXpEUyxTQUFTLEdBQUFJLGlCQUFBLENBQVRKLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=