@pie-lib/charting 7.1.0-beta.8 → 7.1.0-beta.9

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 (31) hide show
  1. package/package.json +2 -2
  2. package/src/__tests__/actions-button.test.jsx +0 -280
  3. package/src/__tests__/axes.test.jsx +0 -667
  4. package/src/__tests__/chart-setup.test.jsx +0 -532
  5. package/src/__tests__/chart-type.test.jsx +0 -23
  6. package/src/__tests__/chart.test.jsx +0 -86
  7. package/src/__tests__/grid.test.jsx +0 -37
  8. package/src/__tests__/key-legend.test.jsx +0 -223
  9. package/src/__tests__/mark-label.test.jsx +0 -33
  10. package/src/__tests__/tool-menu.test.jsx +0 -522
  11. package/src/__tests__/utils.js +0 -36
  12. package/src/__tests__/utils.test.js +0 -100
  13. package/src/bars/__tests__/bar.test.jsx +0 -45
  14. package/src/bars/__tests__/histogram.test.jsx +0 -45
  15. package/src/bars/__tests__/utils.js +0 -30
  16. package/src/bars/common/__tests__/bars.test.jsx +0 -68
  17. package/src/bars/common/__tests__/utils.js +0 -30
  18. package/src/common/__tests__/correctness-indicators.test.jsx +0 -720
  19. package/src/common/__tests__/drag-handle.test.jsx +0 -58
  20. package/src/common/__tests__/utils.js +0 -30
  21. package/src/line/__tests__/line-cross.test.jsx +0 -463
  22. package/src/line/__tests__/line-dot.test.jsx +0 -41
  23. package/src/line/__tests__/utils.js +0 -36
  24. package/src/line/common/__tests__/drag-handle.test.jsx +0 -62
  25. package/src/line/common/__tests__/line.test.jsx +0 -79
  26. package/src/line/common/__tests__/utils.js +0 -30
  27. package/src/plot/__tests__/dot.test.jsx +0 -344
  28. package/src/plot/__tests__/line.test.jsx +0 -375
  29. package/src/plot/__tests__/utils.js +0 -30
  30. package/src/plot/common/__tests__/plot.test.jsx +0 -69
  31. package/src/plot/common/__tests__/utils.js +0 -30
@@ -1,223 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import { createTheme, ThemeProvider } from '@mui/material/styles';
4
- import KeyLegend from '../key-legend';
5
-
6
- jest.mock('@pie-lib/translator', () => ({
7
- __esModule: true,
8
- default: {
9
- translator: {
10
- t: jest.fn((key) => {
11
- const translations = {
12
- 'charting.keyLegend.incorrectAnswer': 'Incorrect answer selected',
13
- 'charting.keyLegend.correctAnswer': 'Correct answer selected',
14
- 'charting.keyLegend.correctKeyAnswer': 'Correct answer',
15
- };
16
- return translations[key] || key;
17
- }),
18
- },
19
- },
20
- }));
21
-
22
- jest.mock('@mui/icons-material/Check', () => {
23
- return function Check(props) {
24
- return <div data-testid="check-icon" {...props} />;
25
- };
26
- });
27
-
28
- jest.mock('@mui/icons-material/Close', () => {
29
- return function Close(props) {
30
- return <div data-testid="close-icon" {...props} />;
31
- };
32
- });
33
-
34
- let theme;
35
-
36
- beforeAll(() => {
37
- theme = createTheme();
38
- });
39
-
40
- describe('KeyLegend', () => {
41
- const renderComponent = (extras = {}) => {
42
- const defaults = {
43
- language: 'en',
44
- };
45
- const props = { ...defaults, ...extras };
46
- return render(
47
- <ThemeProvider theme={theme}>
48
- <KeyLegend {...props} />
49
- </ThemeProvider>,
50
- );
51
- };
52
-
53
- describe('rendering', () => {
54
- it('renders without crashing', () => {
55
- const { container } = renderComponent();
56
- expect(container).toBeInTheDocument();
57
- });
58
-
59
- it('renders Key title', () => {
60
- const { getByText } = renderComponent();
61
- expect(getByText('Key')).toBeInTheDocument();
62
- });
63
-
64
- it('renders incorrect answer row', () => {
65
- const { getByText } = renderComponent();
66
- expect(getByText('Incorrect answer selected')).toBeInTheDocument();
67
- });
68
-
69
- it('renders correct answer row', () => {
70
- const { getByText } = renderComponent();
71
- expect(getByText('Correct answer selected')).toBeInTheDocument();
72
- });
73
-
74
- it('renders correct key answer row', () => {
75
- const { getByText } = renderComponent();
76
- expect(getByText('Correct answer')).toBeInTheDocument();
77
- });
78
-
79
- it('renders with custom language', () => {
80
- const { container } = renderComponent({ language: 'es' });
81
- expect(container).toBeInTheDocument();
82
- });
83
-
84
- it('renders with undefined language', () => {
85
- const { container } = renderComponent({ language: undefined });
86
- expect(container).toBeInTheDocument();
87
- });
88
- });
89
-
90
- describe('icons', () => {
91
- it('renders incorrect icon (Close)', () => {
92
- const { getAllByTestId } = renderComponent();
93
- const closeIcons = getAllByTestId('close-icon');
94
- expect(closeIcons.length).toBeGreaterThan(0);
95
- });
96
-
97
- it('renders correct icons (Check)', () => {
98
- const { getAllByTestId } = renderComponent();
99
- const checkIcons = getAllByTestId('check-icon');
100
- expect(checkIcons.length).toBe(2);
101
- });
102
-
103
- it('renders small check icon for correct key answer', () => {
104
- const { getAllByTestId } = renderComponent();
105
- const checkIcons = getAllByTestId('check-icon');
106
-
107
- expect(checkIcons.length).toBeGreaterThan(0);
108
-
109
- checkIcons.forEach((icon) => {
110
- expect(icon).toBeInTheDocument();
111
- });
112
- });
113
- });
114
-
115
- describe('structure', () => {
116
- it('has correct number of rows', () => {
117
- const { container } = renderComponent();
118
- const texts = ['Incorrect answer selected', 'Correct answer selected', 'Correct answer'];
119
-
120
- texts.forEach((text) => {
121
- expect(container.textContent).toContain(text);
122
- });
123
- });
124
-
125
- it('displays title at the top', () => {
126
- const { container } = renderComponent();
127
- const firstChild = container.querySelector('div > div');
128
- expect(firstChild?.textContent).toContain('Key');
129
- });
130
- });
131
-
132
- describe('styling', () => {
133
- it('applies styled container', () => {
134
- const { container } = renderComponent();
135
- const styledDiv = container.firstChild?.firstChild;
136
- expect(styledDiv).toBeInTheDocument();
137
- });
138
-
139
- it('renders all content in proper structure', () => {
140
- const { container } = renderComponent();
141
- expect(container.querySelector('[data-testid="close-icon"]')).toBeInTheDocument();
142
- expect(container.querySelectorAll('[data-testid="check-icon"]').length).toBe(2);
143
- });
144
- });
145
-
146
- describe('accessibility', () => {
147
- it('has readable text content', () => {
148
- const { container } = renderComponent();
149
- const text = container.textContent;
150
-
151
- expect(text).toContain('Key');
152
- expect(text).toContain('Incorrect answer selected');
153
- expect(text).toContain('Correct answer selected');
154
- expect(text).toContain('Correct answer');
155
- });
156
-
157
- it('icons have proper structure for screen readers', () => {
158
- const { getAllByTestId } = renderComponent();
159
- const icons = [...getAllByTestId('close-icon'), ...getAllByTestId('check-icon')];
160
-
161
- expect(icons.length).toBeGreaterThan(0);
162
- });
163
- });
164
-
165
- describe('edge cases', () => {
166
- it('handles null language', () => {
167
- const { container } = renderComponent({ language: null });
168
- expect(container).toBeInTheDocument();
169
- });
170
-
171
- it('handles empty string language', () => {
172
- const { container } = renderComponent({ language: '' });
173
- expect(container).toBeInTheDocument();
174
- });
175
-
176
- it('renders consistently with different language codes', () => {
177
- const languages = ['en', 'es', 'fr', 'de', 'zh'];
178
-
179
- languages.forEach((lang) => {
180
- const { container, unmount } = renderComponent({ language: lang });
181
- expect(container).toBeInTheDocument();
182
- unmount();
183
- });
184
- });
185
- });
186
-
187
- describe('translation integration', () => {
188
- it('calls translator with language parameter', () => {
189
- const Translator = require('@pie-lib/translator').default;
190
- const { t } = Translator.translator;
191
-
192
- renderComponent({ language: 'es' });
193
-
194
- expect(t).toHaveBeenCalled();
195
- });
196
-
197
- it('displays all required translation keys', () => {
198
- const { container } = renderComponent();
199
- const text = container.textContent;
200
-
201
- expect(text).toContain('Incorrect answer selected');
202
- expect(text).toContain('Correct answer selected');
203
- expect(text).toContain('Correct answer');
204
- });
205
- });
206
-
207
- describe('layout', () => {
208
- it('renders in a flex column layout', () => {
209
- const { container } = renderComponent();
210
- const mainContainer = container.firstChild?.firstChild;
211
- expect(mainContainer).toBeInTheDocument();
212
- });
213
-
214
- it('has proper spacing between elements', () => {
215
- const { getByText } = renderComponent();
216
-
217
- expect(getByText('Key')).toBeInTheDocument();
218
- expect(getByText('Incorrect answer selected')).toBeInTheDocument();
219
- expect(getByText('Correct answer selected')).toBeInTheDocument();
220
- expect(getByText('Correct answer')).toBeInTheDocument();
221
- });
222
- });
223
- });
@@ -1,33 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@pie-lib/test-utils';
3
- import { MarkLabel } from '../mark-label';
4
- import { graphProps as getGraphProps } from './utils';
5
-
6
- describe('MarkLabel', () => {
7
- let onChange = jest.fn();
8
-
9
- const renderComponent = (extras) => {
10
- const defaults = {
11
- classes: {},
12
- defineChart: false,
13
- className: 'className',
14
- onChange,
15
- mark: { x: 1, y: 1 },
16
- graphProps: getGraphProps(0, 10, 0, 10),
17
- };
18
- const props = { ...defaults, ...extras };
19
- return render(<MarkLabel {...props} />);
20
- };
21
-
22
- describe('rendering', () => {
23
- it('renders mark label', () => {
24
- const { container } = renderComponent();
25
- expect(container.firstChild).toBeInTheDocument();
26
- });
27
-
28
- it('renders mark label at different positions', () => {
29
- const { container } = renderComponent({ mark: { x: 10, y: 10 } });
30
- expect(container.firstChild).toBeInTheDocument();
31
- });
32
- });
33
- });