@pie-lib/config-ui 13.0.13 → 13.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 (47) hide show
  1. package/CHANGELOG.md +0 -42
  2. package/lib/__tests__/alert-dialog.test.js +262 -0
  3. package/lib/__tests__/alert-dialog.test.js.map +1 -0
  4. package/lib/__tests__/checkbox.test.js +227 -0
  5. package/lib/__tests__/checkbox.test.js.map +1 -0
  6. package/lib/__tests__/choice-utils.test.js +14 -0
  7. package/lib/__tests__/choice-utils.test.js.map +1 -0
  8. package/lib/__tests__/form-section.test.js +252 -0
  9. package/lib/__tests__/form-section.test.js.map +1 -0
  10. package/lib/__tests__/help.test.js +270 -0
  11. package/lib/__tests__/help.test.js.map +1 -0
  12. package/lib/__tests__/input.test.js +268 -0
  13. package/lib/__tests__/input.test.js.map +1 -0
  14. package/lib/__tests__/langs.test.js +541 -0
  15. package/lib/__tests__/langs.test.js.map +1 -0
  16. package/lib/__tests__/number-text-field-custom.test.js +362 -0
  17. package/lib/__tests__/number-text-field-custom.test.js.map +1 -0
  18. package/lib/__tests__/number-text-field.test.js +421 -0
  19. package/lib/__tests__/number-text-field.test.js.map +1 -0
  20. package/lib/__tests__/radio-with-label.test.js +233 -0
  21. package/lib/__tests__/radio-with-label.test.js.map +1 -0
  22. package/lib/__tests__/settings-panel.test.js +184 -0
  23. package/lib/__tests__/settings-panel.test.js.map +1 -0
  24. package/lib/__tests__/settings.test.js +653 -0
  25. package/lib/__tests__/settings.test.js.map +1 -0
  26. package/lib/__tests__/tabs.test.js +211 -0
  27. package/lib/__tests__/tabs.test.js.map +1 -0
  28. package/lib/__tests__/two-choice.test.js +124 -0
  29. package/lib/__tests__/two-choice.test.js.map +1 -0
  30. package/lib/__tests__/with-stateful-model.test.js +221 -0
  31. package/lib/__tests__/with-stateful-model.test.js.map +1 -0
  32. package/lib/choice-configuration/__tests__/feedback-menu.test.js +287 -0
  33. package/lib/choice-configuration/__tests__/feedback-menu.test.js.map +1 -0
  34. package/lib/choice-configuration/__tests__/index.test.js +253 -0
  35. package/lib/choice-configuration/__tests__/index.test.js.map +1 -0
  36. package/lib/feedback-config/__tests__/feedback-config.test.js +201 -0
  37. package/lib/feedback-config/__tests__/feedback-config.test.js.map +1 -0
  38. package/lib/feedback-config/__tests__/feedback-selector.test.js +177 -0
  39. package/lib/feedback-config/__tests__/feedback-selector.test.js.map +1 -0
  40. package/lib/layout/__tests__/config.layout.test.js +70 -0
  41. package/lib/layout/__tests__/config.layout.test.js.map +1 -0
  42. package/lib/layout/__tests__/layout-content.test.js +6 -0
  43. package/lib/layout/__tests__/layout-content.test.js.map +1 -0
  44. package/lib/tags-input/__tests__/index.test.js +183 -0
  45. package/lib/tags-input/__tests__/index.test.js.map +1 -0
  46. package/package.json +5 -5
  47. package/LICENSE.md +0 -5
@@ -0,0 +1,541 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
7
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
+ var _react = require("@testing-library/react");
9
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
+ var _react2 = _interopRequireDefault(require("react"));
11
+ var _langs = require("../langs");
12
+ 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; }
13
+ 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; }
14
+ describe('Langs Component', function () {
15
+ var onChange;
16
+ var renderComponent = function renderComponent() {
17
+ var extras = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
+ var defaults = {
19
+ uid: '1',
20
+ onChange: onChange,
21
+ langs: ['en-US', 'es-ES'],
22
+ selected: 'en-US'
23
+ };
24
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
25
+ return (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.Langs, props));
26
+ };
27
+ beforeEach(function () {
28
+ onChange = jest.fn();
29
+ });
30
+ describe('rendering', function () {
31
+ it('renders language selector with options', function () {
32
+ renderComponent();
33
+
34
+ // Select should be present
35
+ var select = _react.screen.getByRole('combobox');
36
+ expect(select).toBeInTheDocument();
37
+
38
+ // Should show selected value - MUI Select displays value as text content
39
+ expect(select).toHaveTextContent('en-US');
40
+ });
41
+ it('renders with custom label', function () {
42
+ renderComponent({
43
+ label: 'Choose Language'
44
+ });
45
+ expect(_react.screen.getByText('Choose Language')).toBeInTheDocument();
46
+ });
47
+ it('renders all language options', function () {
48
+ var _renderComponent = renderComponent({
49
+ langs: ['en-US', 'es-ES', 'fr-FR', 'de-DE']
50
+ }),
51
+ container = _renderComponent.container;
52
+ var select = _react.screen.getByRole('combobox');
53
+ expect(select).toBeInTheDocument();
54
+ });
55
+ it('renders with multiple languages', function () {
56
+ var langs = ['en-US', 'es-ES', 'fr-FR', 'pt-BR'];
57
+ renderComponent({
58
+ langs: langs
59
+ });
60
+ var select = _react.screen.getByRole('combobox');
61
+ expect(select).toHaveTextContent('en-US');
62
+ });
63
+ it('renders FormControl with proper structure', function () {
64
+ var _renderComponent2 = renderComponent(),
65
+ container = _renderComponent2.container;
66
+ expect(container.querySelector('[class*="MuiFormControl"]')).toBeInTheDocument();
67
+ });
68
+ });
69
+ describe('user interactions', function () {
70
+ it('calls onChange when user selects a language', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
71
+ var user, select;
72
+ return _regenerator["default"].wrap(function (_context) {
73
+ while (1) switch (_context.prev = _context.next) {
74
+ case 0:
75
+ user = _userEvent["default"].setup();
76
+ renderComponent();
77
+ select = _react.screen.getByRole('combobox'); // Open the select and choose es-ES
78
+ _context.next = 1;
79
+ return user.click(select);
80
+ case 1:
81
+ _context.next = 2;
82
+ return user.click(_react.screen.getByRole('option', {
83
+ name: 'es-ES'
84
+ }));
85
+ case 2:
86
+ expect(onChange).toHaveBeenCalledWith('es-ES');
87
+ case 3:
88
+ case "end":
89
+ return _context.stop();
90
+ }
91
+ }, _callee);
92
+ })));
93
+ it('calls onChange with correct value', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
94
+ var user, select;
95
+ return _regenerator["default"].wrap(function (_context2) {
96
+ while (1) switch (_context2.prev = _context2.next) {
97
+ case 0:
98
+ user = _userEvent["default"].setup();
99
+ renderComponent({
100
+ selected: 'es-ES'
101
+ });
102
+ select = _react.screen.getByRole('combobox');
103
+ _context2.next = 1;
104
+ return user.click(select);
105
+ case 1:
106
+ _context2.next = 2;
107
+ return user.click(_react.screen.getByRole('option', {
108
+ name: 'en-US'
109
+ }));
110
+ case 2:
111
+ expect(onChange).toHaveBeenCalledWith('en-US');
112
+ case 3:
113
+ case "end":
114
+ return _context2.stop();
115
+ }
116
+ }, _callee2);
117
+ })));
118
+ it('opens dropdown on click', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
119
+ var user, select;
120
+ return _regenerator["default"].wrap(function (_context3) {
121
+ while (1) switch (_context3.prev = _context3.next) {
122
+ case 0:
123
+ user = _userEvent["default"].setup();
124
+ renderComponent({
125
+ langs: ['en-US', 'es-ES', 'fr-FR']
126
+ });
127
+ select = _react.screen.getByRole('combobox');
128
+ _context3.next = 1;
129
+ return user.click(select);
130
+ case 1:
131
+ expect(_react.screen.getByRole('option', {
132
+ name: 'en-US'
133
+ })).toBeInTheDocument();
134
+ expect(_react.screen.getByRole('option', {
135
+ name: 'es-ES'
136
+ })).toBeInTheDocument();
137
+ expect(_react.screen.getByRole('option', {
138
+ name: 'fr-FR'
139
+ })).toBeInTheDocument();
140
+ case 2:
141
+ case "end":
142
+ return _context3.stop();
143
+ }
144
+ }, _callee3);
145
+ })));
146
+ it('does not call onChange if no onChange prop provided', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
147
+ var user, _render, container, select;
148
+ return _regenerator["default"].wrap(function (_context4) {
149
+ while (1) switch (_context4.prev = _context4.next) {
150
+ case 0:
151
+ user = _userEvent["default"].setup();
152
+ _render = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.Langs, {
153
+ uid: "1",
154
+ langs: ['en-US', 'es-ES'],
155
+ selected: "en-US"
156
+ })), container = _render.container;
157
+ select = _react.screen.getByRole('combobox');
158
+ _context4.next = 1;
159
+ return user.click(select);
160
+ case 1:
161
+ _context4.next = 2;
162
+ return user.click(_react.screen.getByRole('option', {
163
+ name: 'es-ES'
164
+ }));
165
+ case 2:
166
+ // Should not throw any error
167
+ expect(select).toBeInTheDocument();
168
+ case 3:
169
+ case "end":
170
+ return _context4.stop();
171
+ }
172
+ }, _callee4);
173
+ })));
174
+ });
175
+ describe('props handling', function () {
176
+ it('accepts custom uid', function () {
177
+ var customUid = 'custom-uid-123';
178
+ var _renderComponent3 = renderComponent({
179
+ uid: customUid
180
+ }),
181
+ container = _renderComponent3.container;
182
+ var input = container.querySelector("#".concat(customUid));
183
+ expect(input).toBeInTheDocument();
184
+ });
185
+ it('generates random uid if not provided', function () {
186
+ var _render2 = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.Langs, {
187
+ onChange: onChange,
188
+ langs: ['en-US', 'es-ES'],
189
+ selected: "en-US"
190
+ })),
191
+ container = _render2.container;
192
+ var select = _react.screen.getByRole('combobox');
193
+ expect(select).toBeInTheDocument();
194
+ });
195
+ it('handles empty label', function () {
196
+ renderComponent({
197
+ label: ''
198
+ });
199
+ var select = _react.screen.getByRole('combobox');
200
+ expect(select).toBeInTheDocument();
201
+ });
202
+ it('handles very long label', function () {
203
+ var longLabel = 'Choose the language you would like to use for editing this content';
204
+ renderComponent({
205
+ label: longLabel
206
+ });
207
+ expect(_react.screen.getByText(longLabel)).toBeInTheDocument();
208
+ });
209
+ });
210
+ describe('value updates', function () {
211
+ it('updates selected value when prop changes', function () {
212
+ var _renderComponent4 = renderComponent({
213
+ selected: 'en-US'
214
+ }),
215
+ rerender = _renderComponent4.rerender;
216
+ var select = _react.screen.getByRole('combobox');
217
+ expect(select).toHaveTextContent('en-US');
218
+ rerender(/*#__PURE__*/_react2["default"].createElement(_langs.Langs, {
219
+ uid: "1",
220
+ onChange: onChange,
221
+ langs: ['en-US', 'es-ES'],
222
+ selected: "es-ES"
223
+ }));
224
+ select = _react.screen.getByRole('combobox');
225
+ expect(select).toHaveTextContent('es-ES');
226
+ });
227
+ it('maintains state when language options change', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
228
+ var user, _renderComponent5, rerender, select;
229
+ return _regenerator["default"].wrap(function (_context5) {
230
+ while (1) switch (_context5.prev = _context5.next) {
231
+ case 0:
232
+ user = _userEvent["default"].setup();
233
+ _renderComponent5 = renderComponent({
234
+ langs: ['en-US', 'es-ES'],
235
+ selected: 'en-US'
236
+ }), rerender = _renderComponent5.rerender;
237
+ rerender(/*#__PURE__*/_react2["default"].createElement(_langs.Langs, {
238
+ uid: "1",
239
+ onChange: onChange,
240
+ langs: ['en-US', 'es-ES', 'fr-FR'],
241
+ selected: "en-US"
242
+ }));
243
+ select = _react.screen.getByRole('combobox');
244
+ expect(select).toHaveTextContent('en-US');
245
+ case 1:
246
+ case "end":
247
+ return _context5.stop();
248
+ }
249
+ }, _callee5);
250
+ })));
251
+ });
252
+ describe('keyboard navigation', function () {
253
+ it('opens dropdown with keyboard', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
254
+ var user, select;
255
+ return _regenerator["default"].wrap(function (_context6) {
256
+ while (1) switch (_context6.prev = _context6.next) {
257
+ case 0:
258
+ user = _userEvent["default"].setup();
259
+ renderComponent({
260
+ langs: ['en-US', 'es-ES']
261
+ });
262
+ select = _react.screen.getByRole('combobox');
263
+ select.focus();
264
+ _context6.next = 1;
265
+ return user.keyboard(' ');
266
+ case 1:
267
+ expect(_react.screen.getByRole('option', {
268
+ name: 'en-US'
269
+ })).toBeInTheDocument();
270
+ case 2:
271
+ case "end":
272
+ return _context6.stop();
273
+ }
274
+ }, _callee6);
275
+ })));
276
+ });
277
+ describe('accessibility', function () {
278
+ it('has proper label association', function () {
279
+ renderComponent({
280
+ label: 'Select Language'
281
+ });
282
+ var select = _react.screen.getByRole('combobox');
283
+ expect(select).toBeInTheDocument();
284
+ });
285
+ it('renders options with proper roles', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
286
+ var user, select, options;
287
+ return _regenerator["default"].wrap(function (_context7) {
288
+ while (1) switch (_context7.prev = _context7.next) {
289
+ case 0:
290
+ user = _userEvent["default"].setup();
291
+ renderComponent({
292
+ langs: ['en-US', 'es-ES', 'fr-FR']
293
+ });
294
+ select = _react.screen.getByRole('combobox');
295
+ _context7.next = 1;
296
+ return user.click(select);
297
+ case 1:
298
+ options = _react.screen.getAllByRole('option');
299
+ expect(options.length).toBe(3);
300
+ case 2:
301
+ case "end":
302
+ return _context7.stop();
303
+ }
304
+ }, _callee7);
305
+ })));
306
+ });
307
+ });
308
+ describe('LanguageControls Component', function () {
309
+ var defaultProps = {
310
+ langs: ['en-US', 'es-ES', 'fr-FR'],
311
+ activeLang: 'en-US',
312
+ defaultLang: 'en-US',
313
+ onActiveLangChange: jest.fn(),
314
+ onDefaultLangChange: jest.fn()
315
+ };
316
+ beforeEach(function () {
317
+ jest.clearAllMocks();
318
+ });
319
+ describe('rendering', function () {
320
+ it('renders both language selectors', function () {
321
+ (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, defaultProps));
322
+ expect(_react.screen.getByText('Choose language to edit')).toBeInTheDocument();
323
+ expect(_react.screen.getByText('Default language')).toBeInTheDocument();
324
+ });
325
+ it('renders with correct initial values', function () {
326
+ (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, defaultProps));
327
+ var selects = _react.screen.getAllByRole('combobox');
328
+ expect(selects).toHaveLength(2);
329
+ });
330
+ it('applies custom className', function () {
331
+ var _render3 = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
332
+ className: "custom-class"
333
+ }))),
334
+ container = _render3.container;
335
+ expect(container.querySelector('.custom-class')).toBeInTheDocument();
336
+ });
337
+ });
338
+ describe('user interactions', function () {
339
+ it('calls onActiveLangChange when active language is changed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() {
340
+ var user, onActiveLangChange, selects, activeSelect;
341
+ return _regenerator["default"].wrap(function (_context8) {
342
+ while (1) switch (_context8.prev = _context8.next) {
343
+ case 0:
344
+ user = _userEvent["default"].setup();
345
+ onActiveLangChange = jest.fn();
346
+ (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
347
+ activeLang: "en-US",
348
+ onActiveLangChange: onActiveLangChange
349
+ })));
350
+ selects = _react.screen.getAllByRole('combobox');
351
+ activeSelect = selects[0];
352
+ _context8.next = 1;
353
+ return user.click(activeSelect);
354
+ case 1:
355
+ _context8.next = 2;
356
+ return user.click(_react.screen.getByRole('option', {
357
+ name: 'es-ES'
358
+ }));
359
+ case 2:
360
+ expect(onActiveLangChange).toHaveBeenCalledWith('es-ES');
361
+ case 3:
362
+ case "end":
363
+ return _context8.stop();
364
+ }
365
+ }, _callee8);
366
+ })));
367
+ it('calls onDefaultLangChange when default language is changed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() {
368
+ var user, onDefaultLangChange, selects, defaultSelect;
369
+ return _regenerator["default"].wrap(function (_context9) {
370
+ while (1) switch (_context9.prev = _context9.next) {
371
+ case 0:
372
+ user = _userEvent["default"].setup();
373
+ onDefaultLangChange = jest.fn();
374
+ (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
375
+ defaultLang: "en-US",
376
+ onDefaultLangChange: onDefaultLangChange
377
+ })));
378
+ selects = _react.screen.getAllByRole('combobox');
379
+ defaultSelect = selects[1];
380
+ _context9.next = 1;
381
+ return user.click(defaultSelect);
382
+ case 1:
383
+ _context9.next = 2;
384
+ return user.click(_react.screen.getByRole('option', {
385
+ name: 'fr-FR'
386
+ }));
387
+ case 2:
388
+ expect(onDefaultLangChange).toHaveBeenCalledWith('fr-FR');
389
+ case 3:
390
+ case "end":
391
+ return _context9.stop();
392
+ }
393
+ }, _callee9);
394
+ })));
395
+ it('handles independent language changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() {
396
+ var user, onActiveLangChange, onDefaultLangChange, selects;
397
+ return _regenerator["default"].wrap(function (_context0) {
398
+ while (1) switch (_context0.prev = _context0.next) {
399
+ case 0:
400
+ user = _userEvent["default"].setup();
401
+ onActiveLangChange = jest.fn();
402
+ onDefaultLangChange = jest.fn();
403
+ (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
404
+ activeLang: "en-US",
405
+ defaultLang: "en-US",
406
+ onActiveLangChange: onActiveLangChange,
407
+ onDefaultLangChange: onDefaultLangChange
408
+ })));
409
+ selects = _react.screen.getAllByRole('combobox'); // Change active language
410
+ _context0.next = 1;
411
+ return user.click(selects[0]);
412
+ case 1:
413
+ _context0.next = 2;
414
+ return user.click(_react.screen.getByRole('option', {
415
+ name: 'es-ES'
416
+ }));
417
+ case 2:
418
+ expect(onActiveLangChange).toHaveBeenCalledWith('es-ES');
419
+ expect(onDefaultLangChange).not.toHaveBeenCalled();
420
+ case 3:
421
+ case "end":
422
+ return _context0.stop();
423
+ }
424
+ }, _callee0);
425
+ })));
426
+ });
427
+ describe('props handling', function () {
428
+ it('displays correct language options', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() {
429
+ var user, selects;
430
+ return _regenerator["default"].wrap(function (_context1) {
431
+ while (1) switch (_context1.prev = _context1.next) {
432
+ case 0:
433
+ user = _userEvent["default"].setup();
434
+ (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
435
+ langs: ['en-US', 'es-ES', 'fr-FR', 'de-DE']
436
+ })));
437
+ selects = _react.screen.getAllByRole('combobox');
438
+ _context1.next = 1;
439
+ return user.click(selects[0]);
440
+ case 1:
441
+ expect(_react.screen.getByRole('option', {
442
+ name: 'en-US'
443
+ })).toBeInTheDocument();
444
+ expect(_react.screen.getByRole('option', {
445
+ name: 'es-ES'
446
+ })).toBeInTheDocument();
447
+ expect(_react.screen.getByRole('option', {
448
+ name: 'fr-FR'
449
+ })).toBeInTheDocument();
450
+ expect(_react.screen.getByRole('option', {
451
+ name: 'de-DE'
452
+ })).toBeInTheDocument();
453
+ case 2:
454
+ case "end":
455
+ return _context1.stop();
456
+ }
457
+ }, _callee1);
458
+ })));
459
+ it('maintains different active and default languages', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10() {
460
+ var user, selects;
461
+ return _regenerator["default"].wrap(function (_context10) {
462
+ while (1) switch (_context10.prev = _context10.next) {
463
+ case 0:
464
+ user = _userEvent["default"].setup();
465
+ (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
466
+ activeLang: "es-ES",
467
+ defaultLang: "en-US"
468
+ })));
469
+ selects = _react.screen.getAllByRole('combobox');
470
+ expect(selects[0]).toHaveTextContent('es-ES');
471
+ expect(selects[1]).toHaveTextContent('en-US');
472
+ case 1:
473
+ case "end":
474
+ return _context10.stop();
475
+ }
476
+ }, _callee10);
477
+ })));
478
+ });
479
+ describe('updates', function () {
480
+ it('updates when activeLang prop changes', function () {
481
+ var _render4 = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
482
+ activeLang: "en-US"
483
+ }))),
484
+ rerender = _render4.rerender;
485
+ var selects = _react.screen.getAllByRole('combobox');
486
+ expect(selects[0]).toHaveTextContent('en-US');
487
+ rerender(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
488
+ activeLang: "es-ES"
489
+ })));
490
+ selects = _react.screen.getAllByRole('combobox');
491
+ expect(selects[0]).toHaveTextContent('es-ES');
492
+ });
493
+ it('updates when defaultLang prop changes', function () {
494
+ var _render5 = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
495
+ defaultLang: "en-US"
496
+ }))),
497
+ rerender = _render5.rerender;
498
+ var selects = _react.screen.getAllByRole('combobox');
499
+ expect(selects[1]).toHaveTextContent('en-US');
500
+ rerender(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
501
+ defaultLang: "fr-FR"
502
+ })));
503
+ selects = _react.screen.getAllByRole('combobox');
504
+ expect(selects[1]).toHaveTextContent('fr-FR');
505
+ });
506
+ it('updates when langs prop changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() {
507
+ var user, _render6, rerender, selects;
508
+ return _regenerator["default"].wrap(function (_context11) {
509
+ while (1) switch (_context11.prev = _context11.next) {
510
+ case 0:
511
+ user = _userEvent["default"].setup();
512
+ _render6 = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
513
+ langs: ['en-US', 'es-ES']
514
+ }))), rerender = _render6.rerender;
515
+ rerender(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, (0, _extends2["default"])({}, defaultProps, {
516
+ langs: ['en-US', 'es-ES', 'fr-FR']
517
+ })));
518
+ selects = _react.screen.getAllByRole('combobox');
519
+ _context11.next = 1;
520
+ return user.click(selects[0]);
521
+ case 1:
522
+ expect(_react.screen.getByRole('option', {
523
+ name: 'fr-FR'
524
+ })).toBeInTheDocument();
525
+ case 2:
526
+ case "end":
527
+ return _context11.stop();
528
+ }
529
+ }, _callee11);
530
+ })));
531
+ });
532
+ describe('accessibility', function () {
533
+ it('has proper semantic structure', function () {
534
+ var _render7 = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_langs.LanguageControls, defaultProps)),
535
+ container = _render7.container;
536
+ var selects = _react.screen.getAllByRole('combobox');
537
+ expect(selects.length).toBe(2);
538
+ });
539
+ });
540
+ });
541
+ //# sourceMappingURL=langs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langs.test.js","names":["_react","require","_userEvent","_interopRequireDefault","_react2","_langs","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","describe","onChange","renderComponent","extras","undefined","defaults","uid","langs","selected","props","render","createElement","Langs","beforeEach","jest","fn","it","select","screen","getByRole","expect","toBeInTheDocument","toHaveTextContent","label","getByText","_renderComponent","container","_renderComponent2","querySelector","_asyncToGenerator2","_regenerator","mark","_callee","user","wrap","_context","prev","next","userEvent","setup","click","name","toHaveBeenCalledWith","stop","_callee2","_context2","_callee3","_context3","_callee4","_render","_context4","customUid","_renderComponent3","input","concat","_render2","longLabel","_renderComponent4","rerender","_callee5","_renderComponent5","_context5","_callee6","_context6","focus","keyboard","_callee7","options","_context7","getAllByRole","toBe","defaultProps","activeLang","defaultLang","onActiveLangChange","onDefaultLangChange","clearAllMocks","LanguageControls","selects","toHaveLength","_render3","_extends2","className","_callee8","activeSelect","_context8","_callee9","defaultSelect","_context9","_callee0","_context0","not","toHaveBeenCalled","_callee1","_context1","_callee10","_context10","_render4","_render5","_callee11","_render6","_context11","_render7"],"sources":["../../src/__tests__/langs.test.jsx"],"sourcesContent":["import { render, screen } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport React from 'react';\nimport { Langs, LanguageControls } from '../langs';\n\ndescribe('Langs Component', () => {\n let onChange;\n const renderComponent = (extras = {}) => {\n const defaults = {\n uid: '1',\n onChange,\n langs: ['en-US', 'es-ES'],\n selected: 'en-US',\n };\n const props = { ...defaults, ...extras };\n return render(<Langs {...props} />);\n };\n\n beforeEach(() => {\n onChange = jest.fn();\n });\n\n describe('rendering', () => {\n it('renders language selector with options', () => {\n renderComponent();\n\n // Select should be present\n const select = screen.getByRole('combobox');\n expect(select).toBeInTheDocument();\n\n // Should show selected value - MUI Select displays value as text content\n expect(select).toHaveTextContent('en-US');\n });\n\n it('renders with custom label', () => {\n renderComponent({ label: 'Choose Language' });\n expect(screen.getByText('Choose Language')).toBeInTheDocument();\n });\n\n it('renders all language options', () => {\n const { container } = renderComponent({\n langs: ['en-US', 'es-ES', 'fr-FR', 'de-DE'],\n });\n\n const select = screen.getByRole('combobox');\n expect(select).toBeInTheDocument();\n });\n\n it('renders with multiple languages', () => {\n const langs = ['en-US', 'es-ES', 'fr-FR', 'pt-BR'];\n renderComponent({ langs });\n\n const select = screen.getByRole('combobox');\n expect(select).toHaveTextContent('en-US');\n });\n\n it('renders FormControl with proper structure', () => {\n const { container } = renderComponent();\n\n expect(container.querySelector('[class*=\"MuiFormControl\"]')).toBeInTheDocument();\n });\n });\n\n describe('user interactions', () => {\n it('calls onChange when user selects a language', async () => {\n const user = userEvent.setup();\n renderComponent();\n\n const select = screen.getByRole('combobox');\n\n // Open the select and choose es-ES\n await user.click(select);\n await user.click(screen.getByRole('option', { name: 'es-ES' }));\n\n expect(onChange).toHaveBeenCalledWith('es-ES');\n });\n\n it('calls onChange with correct value', async () => {\n const user = userEvent.setup();\n renderComponent({ selected: 'es-ES' });\n\n const select = screen.getByRole('combobox');\n\n await user.click(select);\n await user.click(screen.getByRole('option', { name: 'en-US' }));\n\n expect(onChange).toHaveBeenCalledWith('en-US');\n });\n\n it('opens dropdown on click', async () => {\n const user = userEvent.setup();\n renderComponent({\n langs: ['en-US', 'es-ES', 'fr-FR'],\n });\n\n const select = screen.getByRole('combobox');\n await user.click(select);\n\n expect(screen.getByRole('option', { name: 'en-US' })).toBeInTheDocument();\n expect(screen.getByRole('option', { name: 'es-ES' })).toBeInTheDocument();\n expect(screen.getByRole('option', { name: 'fr-FR' })).toBeInTheDocument();\n });\n\n it('does not call onChange if no onChange prop provided', async () => {\n const user = userEvent.setup();\n const { container } = render(<Langs uid=\"1\" langs={['en-US', 'es-ES']} selected=\"en-US\" />);\n\n const select = screen.getByRole('combobox');\n await user.click(select);\n await user.click(screen.getByRole('option', { name: 'es-ES' }));\n\n // Should not throw any error\n expect(select).toBeInTheDocument();\n });\n });\n\n describe('props handling', () => {\n it('accepts custom uid', () => {\n const customUid = 'custom-uid-123';\n const { container } = renderComponent({ uid: customUid });\n\n const input = container.querySelector(`#${customUid}`);\n expect(input).toBeInTheDocument();\n });\n\n it('generates random uid if not provided', () => {\n const { container } = render(<Langs onChange={onChange} langs={['en-US', 'es-ES']} selected=\"en-US\" />);\n\n const select = screen.getByRole('combobox');\n expect(select).toBeInTheDocument();\n });\n\n it('handles empty label', () => {\n renderComponent({ label: '' });\n\n const select = screen.getByRole('combobox');\n expect(select).toBeInTheDocument();\n });\n\n it('handles very long label', () => {\n const longLabel = 'Choose the language you would like to use for editing this content';\n renderComponent({ label: longLabel });\n\n expect(screen.getByText(longLabel)).toBeInTheDocument();\n });\n });\n\n describe('value updates', () => {\n it('updates selected value when prop changes', () => {\n const { rerender } = renderComponent({ selected: 'en-US' });\n\n let select = screen.getByRole('combobox');\n expect(select).toHaveTextContent('en-US');\n\n rerender(<Langs uid=\"1\" onChange={onChange} langs={['en-US', 'es-ES']} selected=\"es-ES\" />);\n\n select = screen.getByRole('combobox');\n expect(select).toHaveTextContent('es-ES');\n });\n\n it('maintains state when language options change', async () => {\n const user = userEvent.setup();\n const { rerender } = renderComponent({\n langs: ['en-US', 'es-ES'],\n selected: 'en-US',\n });\n\n rerender(<Langs uid=\"1\" onChange={onChange} langs={['en-US', 'es-ES', 'fr-FR']} selected=\"en-US\" />);\n\n const select = screen.getByRole('combobox');\n expect(select).toHaveTextContent('en-US');\n });\n });\n\n describe('keyboard navigation', () => {\n it('opens dropdown with keyboard', async () => {\n const user = userEvent.setup();\n renderComponent({\n langs: ['en-US', 'es-ES'],\n });\n\n const select = screen.getByRole('combobox');\n select.focus();\n\n await user.keyboard(' ');\n\n expect(screen.getByRole('option', { name: 'en-US' })).toBeInTheDocument();\n });\n });\n\n describe('accessibility', () => {\n it('has proper label association', () => {\n renderComponent({ label: 'Select Language' });\n\n const select = screen.getByRole('combobox');\n expect(select).toBeInTheDocument();\n });\n\n it('renders options with proper roles', async () => {\n const user = userEvent.setup();\n renderComponent({\n langs: ['en-US', 'es-ES', 'fr-FR'],\n });\n\n const select = screen.getByRole('combobox');\n await user.click(select);\n\n const options = screen.getAllByRole('option');\n expect(options.length).toBe(3);\n });\n });\n});\n\ndescribe('LanguageControls Component', () => {\n const defaultProps = {\n langs: ['en-US', 'es-ES', 'fr-FR'],\n activeLang: 'en-US',\n defaultLang: 'en-US',\n onActiveLangChange: jest.fn(),\n onDefaultLangChange: jest.fn(),\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n describe('rendering', () => {\n it('renders both language selectors', () => {\n render(<LanguageControls {...defaultProps} />);\n\n expect(screen.getByText('Choose language to edit')).toBeInTheDocument();\n expect(screen.getByText('Default language')).toBeInTheDocument();\n });\n\n it('renders with correct initial values', () => {\n render(<LanguageControls {...defaultProps} />);\n\n const selects = screen.getAllByRole('combobox');\n expect(selects).toHaveLength(2);\n });\n\n it('applies custom className', () => {\n const { container } = render(<LanguageControls {...defaultProps} className=\"custom-class\" />);\n\n expect(container.querySelector('.custom-class')).toBeInTheDocument();\n });\n });\n\n describe('user interactions', () => {\n it('calls onActiveLangChange when active language is changed', async () => {\n const user = userEvent.setup();\n const onActiveLangChange = jest.fn();\n\n render(<LanguageControls {...defaultProps} activeLang=\"en-US\" onActiveLangChange={onActiveLangChange} />);\n\n const selects = screen.getAllByRole('combobox');\n const activeSelect = selects[0];\n\n await user.click(activeSelect);\n await user.click(screen.getByRole('option', { name: 'es-ES' }));\n\n expect(onActiveLangChange).toHaveBeenCalledWith('es-ES');\n });\n\n it('calls onDefaultLangChange when default language is changed', async () => {\n const user = userEvent.setup();\n const onDefaultLangChange = jest.fn();\n\n render(<LanguageControls {...defaultProps} defaultLang=\"en-US\" onDefaultLangChange={onDefaultLangChange} />);\n\n const selects = screen.getAllByRole('combobox');\n const defaultSelect = selects[1];\n\n await user.click(defaultSelect);\n await user.click(screen.getByRole('option', { name: 'fr-FR' }));\n\n expect(onDefaultLangChange).toHaveBeenCalledWith('fr-FR');\n });\n\n it('handles independent language changes', async () => {\n const user = userEvent.setup();\n const onActiveLangChange = jest.fn();\n const onDefaultLangChange = jest.fn();\n\n render(\n <LanguageControls\n {...defaultProps}\n activeLang=\"en-US\"\n defaultLang=\"en-US\"\n onActiveLangChange={onActiveLangChange}\n onDefaultLangChange={onDefaultLangChange}\n />,\n );\n\n const selects = screen.getAllByRole('combobox');\n\n // Change active language\n await user.click(selects[0]);\n await user.click(screen.getByRole('option', { name: 'es-ES' }));\n\n expect(onActiveLangChange).toHaveBeenCalledWith('es-ES');\n expect(onDefaultLangChange).not.toHaveBeenCalled();\n });\n });\n\n describe('props handling', () => {\n it('displays correct language options', async () => {\n const user = userEvent.setup();\n render(<LanguageControls {...defaultProps} langs={['en-US', 'es-ES', 'fr-FR', 'de-DE']} />);\n\n const selects = screen.getAllByRole('combobox');\n await user.click(selects[0]);\n\n expect(screen.getByRole('option', { name: 'en-US' })).toBeInTheDocument();\n expect(screen.getByRole('option', { name: 'es-ES' })).toBeInTheDocument();\n expect(screen.getByRole('option', { name: 'fr-FR' })).toBeInTheDocument();\n expect(screen.getByRole('option', { name: 'de-DE' })).toBeInTheDocument();\n });\n\n it('maintains different active and default languages', async () => {\n const user = userEvent.setup();\n render(<LanguageControls {...defaultProps} activeLang=\"es-ES\" defaultLang=\"en-US\" />);\n\n const selects = screen.getAllByRole('combobox');\n expect(selects[0]).toHaveTextContent('es-ES');\n expect(selects[1]).toHaveTextContent('en-US');\n });\n });\n\n describe('updates', () => {\n it('updates when activeLang prop changes', () => {\n const { rerender } = render(<LanguageControls {...defaultProps} activeLang=\"en-US\" />);\n\n let selects = screen.getAllByRole('combobox');\n expect(selects[0]).toHaveTextContent('en-US');\n\n rerender(<LanguageControls {...defaultProps} activeLang=\"es-ES\" />);\n\n selects = screen.getAllByRole('combobox');\n expect(selects[0]).toHaveTextContent('es-ES');\n });\n\n it('updates when defaultLang prop changes', () => {\n const { rerender } = render(<LanguageControls {...defaultProps} defaultLang=\"en-US\" />);\n\n let selects = screen.getAllByRole('combobox');\n expect(selects[1]).toHaveTextContent('en-US');\n\n rerender(<LanguageControls {...defaultProps} defaultLang=\"fr-FR\" />);\n\n selects = screen.getAllByRole('combobox');\n expect(selects[1]).toHaveTextContent('fr-FR');\n });\n\n it('updates when langs prop changes', async () => {\n const user = userEvent.setup();\n const { rerender } = render(<LanguageControls {...defaultProps} langs={['en-US', 'es-ES']} />);\n\n rerender(<LanguageControls {...defaultProps} langs={['en-US', 'es-ES', 'fr-FR']} />);\n\n const selects = screen.getAllByRole('combobox');\n await user.click(selects[0]);\n\n expect(screen.getByRole('option', { name: 'fr-FR' })).toBeInTheDocument();\n });\n });\n\n describe('accessibility', () => {\n it('has proper semantic structure', () => {\n const { container } = render(<LanguageControls {...defaultProps} />);\n\n const selects = screen.getAllByRole('combobox');\n expect(selects.length).toBe(2);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}