@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.
- package/lib/__tests__/actions-button.test.js +332 -0
- package/lib/__tests__/axes.test.js +746 -0
- package/lib/__tests__/chart-setup.test.js +796 -0
- package/lib/__tests__/chart-type.test.js +25 -0
- package/lib/__tests__/chart.test.js +103 -0
- package/lib/__tests__/grid.test.js +39 -0
- package/lib/__tests__/key-legend.test.js +235 -0
- package/lib/__tests__/mark-label.test.js +46 -0
- package/lib/__tests__/tool-menu.test.js +627 -0
- package/lib/__tests__/utils.js +56 -0
- package/lib/__tests__/utils.test.js +186 -0
- package/lib/actions-button.js +1 -1
- package/lib/axes.js +1 -1
- package/lib/bars/__tests__/bar.test.js +53 -0
- package/lib/bars/__tests__/histogram.test.js +53 -0
- package/lib/bars/__tests__/utils.js +50 -0
- package/lib/bars/bar.js +1 -1
- package/lib/bars/common/__tests__/bars.test.js +76 -0
- package/lib/bars/common/__tests__/utils.js +50 -0
- package/lib/bars/common/bars.js +1 -1
- package/lib/bars/common/correct-check-icon.js +1 -1
- package/lib/bars/histogram.js +1 -1
- package/lib/chart-setup.js +1 -1
- package/lib/chart-type.js +1 -1
- package/lib/chart-types.js +1 -1
- package/lib/chart.js +1 -1
- package/lib/common/__tests__/correctness-indicators.test.js +887 -0
- package/lib/common/__tests__/drag-handle.test.js +73 -0
- package/lib/common/__tests__/utils.js +50 -0
- package/lib/common/correctness-indicators.js +1 -1
- package/lib/common/drag-handle.js +1 -1
- package/lib/common/drag-icon.js +1 -1
- package/lib/common/styles.js +1 -1
- package/lib/grid.js +1 -1
- package/lib/index.js +1 -1
- package/lib/key-legend.js +1 -1
- package/lib/line/__tests__/line-cross.test.js +617 -0
- package/lib/line/__tests__/line-dot.test.js +47 -0
- package/lib/line/__tests__/utils.js +56 -0
- package/lib/line/common/__tests__/drag-handle.test.js +73 -0
- package/lib/line/common/__tests__/line.test.js +92 -0
- package/lib/line/common/__tests__/utils.js +50 -0
- package/lib/line/common/drag-handle.js +1 -1
- package/lib/line/common/line.js +1 -1
- package/lib/line/line-cross.js +1 -1
- package/lib/line/line-dot.js +1 -1
- package/lib/mark-label.js +1 -1
- package/lib/plot/__tests__/dot.test.js +513 -0
- package/lib/plot/__tests__/line.test.js +566 -0
- package/lib/plot/__tests__/utils.js +50 -0
- package/lib/plot/common/__tests__/plot.test.js +79 -0
- package/lib/plot/common/__tests__/utils.js +50 -0
- package/lib/plot/common/plot.js +1 -1
- package/lib/plot/dot.js +1 -1
- package/lib/plot/line.js +1 -1
- package/lib/tool-menu.js +1 -1
- package/lib/utils.js +1 -1
- package/package.json +8 -11
- 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+XG4gICAgICAgIDxHcmlkIHsuLi5wcm9wc30gLz5cbiAgICAgIDwvc3ZnPixcbiAgICApO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgZ3JpZCBjb250YWluZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBncmlkIHdpdGggU1ZHIGdyb3VwJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgICAgZXhwZWN0KHN2ZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIC8vIEdyaWQgcmVuZGVycyBhIDxnPiBlbGVtZW50IChTdHlsZWRHcmlkR3JvdXApXG4gICAgICBjb25zdCBncmlkR3JvdXAgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZycpO1xuICAgICAgZXhwZWN0KGdyaWRHcm91cCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7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
|
|
@@ -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=
|