@pie-lib/charting 7.0.13 → 7.1.0-beta

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 (63) hide show
  1. package/CHANGELOG.md +0 -44
  2. package/lib/__tests__/actions-button.test.js +332 -0
  3. package/lib/__tests__/actions-button.test.js.map +1 -0
  4. package/lib/__tests__/axes.test.js +746 -0
  5. package/lib/__tests__/axes.test.js.map +1 -0
  6. package/lib/__tests__/chart-setup.test.js +796 -0
  7. package/lib/__tests__/chart-setup.test.js.map +1 -0
  8. package/lib/__tests__/chart-type.test.js +25 -0
  9. package/lib/__tests__/chart-type.test.js.map +1 -0
  10. package/lib/__tests__/chart.test.js +103 -0
  11. package/lib/__tests__/chart.test.js.map +1 -0
  12. package/lib/__tests__/grid.test.js +39 -0
  13. package/lib/__tests__/grid.test.js.map +1 -0
  14. package/lib/__tests__/key-legend.test.js +235 -0
  15. package/lib/__tests__/key-legend.test.js.map +1 -0
  16. package/lib/__tests__/mark-label.test.js +46 -0
  17. package/lib/__tests__/mark-label.test.js.map +1 -0
  18. package/lib/__tests__/tool-menu.test.js +627 -0
  19. package/lib/__tests__/tool-menu.test.js.map +1 -0
  20. package/lib/__tests__/utils.js +56 -0
  21. package/lib/__tests__/utils.js.map +1 -0
  22. package/lib/__tests__/utils.test.js +186 -0
  23. package/lib/__tests__/utils.test.js.map +1 -0
  24. package/lib/bars/__tests__/bar.test.js +53 -0
  25. package/lib/bars/__tests__/bar.test.js.map +1 -0
  26. package/lib/bars/__tests__/histogram.test.js +53 -0
  27. package/lib/bars/__tests__/histogram.test.js.map +1 -0
  28. package/lib/bars/__tests__/utils.js +50 -0
  29. package/lib/bars/__tests__/utils.js.map +1 -0
  30. package/lib/bars/common/__tests__/bars.test.js +76 -0
  31. package/lib/bars/common/__tests__/bars.test.js.map +1 -0
  32. package/lib/bars/common/__tests__/utils.js +50 -0
  33. package/lib/bars/common/__tests__/utils.js.map +1 -0
  34. package/lib/common/__tests__/correctness-indicators.test.js +887 -0
  35. package/lib/common/__tests__/correctness-indicators.test.js.map +1 -0
  36. package/lib/common/__tests__/drag-handle.test.js +73 -0
  37. package/lib/common/__tests__/drag-handle.test.js.map +1 -0
  38. package/lib/common/__tests__/utils.js +50 -0
  39. package/lib/common/__tests__/utils.js.map +1 -0
  40. package/lib/line/__tests__/line-cross.test.js +617 -0
  41. package/lib/line/__tests__/line-cross.test.js.map +1 -0
  42. package/lib/line/__tests__/line-dot.test.js +47 -0
  43. package/lib/line/__tests__/line-dot.test.js.map +1 -0
  44. package/lib/line/__tests__/utils.js +56 -0
  45. package/lib/line/__tests__/utils.js.map +1 -0
  46. package/lib/line/common/__tests__/drag-handle.test.js +73 -0
  47. package/lib/line/common/__tests__/drag-handle.test.js.map +1 -0
  48. package/lib/line/common/__tests__/line.test.js +92 -0
  49. package/lib/line/common/__tests__/line.test.js.map +1 -0
  50. package/lib/line/common/__tests__/utils.js +50 -0
  51. package/lib/line/common/__tests__/utils.js.map +1 -0
  52. package/lib/plot/__tests__/dot.test.js +513 -0
  53. package/lib/plot/__tests__/dot.test.js.map +1 -0
  54. package/lib/plot/__tests__/line.test.js +566 -0
  55. package/lib/plot/__tests__/line.test.js.map +1 -0
  56. package/lib/plot/__tests__/utils.js +50 -0
  57. package/lib/plot/__tests__/utils.js.map +1 -0
  58. package/lib/plot/common/__tests__/plot.test.js +79 -0
  59. package/lib/plot/common/__tests__/plot.test.js.map +1 -0
  60. package/lib/plot/common/__tests__/utils.js +50 -0
  61. package/lib/plot/common/__tests__/utils.js.map +1 -0
  62. package/package.json +5 -5
  63. package/LICENSE.md +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-setup.test.js","names":["_react","_interopRequireDefault","require","_react2","_styles","_chartSetup","_interopRequireWildcard","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","jest","mock","ChartType","_ref","value","onChange","createElement","NumberTextFieldCustom","_ref2","label","props","_objectWithoutProperties2","_extends2","concat","toLowerCase","replace","type","parseFloat","target","AlertDialog","_ref3","open","title","text","onClose","onConfirm","onClick","theme","beforeAll","createTheme","describe","data","range","model","beforeEach","min","max","step","someField","fn","it","resetValues","expect","toBe","not","toHaveBeenCalled","toThrow","undefined","toHaveBeenCalledWith","multiData","every","d","decimalRange","decimalData","defaultModel","chartType","labelStep","graph","width","height","correctAnswer","changeInteractiveEnabled","changeEditableEnabled","defaultProps","chartDimensions","showInConfigPanel","gridValues","labelValues","studentNewCategoryDefaultLabel","availableChartTypes","chartTypeLabel","clearAllMocks","renderComponent","extras","render","ThemeProvider","_renderComponent","container","toBeInTheDocument","_renderComponent2","getByText","_renderComponent3","getByTestId","_renderComponent4","getByLabelText","_renderComponent5","_renderComponent6","_renderComponent7","queryByLabelText","_renderComponent8","_renderComponent9","queryByText","_renderComponent0","_renderComponent1","_renderComponent10","_renderComponent11","getAllByText","constraints","toBeGreaterThan","_renderComponent12","fireEvent","change","_asyncToGenerator2","_regenerator","mark","_callee","_renderComponent13","wrap","_context","prev","next","waitFor","stop","_renderComponent14","objectContaining","_renderComponent15","maxInput","_renderComponent16","stepInput","_renderComponent17","labelStepInput","_callee2","_renderComponent18","queryByTestId","_context2","_callee3","_renderComponent19","_context3","_renderComponent20","widthInput","_renderComponent21","heightInput","_callee4","_renderComponent22","event","_context4","dialog","click","timeout","_callee5","_renderComponent23","_context5","_renderComponent24","_renderComponent25","_renderComponent26","_renderComponent27","_renderComponent28","_renderComponent29","_renderComponent30","_renderComponent31"],"sources":["../../src/__tests__/chart-setup.test.jsx"],"sourcesContent":["import React from 'react';\nimport { fireEvent, render, waitFor } from '@testing-library/react';\nimport { createTheme, ThemeProvider } from '@mui/material/styles';\nimport ConfigureChartPanel, { resetValues } from '../chart-setup';\n\njest.mock('../chart-type', () => {\n return function ChartType({ value, onChange }) {\n return (\n <select data-testid=\"chart-type-select\" value={value} onChange={onChange}>\n <option value=\"bar\">Bar</option>\n <option value=\"line\">Line</option>\n <option value=\"linePlot\">Line Plot</option>\n <option value=\"dotPlot\">Dot Plot</option>\n </select>\n );\n };\n});\n\njest.mock('@pie-lib/config-ui', () => ({\n NumberTextFieldCustom: ({ label, value, onChange, ...props }) => (\n <input\n data-testid={`number-field-${label.toLowerCase().replace(/\\s+/g, '-')}`}\n type=\"number\"\n value={value}\n onChange={(e) => onChange(e, parseFloat(e.target.value) || 0)}\n aria-label={label}\n {...props}\n />\n ),\n AlertDialog: ({ open, title, text, onClose, onConfirm }) =>\n open ? (\n <div data-testid=\"alert-dialog\">\n <h2>{title}</h2>\n <p>{text}</p>\n <button data-testid=\"alert-cancel\" onClick={onClose}>\n Cancel\n </button>\n <button data-testid=\"alert-confirm\" onClick={onConfirm}>\n Confirm\n </button>\n </div>\n ) : null,\n}));\n\nlet theme;\n\nbeforeAll(() => {\n theme = createTheme();\n});\n\ndescribe('resetValues', () => {\n let data;\n let range;\n let model;\n let onChange;\n\n beforeEach(() => {\n range = { min: 0, max: 10, step: 1 };\n data = [{ value: 2 }, { value: 11 }, { value: 5.5 }, { value: 2.0000000001 }, { value: 2.9999999999 }];\n model = { someField: 'someValue', data };\n onChange = jest.fn();\n });\n\n it('should reset values greater than range.max to zero', () => {\n resetValues(data, true, range, onChange, model);\n expect(data[1].value).toBe(0);\n });\n\n it('should reset values that are not multiples of range.step to zero', () => {\n resetValues(data, true, range, onChange, model);\n expect(data[2].value).toBe(0);\n });\n\n it('should not reset values that are within range and multiples of range.step', () => {\n resetValues(data, true, range, onChange, model);\n expect(data[0].value).toBe(2);\n });\n\n it('should not reset floating point values that are close to multiples of range.step', () => {\n resetValues(data, true, range, onChange, model);\n expect(data[3].value).toBe(2.0000000001);\n expect(data[4].value).toBe(2.9999999999);\n });\n\n it('should not call onChange when updateModel is false', () => {\n resetValues(data, false, range, onChange, model);\n expect(onChange).not.toHaveBeenCalled();\n });\n\n it('should handle null or undefined data array', () => {\n expect(() => resetValues(null, true, range, onChange, model)).not.toThrow();\n expect(() => resetValues(undefined, true, range, onChange, model)).not.toThrow();\n });\n\n it('should handle empty data array', () => {\n resetValues([], true, range, onChange, model);\n expect(onChange).toHaveBeenCalledWith({ ...model, data: [] });\n });\n\n it('should reset multiple invalid values', () => {\n const multiData = [{ value: 11 }, { value: 12 }, { value: 5.5 }, { value: 3.7 }];\n resetValues(multiData, true, range, onChange, { ...model, data: multiData });\n expect(multiData.every((d) => d.value === 0)).toBe(true);\n });\n\n it('should handle decimal step values', () => {\n const decimalRange = { min: 0, max: 10, step: 0.5 };\n const decimalData = [{ value: 1.5 }, { value: 2.3 }, { value: 3.0 }];\n resetValues(decimalData, true, decimalRange, onChange, model);\n expect(decimalData[0].value).toBe(1.5);\n expect(decimalData[1].value).toBe(0);\n expect(decimalData[2].value).toBe(3.0);\n });\n});\n\ndescribe('ConfigureChartPanel', () => {\n const defaultModel = {\n chartType: 'bar',\n range: { min: 0, max: 10, step: 1, labelStep: 1 },\n graph: { width: 400, height: 500 },\n data: [{ value: 5 }],\n correctAnswer: { data: [{ value: 3 }] },\n changeInteractiveEnabled: true,\n changeEditableEnabled: true,\n };\n\n const defaultProps = {\n model: defaultModel,\n onChange: jest.fn(),\n chartDimensions: {\n showInConfigPanel: true,\n width: { min: 50, max: 700, step: 20 },\n height: { min: 400, max: 700, step: 20 },\n },\n gridValues: { range: { min: 0, max: 10000 } },\n labelValues: { range: { min: 0, max: 10000 } },\n studentNewCategoryDefaultLabel: { label: 'Category' },\n availableChartTypes: {},\n chartTypeLabel: 'Chart Type',\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n const renderComponent = (extras = {}) => {\n const props = { ...defaultProps, ...extras };\n return render(\n <ThemeProvider theme={theme}>\n <ConfigureChartPanel {...props} />\n </ThemeProvider>,\n );\n };\n\n describe('rendering', () => {\n it('should render without crashing', () => {\n const { container } = renderComponent();\n expect(container).toBeInTheDocument();\n });\n\n it('should render \"Configure Chart\" title', () => {\n const { getByText } = renderComponent();\n expect(getByText('Configure Chart')).toBeInTheDocument();\n });\n\n it('should render chart type selector', () => {\n const { getByTestId } = renderComponent();\n expect(getByTestId('chart-type-select')).toBeInTheDocument();\n });\n\n it('should render max value field', () => {\n const { getByLabelText } = renderComponent();\n expect(getByLabelText('Max Value')).toBeInTheDocument();\n });\n\n it('should render grid interval field for non-plot charts', () => {\n const { getByLabelText } = renderComponent({\n model: { ...defaultModel, chartType: 'bar' },\n });\n expect(getByLabelText('Grid Interval')).toBeInTheDocument();\n });\n\n it('should render label interval field for non-plot charts', () => {\n const { getByLabelText } = renderComponent({\n model: { ...defaultModel, chartType: 'bar' },\n });\n expect(getByLabelText('Label Interval')).toBeInTheDocument();\n });\n\n it('should not render step config for plot charts', () => {\n const { queryByLabelText } = renderComponent({\n model: { ...defaultModel, chartType: 'linePlot' },\n });\n expect(queryByLabelText('Grid Interval')).not.toBeInTheDocument();\n expect(queryByLabelText('Label Interval')).not.toBeInTheDocument();\n });\n\n it('should render dimensions section when showInConfigPanel is true', () => {\n const { getByText } = renderComponent({\n chartDimensions: {\n showInConfigPanel: true,\n width: { min: 50, max: 700, step: 20 },\n height: { min: 400, max: 700, step: 20 },\n },\n });\n expect(getByText('Dimensions(px)')).toBeInTheDocument();\n });\n\n it('should not render dimensions section when showInConfigPanel is false', () => {\n const { queryByText } = renderComponent({\n chartDimensions: {\n showInConfigPanel: false,\n width: { min: 50, max: 700, step: 20 },\n height: { min: 400, max: 700, step: 20 },\n },\n });\n expect(queryByText('Dimensions(px)')).not.toBeInTheDocument();\n });\n\n it('should render width field when dimensions are shown', () => {\n const { getByLabelText } = renderComponent();\n expect(getByLabelText('Width')).toBeInTheDocument();\n });\n\n it('should render height field when dimensions are shown', () => {\n const { getByLabelText } = renderComponent();\n expect(getByLabelText('Height')).toBeInTheDocument();\n });\n\n it('should display width constraints', () => {\n const { getByText } = renderComponent();\n expect(getByText('Min 50, Max 700')).toBeInTheDocument();\n });\n\n it('should display height constraints', () => {\n const { getAllByText } = renderComponent();\n const constraints = getAllByText('Min 400, Max 700');\n expect(constraints.length).toBeGreaterThan(0);\n });\n });\n\n describe('chart type changes', () => {\n it('should call onChange when chart type is changed to non-plot', () => {\n const onChange = jest.fn();\n const { getByTestId } = renderComponent({ onChange });\n\n fireEvent.change(getByTestId('chart-type-select'), { target: { value: 'line' } });\n\n expect(onChange).toHaveBeenCalled();\n });\n\n it('should show warning when switching to plot with invalid config', async () => {\n const { getByTestId, getByText } = renderComponent({\n model: { ...defaultModel, range: { max: 20, step: 2, labelStep: 2 } },\n });\n\n fireEvent.change(getByTestId('chart-type-select'), { target: { value: 'linePlot' } });\n\n await waitFor(() => {\n expect(getByText('Warning')).toBeInTheDocument();\n });\n });\n\n it('should allow switching to plot with valid config', () => {\n const onChange = jest.fn();\n const { getByTestId } = renderComponent({\n onChange,\n model: { ...defaultModel, range: { max: 10, step: 1, labelStep: 1 } },\n });\n\n fireEvent.change(getByTestId('chart-type-select'), { target: { value: 'dotPlot' } });\n\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n chartType: 'dotPlot',\n }),\n );\n });\n });\n\n describe('range changes', () => {\n it('should update max value', () => {\n const onChange = jest.fn();\n const { getByLabelText } = renderComponent({ onChange });\n\n const maxInput = getByLabelText('Max Value');\n fireEvent.change(maxInput, { target: { value: '15' } });\n\n expect(onChange).toHaveBeenCalled();\n });\n\n it('should update step value', () => {\n const onChange = jest.fn();\n const { getByLabelText } = renderComponent({ onChange });\n\n const stepInput = getByLabelText('Grid Interval');\n fireEvent.change(stepInput, { target: { value: '2' } });\n\n expect(onChange).toHaveBeenCalled();\n });\n\n it('should update label step value', () => {\n const onChange = jest.fn();\n const { getByLabelText } = renderComponent({ onChange });\n\n const labelStepInput = getByLabelText('Label Interval');\n fireEvent.change(labelStepInput, { target: { value: '2' } });\n\n expect(onChange).toHaveBeenCalled();\n });\n\n it('should show alert when changing max causes data to be out of range', async () => {\n const onChange = jest.fn();\n const { getByLabelText, queryByTestId } = renderComponent({\n onChange,\n model: {\n ...defaultModel,\n range: { min: 0, max: 10, step: 1, labelStep: 1 },\n data: [{ value: 8 }],\n correctAnswer: { data: [] },\n },\n });\n\n const maxInput = getByLabelText('Max Value');\n fireEvent.change(maxInput, { target: { value: '5' } });\n\n await waitFor(() => {\n expect(onChange).toHaveBeenCalled();\n });\n });\n\n it('should show alert when changing step causes data to be out of range', async () => {\n const onChange = jest.fn();\n const { getByLabelText } = renderComponent({\n onChange,\n model: {\n ...defaultModel,\n range: { min: 0, max: 10, step: 1, labelStep: 1 },\n data: [{ value: 5 }],\n correctAnswer: { data: [] },\n },\n });\n\n const stepInput = getByLabelText('Grid Interval');\n fireEvent.change(stepInput, { target: { value: '3' } });\n\n await waitFor(() => {\n expect(onChange).toHaveBeenCalled();\n });\n });\n });\n\n describe('dimensions changes', () => {\n it('should update width', () => {\n const onChange = jest.fn();\n const { getByLabelText } = renderComponent({ onChange });\n\n const widthInput = getByLabelText('Width');\n fireEvent.change(widthInput, { target: { value: '500' } });\n\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n graph: expect.objectContaining({ width: 500 }),\n }),\n );\n });\n\n it('should update height', () => {\n const onChange = jest.fn();\n const { getByLabelText } = renderComponent({ onChange });\n\n const heightInput = getByLabelText('Height');\n fireEvent.change(heightInput, { target: { value: '600' } });\n\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n graph: expect.objectContaining({ height: 600 }),\n }),\n );\n });\n });\n\n describe('alert dialog', () => {\n it('should reset range on cancel', async () => {\n const onChange = jest.fn();\n const { getByLabelText, queryByTestId } = renderComponent({\n onChange,\n model: {\n ...defaultModel,\n range: { min: 0, max: 10, step: 1, labelStep: 1 },\n data: [{ value: 8 }],\n correctAnswer: { data: [] },\n },\n });\n\n const maxInput = getByLabelText('Max Value');\n\n const event = { target: maxInput };\n fireEvent.change(maxInput, { target: { value: '5' } });\n\n await waitFor(\n () => {\n const dialog = queryByTestId('alert-dialog');\n if (dialog) {\n fireEvent.click(queryByTestId('alert-cancel'));\n }\n },\n { timeout: 100 },\n ).catch(() => {});\n\n expect(onChange).toHaveBeenCalled();\n });\n\n it('should apply changes and reset data on confirm', async () => {\n const onChange = jest.fn();\n const { getByLabelText, queryByTestId } = renderComponent({\n onChange,\n model: {\n ...defaultModel,\n range: { min: 0, max: 10, step: 1, labelStep: 1 },\n data: [{ value: 8 }],\n correctAnswer: { data: [] },\n },\n });\n\n const maxInput = getByLabelText('Max Value');\n fireEvent.change(maxInput, { target: { value: '5' } });\n\n await waitFor(\n () => {\n const dialog = queryByTestId('alert-dialog');\n if (dialog) {\n fireEvent.click(queryByTestId('alert-confirm'));\n }\n },\n { timeout: 100 },\n ).catch(() => {});\n\n expect(onChange).toHaveBeenCalled();\n });\n });\n\n describe('edge cases', () => {\n it('should handle missing chartDimensions', () => {\n const { container } = renderComponent({ chartDimensions: undefined });\n expect(container).toBeInTheDocument();\n });\n\n it('should handle missing gridValues', () => {\n const { container } = renderComponent({ gridValues: undefined });\n expect(container).toBeInTheDocument();\n });\n\n it('should handle missing labelValues', () => {\n const { container } = renderComponent({ labelValues: undefined });\n expect(container).toBeInTheDocument();\n });\n\n it('should handle empty model data', () => {\n const { container } = renderComponent({\n model: {\n ...defaultModel,\n data: [],\n correctAnswer: { data: [] },\n },\n });\n expect(container).toBeInTheDocument();\n });\n\n it('should handle empty range object', () => {\n const { container } = renderComponent({\n model: {\n ...defaultModel,\n range: {},\n },\n });\n expect(container).toBeInTheDocument();\n });\n\n it('should apply width constraints correctly', () => {\n const { container } = renderComponent({\n chartDimensions: {\n showInConfigPanel: true,\n width: { min: 100, max: 600, step: 50 },\n height: { min: 400, max: 700, step: 20 },\n },\n });\n expect(container).toBeInTheDocument();\n });\n\n it('should apply height constraints correctly', () => {\n const { container } = renderComponent({\n chartDimensions: {\n showInConfigPanel: true,\n width: { min: 50, max: 700, step: 20 },\n height: { min: 450, max: 650, step: 30 },\n },\n });\n expect(container).toBeInTheDocument();\n });\n\n it('should handle very small step values', () => {\n const { container } = renderComponent({\n chartDimensions: {\n showInConfigPanel: true,\n width: { min: 50, max: 700, step: 0.5 },\n height: { min: 400, max: 700, step: 0.5 },\n },\n });\n expect(container).toBeInTheDocument();\n });\n });\n\n describe('useEffect lifecycle', () => {\n it('should call onChange on mount', () => {\n const onChange = jest.fn();\n renderComponent({ onChange });\n\n expect(onChange).toHaveBeenCalled();\n });\n\n it('should set category default label on mount', () => {\n const onChange = jest.fn();\n renderComponent({\n onChange,\n studentNewCategoryDefaultLabel: { label: 'Test Category' },\n });\n\n expect(onChange).toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -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=chart-type.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-type.test.js","names":["_react","_interopRequireDefault","require","_testUtils","_chartType","describe","props","onChange","jest","fn","beforeEach","classes","value","it","_render","render","createElement","container","expect","firstChild","toBeInTheDocument"],"sources":["../../src/__tests__/chart-type.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@pie-lib/test-utils';\nimport ChartType from '../chart-type';\n\ndescribe('ChartType', () => {\n let props;\n const onChange = jest.fn();\n\n beforeEach(() => {\n props = {\n classes: {},\n value: 'bar',\n onChange,\n };\n });\n\n describe('rendering', () => {\n it('renders chart type selector', () => {\n const { container } = render(<ChartType {...props} />);\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n});\n"],"mappings":";;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEAG,QAAQ,CAAC,WAAW,EAAE,YAAM;EAC1B,IAAIC,KAAK;EACT,IAAMC,QAAQ,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EAE1BC,UAAU,CAAC,YAAM;IACfJ,KAAK,GAAG;MACNK,OAAO,EAAE,CAAC,CAAC;MACXC,KAAK,EAAE,KAAK;MACZL,QAAQ,EAARA;IACF,CAAC;EACH,CAAC,CAAC;EAEFF,QAAQ,CAAC,WAAW,EAAE,YAAM;IAC1BQ,EAAE,CAAC,6BAA6B,EAAE,YAAM;MACtC,IAAAC,OAAA,GAAsB,IAAAC,iBAAM,eAACf,MAAA,YAAAgB,aAAA,CAACZ,UAAA,WAAS,EAAKE,KAAQ,CAAC,CAAC;QAA9CW,SAAS,GAAAH,OAAA,CAATG,SAAS;MACjBC,MAAM,CAACD,SAAS,CAACE,UAAU,CAAC,CAACC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -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=chart.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.test.js","names":["_react","_interopRequireDefault","require","_testUtils","_chart","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onDataChange","jest","fn","renderComponent","extras","defaults","classes","className","graphProps","xBand","createBandScale","charts","type","Component","createElement","chartType","domain","range","min","max","size","width","height","data","props","render","Chart","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","querySelector","_renderComponent2","svg","toHaveAttribute","_renderComponent3","undefined","_renderComponent4","_renderComponent5","_renderComponent6","_renderComponent7"],"sources":["../../src/__tests__/chart.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@pie-lib/test-utils';\nimport { Chart } from '../chart';\nimport { createBandScale, graphProps } from './utils';\n\ndescribe('ChartAxes', () => {\n let onDataChange = jest.fn();\n\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n onDataChange,\n className: 'className',\n graphProps: graphProps(),\n xBand: createBandScale(['a', 'b', 'c'], [0, 100]),\n charts: [\n {\n type: 'bar',\n Component: () => <div />,\n },\n ],\n chartType: 'bar',\n domain: {},\n range: {\n min: 0,\n max: 10,\n },\n size: {\n width: 100,\n height: 100,\n },\n data: [],\n };\n const props = { ...defaults, ...extras };\n return render(<Chart {...props} />);\n };\n\n describe('rendering', () => {\n it('renders chart container', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n expect(container.querySelector('svg')).toBeInTheDocument();\n });\n\n it('renders chart with default size', () => {\n const { container } = renderComponent();\n const svg = container.querySelector('svg');\n expect(svg).toBeInTheDocument();\n expect(svg).toHaveAttribute('width', '240');\n expect(svg).toHaveAttribute('height', '240');\n });\n\n it('renders chart when size is not defined', () => {\n const { container } = renderComponent({ size: undefined });\n expect(container.firstChild).toBeInTheDocument();\n const svg = container.querySelector('svg');\n expect(svg).toBeInTheDocument();\n });\n\n it('renders chart without chartType property', () => {\n const { container } = renderComponent({ chartType: null });\n expect(container.firstChild).toBeInTheDocument();\n expect(container.querySelector('svg')).toBeInTheDocument();\n });\n\n it('renders chart without chartType and charts properties', () => {\n const { container } = renderComponent({ chartType: null, charts: null });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders chart without chartType property and empty charts property', () => {\n const { container } = renderComponent({ chartType: null, charts: [] });\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders chart with chartType property and empty charts property', () => {\n const { container } = renderComponent({ charts: [] });\n expect(container.firstChild).toBeInTheDocument();\n expect(container.querySelector('svg')).toBeInTheDocument();\n });\n });\n\n // Note: changeData, getChart, and deleteCategory are internal implementation details.\n // In RTL philosophy, we test user-visible behavior rather than implementation.\n // These methods would be tested indirectly through user interactions that trigger them.\n});\n"],"mappings":"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","ignoreList":[]}
@@ -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=grid.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.test.js","names":["_react","_interopRequireDefault","require","_testUtils","_grid","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","renderComponent","extras","defaults","classes","className","graphProps","xBand","createBandScale","props","render","createElement","Grid","it","_renderComponent","container","expect","firstChild","toBeInTheDocument","_renderComponent2","svg","querySelector","gridGroup"],"sources":["../../src/__tests__/grid.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@pie-lib/test-utils';\nimport { Grid } from '../grid';\nimport { createBandScale, graphProps } from './utils';\n\ndescribe('Grid', () => {\n const renderComponent = (extras) => {\n const defaults = {\n classes: {},\n className: 'className',\n graphProps: graphProps(),\n xBand: createBandScale(['a', 'b', 'c'], [0, 400]),\n };\n const props = { ...defaults, ...extras };\n return render(\n <svg>\n <Grid {...props} />\n </svg>,\n );\n };\n\n describe('rendering', () => {\n it('renders grid container', () => {\n const { container } = renderComponent();\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders grid with SVG group', () => {\n const { container } = renderComponent();\n const svg = container.querySelector('svg');\n expect(svg).toBeInTheDocument();\n // Grid renders a <g> element (StyledGridGroup)\n const gridGroup = container.querySelector('g');\n expect(gridGroup).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -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=key-legend.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-legend.test.js","names":["_react","_interopRequireDefault","require","_react2","_styles","_keyLegend","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","__esModule","translator","fn","key","translations","Check","props","createElement","_extends2","Close","theme","beforeAll","createTheme","describe","renderComponent","extras","undefined","defaults","language","render","ThemeProvider","it","_renderComponent","container","expect","toBeInTheDocument","_renderComponent2","getByText","_renderComponent3","_renderComponent4","_renderComponent5","_renderComponent6","_renderComponent7","_renderComponent8","getAllByTestId","closeIcons","toBeGreaterThan","_renderComponent9","checkIcons","toBe","_renderComponent0","icon","_renderComponent1","texts","text","textContent","toContain","_renderComponent10","firstChild","querySelector","_container$firstChild","_renderComponent11","styledDiv","_renderComponent12","querySelectorAll","_renderComponent13","_renderComponent14","icons","concat","_toConsumableArray2","_renderComponent15","_renderComponent16","languages","lang","_renderComponent17","unmount","Translator","toHaveBeenCalled","_renderComponent18","_container$firstChild2","_renderComponent19","mainContainer","_renderComponent20"],"sources":["../../src/__tests__/key-legend.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@testing-library/react';\nimport { createTheme, ThemeProvider } from '@mui/material/styles';\nimport KeyLegend from '../key-legend';\n\njest.mock('@pie-lib/translator', () => ({\n __esModule: true,\n default: {\n translator: {\n t: jest.fn((key) => {\n const translations = {\n 'charting.keyLegend.incorrectAnswer': 'Incorrect answer selected',\n 'charting.keyLegend.correctAnswer': 'Correct answer selected',\n 'charting.keyLegend.correctKeyAnswer': 'Correct answer',\n };\n return translations[key] || key;\n }),\n },\n },\n}));\n\njest.mock('@mui/icons-material/Check', () => {\n return function Check(props) {\n return <div data-testid=\"check-icon\" {...props} />;\n };\n});\n\njest.mock('@mui/icons-material/Close', () => {\n return function Close(props) {\n return <div data-testid=\"close-icon\" {...props} />;\n };\n});\n\nlet theme;\n\nbeforeAll(() => {\n theme = createTheme();\n});\n\ndescribe('KeyLegend', () => {\n const renderComponent = (extras = {}) => {\n const defaults = {\n language: 'en',\n };\n const props = { ...defaults, ...extras };\n return render(\n <ThemeProvider theme={theme}>\n <KeyLegend {...props} />\n </ThemeProvider>,\n );\n };\n\n describe('rendering', () => {\n it('renders without crashing', () => {\n const { container } = renderComponent();\n expect(container).toBeInTheDocument();\n });\n\n it('renders Key title', () => {\n const { getByText } = renderComponent();\n expect(getByText('Key')).toBeInTheDocument();\n });\n\n it('renders incorrect answer row', () => {\n const { getByText } = renderComponent();\n expect(getByText('Incorrect answer selected')).toBeInTheDocument();\n });\n\n it('renders correct answer row', () => {\n const { getByText } = renderComponent();\n expect(getByText('Correct answer selected')).toBeInTheDocument();\n });\n\n it('renders correct key answer row', () => {\n const { getByText } = renderComponent();\n expect(getByText('Correct answer')).toBeInTheDocument();\n });\n\n it('renders with custom language', () => {\n const { container } = renderComponent({ language: 'es' });\n expect(container).toBeInTheDocument();\n });\n\n it('renders with undefined language', () => {\n const { container } = renderComponent({ language: undefined });\n expect(container).toBeInTheDocument();\n });\n });\n\n describe('icons', () => {\n it('renders incorrect icon (Close)', () => {\n const { getAllByTestId } = renderComponent();\n const closeIcons = getAllByTestId('close-icon');\n expect(closeIcons.length).toBeGreaterThan(0);\n });\n\n it('renders correct icons (Check)', () => {\n const { getAllByTestId } = renderComponent();\n const checkIcons = getAllByTestId('check-icon');\n expect(checkIcons.length).toBe(2);\n });\n\n it('renders small check icon for correct key answer', () => {\n const { getAllByTestId } = renderComponent();\n const checkIcons = getAllByTestId('check-icon');\n\n expect(checkIcons.length).toBeGreaterThan(0);\n\n checkIcons.forEach((icon) => {\n expect(icon).toBeInTheDocument();\n });\n });\n });\n\n describe('structure', () => {\n it('has correct number of rows', () => {\n const { container } = renderComponent();\n const texts = ['Incorrect answer selected', 'Correct answer selected', 'Correct answer'];\n\n texts.forEach((text) => {\n expect(container.textContent).toContain(text);\n });\n });\n\n it('displays title at the top', () => {\n const { container } = renderComponent();\n const firstChild = container.querySelector('div > div');\n expect(firstChild?.textContent).toContain('Key');\n });\n });\n\n describe('styling', () => {\n it('applies styled container', () => {\n const { container } = renderComponent();\n const styledDiv = container.firstChild?.firstChild;\n expect(styledDiv).toBeInTheDocument();\n });\n\n it('renders all content in proper structure', () => {\n const { container } = renderComponent();\n expect(container.querySelector('[data-testid=\"close-icon\"]')).toBeInTheDocument();\n expect(container.querySelectorAll('[data-testid=\"check-icon\"]').length).toBe(2);\n });\n });\n\n describe('accessibility', () => {\n it('has readable text content', () => {\n const { container } = renderComponent();\n const text = container.textContent;\n\n expect(text).toContain('Key');\n expect(text).toContain('Incorrect answer selected');\n expect(text).toContain('Correct answer selected');\n expect(text).toContain('Correct answer');\n });\n\n it('icons have proper structure for screen readers', () => {\n const { getAllByTestId } = renderComponent();\n const icons = [...getAllByTestId('close-icon'), ...getAllByTestId('check-icon')];\n\n expect(icons.length).toBeGreaterThan(0);\n });\n });\n\n describe('edge cases', () => {\n it('handles null language', () => {\n const { container } = renderComponent({ language: null });\n expect(container).toBeInTheDocument();\n });\n\n it('handles empty string language', () => {\n const { container } = renderComponent({ language: '' });\n expect(container).toBeInTheDocument();\n });\n\n it('renders consistently with different language codes', () => {\n const languages = ['en', 'es', 'fr', 'de', 'zh'];\n\n languages.forEach((lang) => {\n const { container, unmount } = renderComponent({ language: lang });\n expect(container).toBeInTheDocument();\n unmount();\n });\n });\n });\n\n describe('translation integration', () => {\n it('calls translator with language parameter', () => {\n const Translator = require('@pie-lib/translator').default;\n const { t } = Translator.translator;\n\n renderComponent({ language: 'es' });\n\n expect(t).toHaveBeenCalled();\n });\n\n it('displays all required translation keys', () => {\n const { container } = renderComponent();\n const text = container.textContent;\n\n expect(text).toContain('Incorrect answer selected');\n expect(text).toContain('Correct answer selected');\n expect(text).toContain('Correct answer');\n });\n });\n\n describe('layout', () => {\n it('renders in a flex column layout', () => {\n const { container } = renderComponent();\n const mainContainer = container.firstChild?.firstChild;\n expect(mainContainer).toBeInTheDocument();\n });\n\n it('has proper spacing between elements', () => {\n const { getByText } = renderComponent();\n\n expect(getByText('Key')).toBeInTheDocument();\n expect(getByText('Incorrect answer selected')).toBeInTheDocument();\n expect(getByText('Correct answer selected')).toBeInTheDocument();\n expect(getByText('Correct answer')).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}