@dxc-technology/halstack-react 0.0.0-301f60b → 0.0.0-335f028

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 (97) hide show
  1. package/HalstackContext.d.ts +10 -0
  2. package/{ThemeContext.js → HalstackContext.js} +6 -6
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +11 -11
  6. package/accordion/Accordion.test.js +19 -4
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +13 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +24 -6
  12. package/accordion-group/types.d.ts +4 -0
  13. package/bleed/types.d.ts +24 -0
  14. package/button/Button.js +14 -11
  15. package/card/Card.js +27 -28
  16. package/checkbox/Checkbox.d.ts +1 -1
  17. package/checkbox/Checkbox.js +40 -39
  18. package/checkbox/Checkbox.stories.tsx +124 -128
  19. package/checkbox/Checkbox.test.js +13 -0
  20. package/checkbox/types.d.ts +7 -3
  21. package/common/variables.js +6 -7
  22. package/date-input/DateInput.js +50 -39
  23. package/date-input/DateInput.stories.tsx +7 -7
  24. package/date-input/DateInput.test.js +69 -59
  25. package/date-input/types.d.ts +16 -9
  26. package/dialog/Dialog.js +4 -32
  27. package/dropdown/Dropdown.js +13 -17
  28. package/footer/Footer.js +10 -85
  29. package/header/Header.js +20 -44
  30. package/header/Header.stories.tsx +46 -36
  31. package/header/Header.test.js +18 -2
  32. package/inset/types.d.ts +24 -0
  33. package/layout/ApplicationLayout.js +5 -18
  34. package/link/Link.d.ts +3 -2
  35. package/link/Link.js +65 -56
  36. package/link/Link.stories.tsx +87 -52
  37. package/link/Link.test.js +7 -15
  38. package/link/types.d.ts +8 -23
  39. package/main.d.ts +3 -2
  40. package/main.js +13 -5
  41. package/number-input/NumberInput.js +11 -18
  42. package/number-input/NumberInput.stories.tsx +5 -5
  43. package/number-input/NumberInput.test.js +2 -4
  44. package/number-input/types.d.ts +16 -9
  45. package/package.json +6 -5
  46. package/password-input/PasswordInput.test.js +2 -4
  47. package/password-input/types.d.ts +13 -10
  48. package/quick-nav/QuickNav.d.ts +4 -0
  49. package/quick-nav/QuickNav.js +64 -0
  50. package/quick-nav/QuickNav.stories.tsx +237 -0
  51. package/quick-nav/types.d.ts +21 -0
  52. package/quick-nav/types.js +5 -0
  53. package/radio/Radio.js +10 -11
  54. package/row/types.d.ts +18 -0
  55. package/select/Listbox.d.ts +4 -0
  56. package/select/Listbox.js +148 -0
  57. package/select/Option.js +1 -1
  58. package/select/Select.js +71 -156
  59. package/select/Select.stories.tsx +19 -19
  60. package/select/Select.test.js +405 -248
  61. package/select/types.d.ts +42 -12
  62. package/slider/Slider.d.ts +1 -1
  63. package/slider/Slider.js +2 -1
  64. package/slider/Slider.stories.tsx +8 -8
  65. package/slider/Slider.test.js +31 -10
  66. package/slider/types.d.ts +4 -0
  67. package/stack/types.d.ts +15 -0
  68. package/switch/Switch.d.ts +1 -1
  69. package/switch/Switch.js +32 -19
  70. package/switch/Switch.stories.tsx +14 -14
  71. package/switch/Switch.test.js +25 -0
  72. package/switch/types.d.ts +6 -2
  73. package/tabs/Tabs.d.ts +1 -1
  74. package/tabs/Tabs.js +9 -11
  75. package/tabs/Tabs.stories.tsx +0 -8
  76. package/tabs/Tabs.test.js +26 -9
  77. package/tabs/types.d.ts +4 -0
  78. package/tag/Tag.js +14 -19
  79. package/tag/Tag.stories.tsx +12 -8
  80. package/text-input/TextInput.js +2 -4
  81. package/text-input/TextInput.test.js +21 -34
  82. package/text-input/types.d.ts +13 -10
  83. package/textarea/Textarea.js +2 -4
  84. package/textarea/Textarea.test.js +10 -20
  85. package/textarea/types.d.ts +13 -10
  86. package/toggle-group/ToggleGroup.d.ts +1 -1
  87. package/toggle-group/ToggleGroup.js +5 -4
  88. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  89. package/toggle-group/ToggleGroup.test.js +35 -4
  90. package/toggle-group/types.d.ts +8 -0
  91. package/useTheme.js +2 -2
  92. package/wizard/Wizard.d.ts +1 -1
  93. package/wizard/Wizard.js +28 -19
  94. package/wizard/Wizard.stories.tsx +13 -23
  95. package/wizard/Wizard.test.js +36 -23
  96. package/wizard/types.d.ts +6 -2
  97. package/ThemeContext.d.ts +0 -10
@@ -317,8 +317,92 @@ describe("Select component tests", function () {
317
317
  expect(select.getAttribute("aria-invalid")).toBe("true");
318
318
  expect(errorMessage.getAttribute("aria-live")).toBe("assertive");
319
319
  });
320
- test("Disabled select - Clear all options action must be shown but not clickable", function () {
320
+ test("Renders with correct aria attributes", function () {
321
321
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
322
+ label: "test-select-label",
323
+ placeholder: "Example",
324
+ options: single_options
325
+ })),
326
+ getByText = _render5.getByText,
327
+ getByRole = _render5.getByRole;
328
+
329
+ var select = getByRole("combobox");
330
+ var label = getByText("test-select-label");
331
+ expect(select.getAttribute("aria-disabled")).toBe("false");
332
+ expect(select.getAttribute("aria-haspopup")).toBe("listbox");
333
+ expect(select.getAttribute("aria-expanded")).toBe("false");
334
+ expect(select.getAttribute("aria-required")).toBe("true");
335
+ expect(select.getAttribute("aria-labelledby")).toBe(label.id);
336
+ expect(select.getAttribute("aria-activedescendant")).toBeNull();
337
+ expect(select.getAttribute("aria-invalid")).toBe("false");
338
+
339
+ _userEvent["default"].click(select);
340
+
341
+ var list = getByRole("listbox");
342
+ expect(select.getAttribute("aria-controls")).toBe(list.id);
343
+ expect(list.getAttribute("aria-multiselectable")).toBe("false");
344
+ });
345
+ test("Single selection: Renders with correct default value", function () {
346
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
347
+ label: "test-select-label",
348
+ name: "test",
349
+ defaultValue: "4",
350
+ options: single_options
351
+ })),
352
+ getByText = _render6.getByText,
353
+ getByRole = _render6.getByRole,
354
+ getAllByRole = _render6.getAllByRole,
355
+ queryByRole = _render6.queryByRole,
356
+ container = _render6.container;
357
+
358
+ var select = getByRole("combobox");
359
+ var submitInput = container.querySelector("input[name=\"test\"]");
360
+ expect(queryByRole("listbox")).toBeFalsy();
361
+ expect(getByText("Option 04")).toBeTruthy();
362
+ expect(submitInput.value).toBe("4");
363
+
364
+ _userEvent["default"].click(select);
365
+
366
+ expect(getAllByRole("option")[3].getAttribute("aria-selected")).toBe("true");
367
+
368
+ _userEvent["default"].click(getAllByRole("option")[7]);
369
+
370
+ expect(getByText("Option 08")).toBeTruthy();
371
+ expect(submitInput.value).toBe("8");
372
+ });
373
+ test("Multiple selection: Renders with correct default value", function () {
374
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
375
+ label: "test-select-label",
376
+ name: "test",
377
+ defaultValue: ["4", "2", "6"],
378
+ options: single_options,
379
+ multiple: true
380
+ })),
381
+ getByText = _render7.getByText,
382
+ getByRole = _render7.getByRole,
383
+ getAllByRole = _render7.getAllByRole,
384
+ queryByRole = _render7.queryByRole,
385
+ container = _render7.container;
386
+
387
+ var select = getByRole("combobox");
388
+ var submitInput = container.querySelector("input[name=\"test\"]");
389
+ expect(queryByRole("listbox")).toBeFalsy();
390
+ expect(getByText("Option 02, Option 04, Option 06")).toBeTruthy();
391
+ expect(submitInput.value).toBe("4,2,6");
392
+
393
+ _userEvent["default"].click(select);
394
+
395
+ expect(getAllByRole("option")[3].getAttribute("aria-selected")).toBe("true");
396
+ expect(getAllByRole("option")[1].getAttribute("aria-selected")).toBe("true");
397
+ expect(getAllByRole("option")[5].getAttribute("aria-selected")).toBe("true");
398
+
399
+ _userEvent["default"].click(getAllByRole("option")[2]);
400
+
401
+ expect(getByText("Option 02, Option 03, Option 04, Option 06")).toBeTruthy();
402
+ expect(submitInput.value).toBe("4,2,6,3");
403
+ });
404
+ test("Disabled select - Clear all options action must be shown but not clickable", function () {
405
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
322
406
  label: "test-select-label",
323
407
  value: ["1", "2"],
324
408
  options: single_options,
@@ -326,9 +410,9 @@ describe("Select component tests", function () {
326
410
  searchable: true,
327
411
  multiple: true
328
412
  })),
329
- getByRole = _render5.getByRole,
330
- getByText = _render5.getByText,
331
- queryByRole = _render5.queryByRole;
413
+ getByRole = _render8.getByRole,
414
+ getByText = _render8.getByText,
415
+ queryByRole = _render8.queryByRole;
332
416
 
333
417
  var select = getByRole("combobox");
334
418
  expect(select.getAttribute("aria-disabled")).toBe("true");
@@ -342,7 +426,7 @@ describe("Select component tests", function () {
342
426
  expect(getByText("Option 01, Option 02")).toBeTruthy();
343
427
  });
344
428
  test("Focused select does not open the listbox", function () {
345
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
429
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
346
430
  label: "test-select-label",
347
431
  value: ["1", "2"],
348
432
  options: single_options,
@@ -350,8 +434,8 @@ describe("Select component tests", function () {
350
434
  searchable: true,
351
435
  multiple: true
352
436
  })),
353
- getByRole = _render6.getByRole,
354
- queryByRole = _render6.queryByRole;
437
+ getByRole = _render9.getByRole,
438
+ queryByRole = _render9.queryByRole;
355
439
 
356
440
  var select = getByRole("combobox");
357
441
 
@@ -363,14 +447,14 @@ describe("Select component tests", function () {
363
447
  var onChange = jest.fn();
364
448
  var onBlur = jest.fn();
365
449
 
366
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
450
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
367
451
  label: "test-select-label",
368
452
  options: single_options,
369
453
  onChange: onChange,
370
454
  onBlur: onBlur
371
455
  })),
372
- getByRole = _render7.getByRole,
373
- getAllByRole = _render7.getAllByRole;
456
+ getByRole = _render10.getByRole,
457
+ getAllByRole = _render10.getAllByRole;
374
458
 
375
459
  var select = getByRole("combobox");
376
460
  expect(select.getAttribute("aria-required")).toBe("true");
@@ -391,8 +475,7 @@ describe("Select component tests", function () {
391
475
 
392
476
  expect(onChange).toHaveBeenCalled();
393
477
  expect(onChange).toHaveBeenCalledWith({
394
- value: "1",
395
- error: null
478
+ value: "1"
396
479
  });
397
480
 
398
481
  _react2.fireEvent.focus(select);
@@ -401,22 +484,21 @@ describe("Select component tests", function () {
401
484
 
402
485
  expect(onBlur).toHaveBeenCalled();
403
486
  expect(onBlur).toHaveBeenCalledWith({
404
- value: "1",
405
- error: null
487
+ value: "1"
406
488
  });
407
489
  });
408
490
  test("Controlled - Optional constraint", function () {
409
491
  var onChange = jest.fn();
410
492
  var onBlur = jest.fn();
411
493
 
412
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
494
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
413
495
  label: "test-select-label",
414
496
  options: single_options,
415
497
  onChange: onChange,
416
498
  onBlur: onBlur,
417
499
  optional: true
418
500
  })),
419
- getByRole = _render8.getByRole;
501
+ getByRole = _render11.getByRole;
420
502
 
421
503
  var select = getByRole("combobox");
422
504
  expect(select.getAttribute("aria-required")).toBe("false");
@@ -427,20 +509,19 @@ describe("Select component tests", function () {
427
509
 
428
510
  expect(onBlur).toHaveBeenCalled();
429
511
  expect(onBlur).toHaveBeenCalledWith({
430
- value: "",
431
- error: null
512
+ value: ""
432
513
  });
433
514
  expect(select.getAttribute("aria-invalid")).toBe("false");
434
515
  });
435
516
  test("Non-Grouped Options - Opens listbox and renders correctly or closes it with a click on select", function () {
436
- var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
517
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
437
518
  label: "test-select-label",
438
519
  options: single_options
439
520
  })),
440
- getByText = _render9.getByText,
441
- getByRole = _render9.getByRole,
442
- getAllByRole = _render9.getAllByRole,
443
- queryByRole = _render9.queryByRole;
521
+ getByText = _render12.getByText,
522
+ getByRole = _render12.getByRole,
523
+ getAllByRole = _render12.getAllByRole,
524
+ queryByRole = _render12.queryByRole;
444
525
 
445
526
  var select = getByRole("combobox");
446
527
 
@@ -460,12 +541,12 @@ describe("Select component tests", function () {
460
541
  expect(select.getAttribute("aria-expanded")).toBe("false");
461
542
  });
462
543
  test("Non-Grouped Options - If an empty list of options is passed, the select is rendered but doestn't open the listbox", function () {
463
- var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
544
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
464
545
  label: "test-select-label",
465
546
  options: []
466
547
  })),
467
- getByRole = _render10.getByRole,
468
- queryByRole = _render10.queryByRole;
548
+ getByRole = _render13.getByRole,
549
+ queryByRole = _render13.queryByRole;
469
550
 
470
551
  var select = getByRole("combobox");
471
552
 
@@ -477,17 +558,17 @@ describe("Select component tests", function () {
477
558
  test("Non-Grouped Options - Click in an option selects it and closes the listbox", function () {
478
559
  var onChange = jest.fn();
479
560
 
480
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
561
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
481
562
  name: "test",
482
563
  label: "test-select-label",
483
564
  options: single_options,
484
565
  onChange: onChange
485
566
  })),
486
- getByText = _render11.getByText,
487
- getByRole = _render11.getByRole,
488
- getAllByRole = _render11.getAllByRole,
489
- queryByRole = _render11.queryByRole,
490
- container = _render11.container;
567
+ getByText = _render14.getByText,
568
+ getByRole = _render14.getByRole,
569
+ getAllByRole = _render14.getAllByRole,
570
+ queryByRole = _render14.queryByRole,
571
+ container = _render14.container;
491
572
 
492
573
  var select = getByRole("combobox");
493
574
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -497,8 +578,7 @@ describe("Select component tests", function () {
497
578
  _userEvent["default"].click(getAllByRole("option")[2]);
498
579
 
499
580
  expect(onChange).toHaveBeenCalledWith({
500
- value: "3",
501
- error: null
581
+ value: "3"
502
582
  });
503
583
  expect(queryByRole("listbox")).toBeFalsy();
504
584
  expect(getByText("Option 03")).toBeTruthy();
@@ -511,16 +591,16 @@ describe("Select component tests", function () {
511
591
  test("Non-Grouped Options - Optional renders an empty first option (selected by default) with the placeholder as its label", function () {
512
592
  var onChange = jest.fn();
513
593
 
514
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
594
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
515
595
  label: "test-select-label",
516
596
  placeholder: "Choose an option",
517
597
  options: single_options,
518
598
  onChange: onChange,
519
599
  optional: true
520
600
  })),
521
- getByRole = _render12.getByRole,
522
- getAllByRole = _render12.getAllByRole,
523
- getAllByText = _render12.getAllByText;
601
+ getByRole = _render15.getByRole,
602
+ getAllByRole = _render15.getAllByRole,
603
+ getAllByText = _render15.getAllByText;
524
604
 
525
605
  var select = getByRole("combobox");
526
606
 
@@ -532,8 +612,7 @@ describe("Select component tests", function () {
532
612
  _userEvent["default"].click(getAllByRole("option")[0]);
533
613
 
534
614
  expect(onChange).toHaveBeenCalledWith({
535
- value: "",
536
- error: null
615
+ value: ""
537
616
  });
538
617
  expect(getAllByText("Choose an option").length).toBe(1);
539
618
 
@@ -554,8 +633,7 @@ describe("Select component tests", function () {
554
633
  });
555
634
 
556
635
  expect(onChange).toHaveBeenCalledWith({
557
- value: "",
558
- error: null
636
+ value: ""
559
637
  });
560
638
  expect(getAllByText("Choose an option").length).toBe(1);
561
639
 
@@ -568,13 +646,42 @@ describe("Select component tests", function () {
568
646
 
569
647
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
570
648
  });
649
+ test("Non-Grouped Options - Filtering options never affects the optional item until there are no coincidence", function () {
650
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
651
+ label: "test-select-label",
652
+ placeholder: "Placeholder example",
653
+ options: single_options,
654
+ optional: true,
655
+ searchable: true
656
+ })),
657
+ getByRole = _render16.getByRole,
658
+ getAllByRole = _render16.getAllByRole,
659
+ getByText = _render16.getByText,
660
+ queryByText = _render16.queryByText,
661
+ container = _render16.container;
662
+
663
+ var select = getByRole("combobox");
664
+ var searchInput = container.querySelectorAll("input")[1];
665
+
666
+ _userEvent["default"].click(select);
667
+
668
+ _userEvent["default"].type(searchInput, "1");
669
+
670
+ expect(getByText("Placeholder example")).toBeTruthy();
671
+ expect(getAllByRole("option").length).toBe(12);
672
+
673
+ _userEvent["default"].type(searchInput, "123");
674
+
675
+ expect(queryByText("Placeholder example")).toBeFalsy();
676
+ expect(getByText("No matches found")).toBeTruthy();
677
+ });
571
678
  test("Non-Grouped Options - Renders SVG icons correctly when passed with options", function () {
572
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
679
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
573
680
  label: "test-select-label",
574
681
  options: svg_icon_options
575
682
  })),
576
- getByRole = _render13.getByRole,
577
- getAllByRole = _render13.getAllByRole;
683
+ getByRole = _render17.getByRole,
684
+ getAllByRole = _render17.getAllByRole;
578
685
 
579
686
  var select = getByRole("combobox");
580
687
 
@@ -584,13 +691,13 @@ describe("Select component tests", function () {
584
691
  expect(getAllByRole("option").length).toBe(5);
585
692
  });
586
693
  test("Non-Grouped Options - Renders string url icons correctly when passed with options", function () {
587
- var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
694
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
588
695
  label: "test-select-label",
589
696
  options: url_icon_options,
590
697
  optional: true
591
698
  })),
592
- getByRole = _render14.getByRole,
593
- getAllByRole = _render14.getAllByRole;
699
+ getByRole = _render18.getByRole,
700
+ getAllByRole = _render18.getAllByRole;
594
701
 
595
702
  var select = getByRole("combobox");
596
703
 
@@ -600,12 +707,12 @@ describe("Select component tests", function () {
600
707
  expect(getAllByRole("option").length).toBe(6);
601
708
  });
602
709
  test("Non-Grouped Options: Arrow up key - Opens the listbox and visually focus the last option", function () {
603
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
710
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
604
711
  label: "test-select-label",
605
712
  options: single_options
606
713
  })),
607
- getByRole = _render15.getByRole,
608
- queryByRole = _render15.queryByRole;
714
+ getByRole = _render19.getByRole,
715
+ queryByRole = _render19.queryByRole;
609
716
 
610
717
  var select = getByRole("combobox");
611
718
 
@@ -620,12 +727,12 @@ describe("Select component tests", function () {
620
727
  expect(select.getAttribute("aria-activedescendant")).toBe("option-19");
621
728
  });
622
729
  test("Non-Grouped Options: Arrow up key - Puts the focus in last option when the first one is visually focused", function () {
623
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
730
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
624
731
  label: "test-select-label",
625
732
  options: single_options
626
733
  })),
627
- getByRole = _render16.getByRole,
628
- queryByRole = _render16.queryByRole;
734
+ getByRole = _render20.getByRole,
735
+ queryByRole = _render20.queryByRole;
629
736
 
630
737
  var select = getByRole("combobox");
631
738
 
@@ -647,12 +754,12 @@ describe("Select component tests", function () {
647
754
  expect(select.getAttribute("aria-activedescendant")).toBe("option-19");
648
755
  });
649
756
  test("Non-Grouped Options: Arrow down key - Opens the listbox and visually focus the first option", function () {
650
- var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
757
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
651
758
  label: "test-select-label",
652
759
  options: single_options
653
760
  })),
654
- getByRole = _render17.getByRole,
655
- queryByRole = _render17.queryByRole;
761
+ getByRole = _render21.getByRole,
762
+ queryByRole = _render21.queryByRole;
656
763
 
657
764
  var select = getByRole("combobox");
658
765
 
@@ -667,12 +774,12 @@ describe("Select component tests", function () {
667
774
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
668
775
  });
669
776
  test("Non-Grouped Options: Arrow down key - Puts the focus in the first option when the last one is visually focused", function () {
670
- var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
777
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
671
778
  label: "test-select-label",
672
779
  options: single_options
673
780
  })),
674
- getByRole = _render18.getByRole,
675
- queryByRole = _render18.queryByRole;
781
+ getByRole = _render22.getByRole,
782
+ queryByRole = _render22.queryByRole;
676
783
 
677
784
  var select = getByRole("combobox");
678
785
 
@@ -696,16 +803,16 @@ describe("Select component tests", function () {
696
803
  test("Non-Grouped Options: Enter key - Selects the visually focused option and closes the listbox", function () {
697
804
  var onChange = jest.fn();
698
805
 
699
- var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
806
+ var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
700
807
  label: "test-select-label",
701
808
  options: single_options,
702
809
  onChange: onChange,
703
810
  optional: true
704
811
  })),
705
- getByText = _render19.getByText,
706
- getByRole = _render19.getByRole,
707
- getAllByRole = _render19.getAllByRole,
708
- queryByRole = _render19.queryByRole;
812
+ getByText = _render23.getByText,
813
+ getByRole = _render23.getByRole,
814
+ getAllByRole = _render23.getAllByRole,
815
+ queryByRole = _render23.queryByRole;
709
816
 
710
817
  var select = getByRole("combobox");
711
818
 
@@ -745,8 +852,7 @@ describe("Select component tests", function () {
745
852
  });
746
853
 
747
854
  expect(onChange).toHaveBeenCalledWith({
748
- value: "20",
749
- error: null
855
+ value: "20"
750
856
  });
751
857
  expect(queryByRole("listbox")).toBeFalsy();
752
858
  expect(getByText("Option 20")).toBeTruthy();
@@ -758,17 +864,17 @@ describe("Select component tests", function () {
758
864
  test("Non-Grouped Options: Searchable - Displays an input for filtering the list of options", function () {
759
865
  var onChange = jest.fn();
760
866
 
761
- var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
867
+ var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
762
868
  label: "test-select-label",
763
869
  options: single_options,
764
870
  onChange: onChange,
765
871
  searchable: true
766
872
  })),
767
- container = _render20.container,
768
- getByText = _render20.getByText,
769
- getByRole = _render20.getByRole,
770
- getAllByRole = _render20.getAllByRole,
771
- queryByRole = _render20.queryByRole;
873
+ container = _render24.container,
874
+ getByText = _render24.getByText,
875
+ getByRole = _render24.getByRole,
876
+ getAllByRole = _render24.getAllByRole,
877
+ queryByRole = _render24.queryByRole;
772
878
 
773
879
  var select = getByRole("combobox");
774
880
  var searchInput = container.querySelectorAll("input")[1];
@@ -782,8 +888,7 @@ describe("Select component tests", function () {
782
888
  _userEvent["default"].click(getByRole("option"));
783
889
 
784
890
  expect(onChange).toHaveBeenCalledWith({
785
- value: "8",
786
- error: null
891
+ value: "8"
787
892
  });
788
893
  expect(queryByRole("listbox")).toBeFalsy();
789
894
  expect(getByText("Option 08")).toBeTruthy();
@@ -796,15 +901,15 @@ describe("Select component tests", function () {
796
901
  test("Non-Grouped Options: Searchable - Displays 'No matches found' when there are no filtering results", function () {
797
902
  var onChange = jest.fn();
798
903
 
799
- var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
904
+ var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
800
905
  label: "test-select-label",
801
906
  options: single_options,
802
907
  onChange: onChange,
803
908
  searchable: true
804
909
  })),
805
- container = _render21.container,
806
- getByText = _render21.getByText,
807
- getByRole = _render21.getByRole;
910
+ container = _render25.container,
911
+ getByText = _render25.getByText,
912
+ getByRole = _render25.getByRole;
808
913
 
809
914
  var select = getByRole("combobox");
810
915
  var searchInput = container.querySelectorAll("input")[1];
@@ -820,16 +925,16 @@ describe("Select component tests", function () {
820
925
  test("Non-Grouped Options: Searchable - Clicking the select, when the list is open, clears the search value", function () {
821
926
  var onChange = jest.fn();
822
927
 
823
- var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
928
+ var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
824
929
  label: "test-select-label",
825
930
  options: single_options,
826
931
  onChange: onChange,
827
932
  searchable: true
828
933
  })),
829
- container = _render22.container,
830
- getByText = _render22.getByText,
831
- getByRole = _render22.getByRole,
832
- getAllByRole = _render22.getAllByRole;
934
+ container = _render26.container,
935
+ getByText = _render26.getByText,
936
+ getByRole = _render26.getByRole,
937
+ getAllByRole = _render26.getAllByRole;
833
938
 
834
939
  var select = getByRole("combobox");
835
940
  var searchInput = container.querySelectorAll("input")[1];
@@ -852,15 +957,15 @@ describe("Select component tests", function () {
852
957
  test("Non-Grouped Options: Searchable - Writing displays the listbox, if it was not open", function () {
853
958
  var onChange = jest.fn();
854
959
 
855
- var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
960
+ var _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
856
961
  label: "test-select-label",
857
962
  options: single_options,
858
963
  onChange: onChange,
859
964
  searchable: true
860
965
  })),
861
- container = _render23.container,
862
- getByRole = _render23.getByRole,
863
- queryByRole = _render23.queryByRole;
966
+ container = _render27.container,
967
+ getByRole = _render27.getByRole,
968
+ queryByRole = _render27.queryByRole;
864
969
 
865
970
  var select = getByRole("combobox");
866
971
  var searchInput = container.querySelectorAll("input")[1];
@@ -878,15 +983,15 @@ describe("Select component tests", function () {
878
983
  test("Non-Grouped Options: Searchable - Key Esc cleans the search value and closes the options", function () {
879
984
  var onChange = jest.fn();
880
985
 
881
- var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
986
+ var _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
882
987
  label: "test-select-label",
883
988
  options: single_options,
884
989
  onChange: onChange,
885
990
  searchable: true
886
991
  })),
887
- container = _render24.container,
888
- getByRole = _render24.getByRole,
889
- queryByRole = _render24.queryByRole;
992
+ container = _render28.container,
993
+ getByRole = _render28.getByRole,
994
+ queryByRole = _render28.queryByRole;
890
995
 
891
996
  var select = getByRole("combobox");
892
997
  var searchInput = container.querySelectorAll("input")[1];
@@ -906,16 +1011,16 @@ describe("Select component tests", function () {
906
1011
  test("Non-Grouped Options: Searchable - While user types, a clear action is displayed for cleaning the search value", function () {
907
1012
  var onChange = jest.fn();
908
1013
 
909
- var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1014
+ var _render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
910
1015
  label: "test-select-label",
911
1016
  options: single_options,
912
1017
  onChange: onChange,
913
1018
  searchable: true
914
1019
  })),
915
- container = _render25.container,
916
- getByRole = _render25.getByRole,
917
- getAllByRole = _render25.getAllByRole,
918
- queryByTitle = _render25.queryByTitle;
1020
+ container = _render29.container,
1021
+ getByRole = _render29.getByRole,
1022
+ getAllByRole = _render29.getAllByRole,
1023
+ queryByTitle = _render29.queryByTitle;
919
1024
 
920
1025
  var searchInput = container.querySelectorAll("input")[1];
921
1026
 
@@ -935,19 +1040,19 @@ describe("Select component tests", function () {
935
1040
  test("Non-Grouped Options: Multiple selection - Displays a checkbox per option and enables the multi-selection", function () {
936
1041
  var onChange = jest.fn();
937
1042
 
938
- var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1043
+ var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
939
1044
  name: "test",
940
1045
  label: "test-select-label",
941
1046
  options: single_options,
942
1047
  onChange: onChange,
943
1048
  multiple: true
944
1049
  })),
945
- getByText = _render26.getByText,
946
- getAllByText = _render26.getAllByText,
947
- getByRole = _render26.getByRole,
948
- getAllByRole = _render26.getAllByRole,
949
- queryByRole = _render26.queryByRole,
950
- container = _render26.container;
1050
+ getByText = _render30.getByText,
1051
+ getAllByText = _render30.getAllByText,
1052
+ getByRole = _render30.getByRole,
1053
+ getAllByRole = _render30.getAllByRole,
1054
+ queryByRole = _render30.queryByRole,
1055
+ container = _render30.container;
951
1056
 
952
1057
  var select = getByRole("combobox");
953
1058
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -956,9 +1061,11 @@ describe("Select component tests", function () {
956
1061
 
957
1062
  expect(getByRole("listbox").getAttribute("aria-multiselectable")).toBe("true");
958
1063
 
959
- _userEvent["default"].click(getAllByRole("option")[10]); // expect(onChange).toHaveBeenCalledWith({ value: ["11"], error: null });
960
-
1064
+ _userEvent["default"].click(getAllByRole("option")[10]);
961
1065
 
1066
+ expect(onChange).toHaveBeenCalledWith({
1067
+ value: ["11"]
1068
+ });
962
1069
  expect(queryByRole("listbox")).toBeTruthy();
963
1070
  expect(getAllByText("Option 11").length).toBe(2);
964
1071
 
@@ -981,31 +1088,33 @@ describe("Select component tests", function () {
981
1088
  code: "Enter",
982
1089
  keyCode: 13,
983
1090
  charCode: 13
984
- }); // expect(onChange).toHaveBeenCalledWith({ value: ["11", "19"], error: null });
985
-
1091
+ });
986
1092
 
1093
+ expect(onChange).toHaveBeenCalledWith({
1094
+ value: ["11", "19"]
1095
+ });
987
1096
  expect(queryByRole("listbox")).toBeTruthy();
988
1097
  expect(getByText("Option 11, Option 19")).toBeTruthy();
989
1098
  expect(getAllByRole("option")[10].getAttribute("aria-selected")).toBe("true");
990
1099
  expect(getAllByRole("option")[18].getAttribute("aria-selected")).toBe("true");
991
- expect(submitInput.value).toBe("11, 19");
1100
+ expect(submitInput.value).toBe("11,19");
992
1101
  });
993
1102
  test("Non-Grouped Options: Multiple selection - Clear action and selection indicator", function () {
994
1103
  var onChange = jest.fn();
995
1104
 
996
- var _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1105
+ var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
997
1106
  label: "test-select-label",
998
1107
  options: single_options,
999
1108
  onChange: onChange,
1000
1109
  multiple: true
1001
1110
  })),
1002
- getByText = _render27.getByText,
1003
- queryByText = _render27.queryByText,
1004
- getByRole = _render27.getByRole,
1005
- getAllByRole = _render27.getAllByRole,
1006
- queryByRole = _render27.queryByRole,
1007
- getByTitle = _render27.getByTitle,
1008
- queryByTitle = _render27.queryByTitle;
1111
+ getByText = _render31.getByText,
1112
+ queryByText = _render31.queryByText,
1113
+ getByRole = _render31.getByRole,
1114
+ getAllByRole = _render31.getAllByRole,
1115
+ queryByRole = _render31.queryByRole,
1116
+ getByTitle = _render31.getByTitle,
1117
+ queryByTitle = _render31.queryByTitle;
1009
1118
 
1010
1119
  var select = getByRole("combobox");
1011
1120
 
@@ -1015,9 +1124,11 @@ describe("Select component tests", function () {
1015
1124
 
1016
1125
  _userEvent["default"].click(getAllByRole("option")[8]);
1017
1126
 
1018
- _userEvent["default"].click(getAllByRole("option")[13]); // expect(onChange).toHaveBeenCalledWith({ value: ["6", "9", "14"], error: null });
1019
-
1127
+ _userEvent["default"].click(getAllByRole("option")[13]);
1020
1128
 
1129
+ expect(onChange).toHaveBeenCalledWith({
1130
+ value: ["6", "9", "14"]
1131
+ });
1021
1132
  expect(queryByRole("listbox")).toBeTruthy();
1022
1133
  expect(getByText("Option 06, Option 09, Option 14")).toBeTruthy();
1023
1134
  expect(getByText("3", {
@@ -1026,6 +1137,10 @@ describe("Select component tests", function () {
1026
1137
 
1027
1138
  _userEvent["default"].click(getByTitle("Clear selection"));
1028
1139
 
1140
+ expect(onChange).toHaveBeenCalledWith({
1141
+ value: [],
1142
+ error: "This field is required. Please, enter a value."
1143
+ });
1029
1144
  expect(queryByRole("listbox")).toBeTruthy();
1030
1145
  expect(queryByText("Option 06, Option 09, Option 14")).toBeFalsy();
1031
1146
  expect(queryByText("3")).toBeFalsy();
@@ -1034,7 +1149,7 @@ describe("Select component tests", function () {
1034
1149
  test("Non-Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", function () {
1035
1150
  var onChange = jest.fn();
1036
1151
 
1037
- var _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1152
+ var _render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1038
1153
  label: "test-select-label",
1039
1154
  placeholder: "Choose an option",
1040
1155
  options: single_options,
@@ -1042,10 +1157,10 @@ describe("Select component tests", function () {
1042
1157
  multiple: true,
1043
1158
  optional: true
1044
1159
  })),
1045
- getByText = _render28.getByText,
1046
- getAllByText = _render28.getAllByText,
1047
- getByRole = _render28.getByRole,
1048
- getAllByRole = _render28.getAllByRole;
1160
+ getByText = _render32.getByText,
1161
+ getAllByText = _render32.getAllByText,
1162
+ getByRole = _render32.getByRole,
1163
+ getAllByRole = _render32.getAllByRole;
1049
1164
 
1050
1165
  var select = getByRole("combobox");
1051
1166
  expect(getByText("(Optional)")).toBeTruthy();
@@ -1055,19 +1170,21 @@ describe("Select component tests", function () {
1055
1170
  expect(getAllByText("Choose an option").length).toBe(1);
1056
1171
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("false");
1057
1172
 
1058
- _userEvent["default"].click(getAllByRole("option")[0]); // expect(onChange).toHaveBeenCalledWith({ value: ["1"], error: null });
1059
-
1173
+ _userEvent["default"].click(getAllByRole("option")[0]);
1060
1174
 
1175
+ expect(onChange).toHaveBeenCalledWith({
1176
+ value: ["1"]
1177
+ });
1061
1178
  expect(getAllByText("Option 01").length).toBe(2);
1062
1179
  });
1063
1180
  test("Non-Grouped Options - If an options was previously selected when its opened (by key press), the visual focus appears always in the selected option", function () {
1064
- var _render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1181
+ var _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1065
1182
  label: "test-select-label",
1066
1183
  options: single_options
1067
1184
  })),
1068
- getByText = _render29.getByText,
1069
- getByRole = _render29.getByRole,
1070
- getAllByRole = _render29.getAllByRole;
1185
+ getByText = _render33.getByText,
1186
+ getByRole = _render33.getByRole,
1187
+ getAllByRole = _render33.getAllByRole;
1071
1188
 
1072
1189
  var select = getByRole("combobox");
1073
1190
 
@@ -1135,14 +1252,14 @@ describe("Select component tests", function () {
1135
1252
  expect(getByText("Option 06")).toBeTruthy();
1136
1253
  });
1137
1254
  test("Non-Grouped Options - If an options was previously selected when its opened (by click and key press), the visual focus appears always in the selected option", function () {
1138
- var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1255
+ var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1139
1256
  label: "test-select-label",
1140
1257
  options: single_options
1141
1258
  })),
1142
- getByText = _render30.getByText,
1143
- getByRole = _render30.getByRole,
1144
- getAllByRole = _render30.getAllByRole,
1145
- queryByRole = _render30.queryByRole;
1259
+ getByText = _render34.getByText,
1260
+ getByRole = _render34.getByRole,
1261
+ getAllByRole = _render34.getAllByRole,
1262
+ queryByRole = _render34.queryByRole;
1146
1263
 
1147
1264
  var select = getByRole("combobox");
1148
1265
 
@@ -1210,14 +1327,14 @@ describe("Select component tests", function () {
1210
1327
  expect(getByText("Option 17")).toBeTruthy();
1211
1328
  });
1212
1329
  test("Grouped Options - Opens listbox and renders it correctly or closes it with a click on select", function () {
1213
- var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1330
+ var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1214
1331
  label: "test-select-label",
1215
1332
  options: group_options
1216
1333
  })),
1217
- getByText = _render31.getByText,
1218
- getByRole = _render31.getByRole,
1219
- getAllByRole = _render31.getAllByRole,
1220
- queryByRole = _render31.queryByRole;
1334
+ getByText = _render35.getByText,
1335
+ getByRole = _render35.getByRole,
1336
+ getAllByRole = _render35.getAllByRole,
1337
+ queryByRole = _render35.queryByRole;
1221
1338
 
1222
1339
  var select = getByRole("combobox");
1223
1340
 
@@ -1245,15 +1362,15 @@ describe("Select component tests", function () {
1245
1362
  expect(select.getAttribute("aria-expanded")).toBe("false");
1246
1363
  });
1247
1364
  test("Grouped Options - If an empty list of options in a group is passed, the select is rendered but doestn't open the listbox", function () {
1248
- var _render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1365
+ var _render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1249
1366
  label: "test-select-label",
1250
1367
  options: [{
1251
1368
  label: "Group 1",
1252
1369
  options: []
1253
1370
  }]
1254
1371
  })),
1255
- getByRole = _render32.getByRole,
1256
- queryByRole = _render32.queryByRole;
1372
+ getByRole = _render36.getByRole,
1373
+ queryByRole = _render36.queryByRole;
1257
1374
 
1258
1375
  var select = getByRole("combobox");
1259
1376
 
@@ -1265,17 +1382,17 @@ describe("Select component tests", function () {
1265
1382
  test("Grouped Options - Click in an option selects it and closes the listbox", function () {
1266
1383
  var onChange = jest.fn();
1267
1384
 
1268
- var _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1385
+ var _render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1269
1386
  name: "test",
1270
1387
  label: "test-select-label",
1271
1388
  options: group_options,
1272
1389
  onChange: onChange
1273
1390
  })),
1274
- getByText = _render33.getByText,
1275
- getByRole = _render33.getByRole,
1276
- getAllByRole = _render33.getAllByRole,
1277
- queryByRole = _render33.queryByRole,
1278
- container = _render33.container;
1391
+ getByText = _render37.getByText,
1392
+ getByRole = _render37.getByRole,
1393
+ getAllByRole = _render37.getAllByRole,
1394
+ queryByRole = _render37.queryByRole,
1395
+ container = _render37.container;
1279
1396
 
1280
1397
  var select = getByRole("combobox");
1281
1398
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -1285,8 +1402,7 @@ describe("Select component tests", function () {
1285
1402
  _userEvent["default"].click(getAllByRole("option")[8]);
1286
1403
 
1287
1404
  expect(onChange).toHaveBeenCalledWith({
1288
- value: "oviedo",
1289
- error: null
1405
+ value: "oviedo"
1290
1406
  });
1291
1407
  expect(queryByRole("listbox")).toBeFalsy();
1292
1408
  expect(getByText("Oviedo")).toBeTruthy();
@@ -1299,16 +1415,16 @@ describe("Select component tests", function () {
1299
1415
  test("Grouped Options - Optional renders an empty first option (out of any group) with the placeholder as its label", function () {
1300
1416
  var onChange = jest.fn();
1301
1417
 
1302
- var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1418
+ var _render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1303
1419
  label: "test-select-label",
1304
1420
  placeholder: "Placeholder example",
1305
1421
  options: group_options,
1306
1422
  onChange: onChange,
1307
1423
  optional: true
1308
1424
  })),
1309
- getByRole = _render34.getByRole,
1310
- getAllByRole = _render34.getAllByRole,
1311
- getAllByText = _render34.getAllByText;
1425
+ getByRole = _render38.getByRole,
1426
+ getAllByRole = _render38.getAllByRole,
1427
+ getAllByText = _render38.getAllByText;
1312
1428
 
1313
1429
  var select = getByRole("combobox");
1314
1430
 
@@ -1320,8 +1436,7 @@ describe("Select component tests", function () {
1320
1436
  _userEvent["default"].click(getAllByRole("option")[0]);
1321
1437
 
1322
1438
  expect(onChange).toHaveBeenCalledWith({
1323
- value: "",
1324
- error: null
1439
+ value: ""
1325
1440
  });
1326
1441
  expect(getAllByText("Placeholder example").length).toBe(1);
1327
1442
 
@@ -1342,8 +1457,7 @@ describe("Select component tests", function () {
1342
1457
  });
1343
1458
 
1344
1459
  expect(onChange).toHaveBeenCalledWith({
1345
- value: "",
1346
- error: null
1460
+ value: ""
1347
1461
  });
1348
1462
  expect(getAllByText("Placeholder example").length).toBe(1);
1349
1463
 
@@ -1356,14 +1470,43 @@ describe("Select component tests", function () {
1356
1470
 
1357
1471
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1358
1472
  });
1473
+ test("Grouped Options - Filtering options never affects the optional item until there are no coincidence", function () {
1474
+ var _render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1475
+ label: "test-select-label",
1476
+ placeholder: "Placeholder example",
1477
+ options: group_options,
1478
+ optional: true,
1479
+ searchable: true
1480
+ })),
1481
+ getByRole = _render39.getByRole,
1482
+ getAllByRole = _render39.getAllByRole,
1483
+ getByText = _render39.getByText,
1484
+ queryByText = _render39.queryByText,
1485
+ container = _render39.container;
1486
+
1487
+ var select = getByRole("combobox");
1488
+ var searchInput = container.querySelectorAll("input")[1];
1489
+
1490
+ _userEvent["default"].click(select);
1491
+
1492
+ _userEvent["default"].type(searchInput, "ro");
1493
+
1494
+ expect(getByText("Placeholder example")).toBeTruthy();
1495
+ expect(getAllByRole("option").length).toBe(6);
1496
+
1497
+ _userEvent["default"].type(searchInput, "roro");
1498
+
1499
+ expect(queryByText("Placeholder example")).toBeFalsy();
1500
+ expect(getByText("No matches found")).toBeTruthy();
1501
+ });
1359
1502
  test("Grouped Options - Renders icons correctly when passed with group options", function () {
1360
- var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1503
+ var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1361
1504
  label: "test-select-label",
1362
1505
  options: grouped_icon_options,
1363
1506
  optional: true
1364
1507
  })),
1365
- getByRole = _render35.getByRole,
1366
- getAllByRole = _render35.getAllByRole;
1508
+ getByRole = _render40.getByRole,
1509
+ getAllByRole = _render40.getAllByRole;
1367
1510
 
1368
1511
  var select = getByRole("combobox");
1369
1512
 
@@ -1373,12 +1516,12 @@ describe("Select component tests", function () {
1373
1516
  expect(getAllByRole("option").length).toBe(11);
1374
1517
  });
1375
1518
  test("Grouped Options: Arrow up key - Opens the listbox and visually focus the last option", function () {
1376
- var _render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1519
+ var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1377
1520
  label: "test-select-label",
1378
1521
  options: group_options
1379
1522
  })),
1380
- getByRole = _render36.getByRole,
1381
- queryByRole = _render36.queryByRole;
1523
+ getByRole = _render41.getByRole,
1524
+ queryByRole = _render41.queryByRole;
1382
1525
 
1383
1526
  var select = getByRole("combobox");
1384
1527
 
@@ -1393,12 +1536,12 @@ describe("Select component tests", function () {
1393
1536
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
1394
1537
  });
1395
1538
  test("Grouped Options: Arrow up key - Puts the focus in last option when the first one is visually focused", function () {
1396
- var _render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1539
+ var _render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1397
1540
  label: "test-select-label",
1398
1541
  options: group_options
1399
1542
  })),
1400
- getByRole = _render37.getByRole,
1401
- queryByRole = _render37.queryByRole;
1543
+ getByRole = _render42.getByRole,
1544
+ queryByRole = _render42.queryByRole;
1402
1545
 
1403
1546
  var select = getByRole("combobox");
1404
1547
 
@@ -1420,12 +1563,12 @@ describe("Select component tests", function () {
1420
1563
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
1421
1564
  });
1422
1565
  test("Grouped Options: Arrow down key - Opens the listbox and visually focus the first option", function () {
1423
- var _render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1566
+ var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1424
1567
  label: "test-select-label",
1425
1568
  options: group_options
1426
1569
  })),
1427
- getByRole = _render38.getByRole,
1428
- queryByRole = _render38.queryByRole;
1570
+ getByRole = _render43.getByRole,
1571
+ queryByRole = _render43.queryByRole;
1429
1572
 
1430
1573
  var select = getByRole("combobox");
1431
1574
 
@@ -1440,12 +1583,12 @@ describe("Select component tests", function () {
1440
1583
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1441
1584
  });
1442
1585
  test("Grouped Options: Arrow down key - Puts the focus in the first option when the last one is visually focused", function () {
1443
- var _render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1586
+ var _render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1444
1587
  label: "test-select-label",
1445
1588
  options: group_options
1446
1589
  })),
1447
- getByRole = _render39.getByRole,
1448
- queryByRole = _render39.queryByRole;
1590
+ getByRole = _render44.getByRole,
1591
+ queryByRole = _render44.queryByRole;
1449
1592
 
1450
1593
  var select = getByRole("combobox");
1451
1594
 
@@ -1469,16 +1612,16 @@ describe("Select component tests", function () {
1469
1612
  test("Grouped Options: Enter key - Selects the visually focused option and closes the listbox", function () {
1470
1613
  var onChange = jest.fn();
1471
1614
 
1472
- var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1615
+ var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1473
1616
  label: "test-select-label",
1474
1617
  options: group_options,
1475
1618
  onChange: onChange,
1476
1619
  optional: true
1477
1620
  })),
1478
- getByText = _render40.getByText,
1479
- getByRole = _render40.getByRole,
1480
- getAllByRole = _render40.getAllByRole,
1481
- queryByRole = _render40.queryByRole;
1621
+ getByText = _render45.getByText,
1622
+ getByRole = _render45.getByRole,
1623
+ getAllByRole = _render45.getAllByRole,
1624
+ queryByRole = _render45.queryByRole;
1482
1625
 
1483
1626
  var select = getByRole("combobox");
1484
1627
 
@@ -1518,8 +1661,7 @@ describe("Select component tests", function () {
1518
1661
  });
1519
1662
 
1520
1663
  expect(onChange).toHaveBeenCalledWith({
1521
- value: "ebro",
1522
- error: null
1664
+ value: "ebro"
1523
1665
  });
1524
1666
  expect(queryByRole("listbox")).toBeFalsy();
1525
1667
  expect(getByText("Ebro")).toBeTruthy();
@@ -1531,17 +1673,17 @@ describe("Select component tests", function () {
1531
1673
  test("Grouped Options: Searchable - Displays an input for filtering the list of options", function () {
1532
1674
  var onChange = jest.fn();
1533
1675
 
1534
- var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1676
+ var _render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1535
1677
  label: "test-select-label",
1536
1678
  options: group_options,
1537
1679
  onChange: onChange,
1538
1680
  searchable: true
1539
1681
  })),
1540
- container = _render41.container,
1541
- getByText = _render41.getByText,
1542
- getByRole = _render41.getByRole,
1543
- getAllByRole = _render41.getAllByRole,
1544
- queryByRole = _render41.queryByRole;
1682
+ container = _render46.container,
1683
+ getByText = _render46.getByText,
1684
+ getByRole = _render46.getByRole,
1685
+ getAllByRole = _render46.getAllByRole,
1686
+ queryByRole = _render46.queryByRole;
1545
1687
 
1546
1688
  var select = getByRole("combobox");
1547
1689
  var searchInput = container.querySelectorAll("input")[1];
@@ -1561,8 +1703,7 @@ describe("Select component tests", function () {
1561
1703
  _userEvent["default"].click(getAllByRole("option")[4]);
1562
1704
 
1563
1705
  expect(onChange).toHaveBeenCalledWith({
1564
- value: "ebro",
1565
- error: null
1706
+ value: "ebro"
1566
1707
  });
1567
1708
  expect(queryByRole("listbox")).toBeFalsy();
1568
1709
  expect(getByText("Ebro")).toBeTruthy();
@@ -1575,15 +1716,15 @@ describe("Select component tests", function () {
1575
1716
  test("Grouped Options: Searchable - Displays 'No matches found' when there are no filtering results", function () {
1576
1717
  var onChange = jest.fn();
1577
1718
 
1578
- var _render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1719
+ var _render47 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1579
1720
  label: "test-select-label",
1580
1721
  options: group_options,
1581
1722
  onChange: onChange,
1582
1723
  searchable: true
1583
1724
  })),
1584
- container = _render42.container,
1585
- getByText = _render42.getByText,
1586
- getByRole = _render42.getByRole;
1725
+ container = _render47.container,
1726
+ getByText = _render47.getByText,
1727
+ getByRole = _render47.getByRole;
1587
1728
 
1588
1729
  var select = getByRole("combobox");
1589
1730
  var searchInput = container.querySelectorAll("input")[1];
@@ -1599,19 +1740,19 @@ describe("Select component tests", function () {
1599
1740
  test("Grouped Options: Multiple selection - Displays a checkbox per option and enables the multi-selection", function () {
1600
1741
  var onChange = jest.fn();
1601
1742
 
1602
- var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1743
+ var _render48 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1603
1744
  name: "test",
1604
1745
  label: "test-select-label",
1605
1746
  options: group_options,
1606
1747
  onChange: onChange,
1607
1748
  multiple: true
1608
1749
  })),
1609
- getByText = _render43.getByText,
1610
- getAllByText = _render43.getAllByText,
1611
- getByRole = _render43.getByRole,
1612
- getAllByRole = _render43.getAllByRole,
1613
- queryByRole = _render43.queryByRole,
1614
- container = _render43.container;
1750
+ getByText = _render48.getByText,
1751
+ getAllByText = _render48.getAllByText,
1752
+ getByRole = _render48.getByRole,
1753
+ getAllByRole = _render48.getAllByRole,
1754
+ queryByRole = _render48.queryByRole,
1755
+ container = _render48.container;
1615
1756
 
1616
1757
  var select = getByRole("combobox");
1617
1758
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -1620,9 +1761,11 @@ describe("Select component tests", function () {
1620
1761
 
1621
1762
  expect(getByRole("listbox").getAttribute("aria-multiselectable")).toBe("true");
1622
1763
 
1623
- _userEvent["default"].click(getAllByRole("option")[10]); // expect(onChange).toHaveBeenCalledWith({ value: ["bilbao"], error: null });
1624
-
1764
+ _userEvent["default"].click(getAllByRole("option")[10]);
1625
1765
 
1766
+ expect(onChange).toHaveBeenCalledWith({
1767
+ value: ["bilbao"]
1768
+ });
1626
1769
  expect(queryByRole("listbox")).toBeTruthy();
1627
1770
  expect(getAllByText("Bilbao").length).toBe(2);
1628
1771
 
@@ -1645,31 +1788,33 @@ describe("Select component tests", function () {
1645
1788
  code: "Enter",
1646
1789
  keyCode: 13,
1647
1790
  charCode: 13
1648
- }); // expect(onChange).toHaveBeenCalledWith({ value: ["bilbao", "guadalquivir"], error: null });
1649
-
1791
+ });
1650
1792
 
1793
+ expect(onChange).toHaveBeenCalledWith({
1794
+ value: ["bilbao", "guadalquivir"]
1795
+ });
1651
1796
  expect(queryByRole("listbox")).toBeTruthy();
1652
1797
  expect(getByText("Bilbao, Guadalquivir")).toBeTruthy();
1653
1798
  expect(getAllByRole("option")[10].getAttribute("aria-selected")).toBe("true");
1654
1799
  expect(getAllByRole("option")[16].getAttribute("aria-selected")).toBe("true");
1655
- expect(submitInput.value).toBe("bilbao, guadalquivir");
1800
+ expect(submitInput.value).toBe("bilbao,guadalquivir");
1656
1801
  });
1657
1802
  test("Grouped Options: Multiple selection - Clear action and selection indicator", function () {
1658
1803
  var onChange = jest.fn();
1659
1804
 
1660
- var _render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1805
+ var _render49 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1661
1806
  label: "test-select-label",
1662
1807
  options: group_options,
1663
1808
  onChange: onChange,
1664
1809
  multiple: true
1665
1810
  })),
1666
- getByText = _render44.getByText,
1667
- queryByText = _render44.queryByText,
1668
- getByRole = _render44.getByRole,
1669
- getAllByRole = _render44.getAllByRole,
1670
- queryByRole = _render44.queryByRole,
1671
- getByTitle = _render44.getByTitle,
1672
- queryByTitle = _render44.queryByTitle;
1811
+ getByText = _render49.getByText,
1812
+ queryByText = _render49.queryByText,
1813
+ getByRole = _render49.getByRole,
1814
+ getAllByRole = _render49.getAllByRole,
1815
+ queryByRole = _render49.queryByRole,
1816
+ getByTitle = _render49.getByTitle,
1817
+ queryByTitle = _render49.queryByTitle;
1673
1818
 
1674
1819
  var select = getByRole("combobox");
1675
1820
 
@@ -1681,9 +1826,11 @@ describe("Select component tests", function () {
1681
1826
 
1682
1827
  _userEvent["default"].click(getAllByRole("option")[13]);
1683
1828
 
1684
- _userEvent["default"].click(getAllByRole("option")[17]); // expect(onChange).toHaveBeenCalledWith({ value: ["blanco", "oviedo", "duero", "ebro"], error: null });
1685
-
1829
+ _userEvent["default"].click(getAllByRole("option")[17]);
1686
1830
 
1831
+ expect(onChange).toHaveBeenCalledWith({
1832
+ value: ["blanco", "oviedo", "duero", "ebro"]
1833
+ });
1687
1834
  expect(queryByRole("listbox")).toBeTruthy();
1688
1835
  expect(getByText("Blanco, Oviedo, Duero, Ebro")).toBeTruthy();
1689
1836
  expect(getByText("4", {
@@ -1700,7 +1847,7 @@ describe("Select component tests", function () {
1700
1847
  test("Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", function () {
1701
1848
  var onChange = jest.fn();
1702
1849
 
1703
- var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1850
+ var _render50 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1704
1851
  label: "test-select-label",
1705
1852
  placeholder: "Choose an option",
1706
1853
  options: group_options,
@@ -1708,10 +1855,10 @@ describe("Select component tests", function () {
1708
1855
  multiple: true,
1709
1856
  optional: true
1710
1857
  })),
1711
- getByText = _render45.getByText,
1712
- getAllByText = _render45.getAllByText,
1713
- getByRole = _render45.getByRole,
1714
- getAllByRole = _render45.getAllByRole;
1858
+ getByText = _render50.getByText,
1859
+ getAllByText = _render50.getAllByText,
1860
+ getByRole = _render50.getByRole,
1861
+ getAllByRole = _render50.getAllByRole;
1715
1862
 
1716
1863
  var select = getByRole("combobox");
1717
1864
  expect(getByText("(Optional)")).toBeTruthy();
@@ -1721,19 +1868,21 @@ describe("Select component tests", function () {
1721
1868
  expect(getAllByText("Choose an option").length).toBe(1);
1722
1869
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("false");
1723
1870
 
1724
- _userEvent["default"].click(getAllByRole("option")[0]); // expect(onChange).toHaveBeenCalledWith({ value: ["azul"], error: null });
1725
-
1871
+ _userEvent["default"].click(getAllByRole("option")[0]);
1726
1872
 
1873
+ expect(onChange).toHaveBeenCalledWith({
1874
+ value: ["azul"]
1875
+ });
1727
1876
  expect(getAllByText("Azul").length).toBe(2);
1728
1877
  });
1729
1878
  test("Grouped Options - If an options was previously selected when its opened (by key press), the visual focus appears always in the selected option", function () {
1730
- var _render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1879
+ var _render51 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1731
1880
  label: "test-select-label",
1732
1881
  options: group_options
1733
1882
  })),
1734
- getByText = _render46.getByText,
1735
- getByRole = _render46.getByRole,
1736
- getAllByRole = _render46.getAllByRole;
1883
+ getByText = _render51.getByText,
1884
+ getByRole = _render51.getByRole,
1885
+ getAllByRole = _render51.getAllByRole;
1737
1886
 
1738
1887
  var select = getByRole("combobox");
1739
1888
 
@@ -1801,14 +1950,13 @@ describe("Select component tests", function () {
1801
1950
  expect(getByText("Verde")).toBeTruthy();
1802
1951
  });
1803
1952
  test("Grouped Options - If an options was previously selected when its opened (by click and key press), the visual focus appears always in the selected option", function () {
1804
- var _render47 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1953
+ var _render52 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1805
1954
  label: "test-select-label",
1806
1955
  options: group_options
1807
1956
  })),
1808
- getByText = _render47.getByText,
1809
- getByRole = _render47.getByRole,
1810
- getAllByRole = _render47.getAllByRole,
1811
- queryByRole = _render47.queryByRole;
1957
+ getByText = _render52.getByText,
1958
+ getByRole = _render52.getByRole,
1959
+ getAllByRole = _render52.getAllByRole;
1812
1960
 
1813
1961
  var select = getByRole("combobox");
1814
1962
 
@@ -1872,29 +2020,38 @@ describe("Select component tests", function () {
1872
2020
 
1873
2021
  expect(getByText("Azul")).toBeTruthy();
1874
2022
  });
1875
- test("Renders with correct aria attributes", function () {
1876
- var _render48 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
2023
+ test("Multiple selection and optional - Clear action cleans every selected option but does not display an error", function () {
2024
+ var onChange = jest.fn();
2025
+
2026
+ var _render53 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1877
2027
  label: "test-select-label",
1878
- placeholder: "Example",
1879
- options: single_options
2028
+ options: single_options,
2029
+ onChange: onChange,
2030
+ multiple: true,
2031
+ optional: true
1880
2032
  })),
1881
- getByText = _render48.getByText,
1882
- getByRole = _render48.getByRole;
2033
+ getByRole = _render53.getByRole,
2034
+ getAllByRole = _render53.getAllByRole,
2035
+ getByTitle = _render53.getByTitle;
1883
2036
 
1884
2037
  var select = getByRole("combobox");
1885
- var label = getByText("test-select-label");
1886
- expect(select.getAttribute("aria-disabled")).toBe("false");
1887
- expect(select.getAttribute("aria-haspopup")).toBe("listbox");
1888
- expect(select.getAttribute("aria-expanded")).toBe("false");
1889
- expect(select.getAttribute("aria-required")).toBe("true");
1890
- expect(select.getAttribute("aria-labelledby")).toBe(label.id);
1891
- expect(select.getAttribute("aria-activedescendant")).toBeNull();
1892
- expect(select.getAttribute("aria-invalid")).toBe("false");
1893
2038
 
1894
2039
  _userEvent["default"].click(select);
1895
2040
 
1896
- var list = getByRole("listbox");
1897
- expect(select.getAttribute("aria-controls")).toBe(list.id);
1898
- expect(list.getAttribute("aria-multiselectable")).toBe("false");
2041
+ _userEvent["default"].click(getAllByRole("option")[5]);
2042
+
2043
+ _userEvent["default"].click(getAllByRole("option")[8]);
2044
+
2045
+ _userEvent["default"].click(getAllByRole("option")[13]);
2046
+
2047
+ expect(onChange).toHaveBeenCalledWith({
2048
+ value: ["6", "9", "14"]
2049
+ });
2050
+
2051
+ _userEvent["default"].click(getByTitle("Clear selection"));
2052
+
2053
+ expect(onChange).toHaveBeenCalledWith({
2054
+ value: []
2055
+ });
1899
2056
  });
1900
2057
  });