@dxc-technology/halstack-react 0.0.0-49c38a4 → 0.0.0-4a67e25

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 (225) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +294 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +121 -123
  5. package/accordion/Accordion.stories.tsx +13 -14
  6. package/accordion/Accordion.test.js +25 -11
  7. package/accordion/types.d.ts +9 -4
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +15 -36
  10. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  11. package/accordion-group/AccordionGroup.test.js +30 -37
  12. package/accordion-group/types.d.ts +14 -3
  13. package/alert/Alert.js +5 -2
  14. package/badge/Badge.d.ts +1 -1
  15. package/badge/Badge.js +5 -3
  16. package/badge/types.d.ts +1 -0
  17. package/bleed/Bleed.js +1 -34
  18. package/bleed/Bleed.stories.tsx +94 -95
  19. package/bleed/types.d.ts +25 -1
  20. package/box/Box.js +23 -33
  21. package/box/types.d.ts +1 -0
  22. package/bulleted-list/BulletedList.d.ts +7 -0
  23. package/bulleted-list/BulletedList.js +123 -0
  24. package/bulleted-list/BulletedList.stories.tsx +200 -0
  25. package/bulleted-list/types.d.ts +11 -0
  26. package/{list → bulleted-list}/types.js +0 -0
  27. package/button/Button.js +53 -68
  28. package/button/Button.stories.tsx +9 -0
  29. package/button/types.d.ts +7 -7
  30. package/card/Card.js +24 -27
  31. package/card/types.d.ts +1 -0
  32. package/checkbox/Checkbox.d.ts +2 -2
  33. package/checkbox/Checkbox.js +106 -109
  34. package/checkbox/Checkbox.stories.tsx +146 -130
  35. package/checkbox/Checkbox.test.js +100 -10
  36. package/checkbox/types.d.ts +13 -5
  37. package/chip/types.d.ts +1 -1
  38. package/common/variables.js +236 -106
  39. package/date-input/DateInput.js +56 -42
  40. package/date-input/DateInput.stories.tsx +19 -8
  41. package/date-input/DateInput.test.js +161 -87
  42. package/date-input/types.d.ts +16 -9
  43. package/dialog/Dialog.js +46 -50
  44. package/dialog/Dialog.stories.tsx +57 -2
  45. package/dialog/Dialog.test.js +34 -4
  46. package/dialog/types.d.ts +3 -2
  47. package/dropdown/Dropdown.d.ts +1 -1
  48. package/dropdown/Dropdown.js +247 -251
  49. package/dropdown/Dropdown.stories.tsx +126 -63
  50. package/dropdown/Dropdown.test.js +504 -108
  51. package/dropdown/DropdownMenu.d.ts +4 -0
  52. package/dropdown/DropdownMenu.js +80 -0
  53. package/dropdown/DropdownMenuItem.d.ts +4 -0
  54. package/dropdown/DropdownMenuItem.js +92 -0
  55. package/dropdown/types.d.ts +25 -5
  56. package/file-input/FileInput.d.ts +2 -2
  57. package/file-input/FileInput.js +183 -222
  58. package/file-input/FileInput.stories.tsx +38 -10
  59. package/file-input/FileInput.test.js +53 -12
  60. package/file-input/FileItem.d.ts +4 -14
  61. package/file-input/FileItem.js +43 -66
  62. package/file-input/types.d.ts +17 -0
  63. package/flex/Flex.d.ts +4 -0
  64. package/flex/Flex.js +69 -0
  65. package/flex/Flex.stories.tsx +103 -0
  66. package/flex/types.d.ts +32 -0
  67. package/{radio → flex}/types.js +0 -0
  68. package/footer/Footer.js +15 -88
  69. package/footer/Footer.stories.tsx +8 -1
  70. package/footer/Icons.js +1 -1
  71. package/footer/types.d.ts +2 -1
  72. package/header/Header.js +95 -114
  73. package/header/Header.stories.tsx +46 -36
  74. package/header/Header.test.js +18 -2
  75. package/header/Icons.js +2 -2
  76. package/header/types.d.ts +3 -2
  77. package/inset/Inset.js +1 -34
  78. package/inset/Inset.stories.tsx +36 -36
  79. package/inset/types.d.ts +25 -1
  80. package/layout/ApplicationLayout.d.ts +16 -6
  81. package/layout/ApplicationLayout.js +71 -131
  82. package/layout/ApplicationLayout.stories.tsx +84 -93
  83. package/layout/Icons.d.ts +5 -0
  84. package/layout/Icons.js +13 -2
  85. package/layout/SidenavContext.d.ts +5 -0
  86. package/layout/SidenavContext.js +19 -0
  87. package/layout/types.d.ts +18 -33
  88. package/link/Link.d.ts +3 -2
  89. package/link/Link.js +58 -75
  90. package/link/Link.stories.tsx +95 -53
  91. package/link/Link.test.js +7 -15
  92. package/link/types.d.ts +7 -23
  93. package/main.d.ts +8 -10
  94. package/main.js +46 -56
  95. package/number-input/NumberInput.js +11 -18
  96. package/number-input/NumberInput.stories.tsx +5 -5
  97. package/number-input/NumberInput.test.js +45 -11
  98. package/number-input/types.d.ts +17 -10
  99. package/package.json +20 -16
  100. package/paginator/Paginator.js +17 -38
  101. package/paginator/Paginator.test.js +43 -1
  102. package/paragraph/Paragraph.d.ts +6 -0
  103. package/paragraph/Paragraph.js +38 -0
  104. package/paragraph/Paragraph.stories.tsx +44 -0
  105. package/password-input/PasswordInput.js +7 -4
  106. package/password-input/PasswordInput.test.js +16 -18
  107. package/password-input/types.d.ts +14 -11
  108. package/progress-bar/ProgressBar.d.ts +2 -2
  109. package/progress-bar/ProgressBar.js +57 -51
  110. package/progress-bar/ProgressBar.stories.jsx +13 -11
  111. package/progress-bar/ProgressBar.test.js +67 -22
  112. package/progress-bar/types.d.ts +3 -4
  113. package/quick-nav/QuickNav.d.ts +4 -0
  114. package/quick-nav/QuickNav.js +117 -0
  115. package/quick-nav/QuickNav.stories.tsx +342 -0
  116. package/quick-nav/types.d.ts +21 -0
  117. package/{row → quick-nav}/types.js +0 -0
  118. package/radio-group/Radio.d.ts +1 -1
  119. package/radio-group/Radio.js +43 -28
  120. package/radio-group/RadioGroup.js +32 -28
  121. package/radio-group/RadioGroup.stories.tsx +5 -0
  122. package/radio-group/RadioGroup.test.js +144 -116
  123. package/radio-group/types.d.ts +79 -2
  124. package/resultsetTable/ResultsetTable.js +1 -3
  125. package/resultsetTable/ResultsetTable.test.js +42 -0
  126. package/select/Icons.d.ts +10 -0
  127. package/select/Icons.js +93 -0
  128. package/select/Listbox.d.ts +4 -0
  129. package/select/Listbox.js +198 -0
  130. package/select/Option.d.ts +4 -0
  131. package/select/Option.js +110 -0
  132. package/select/Select.js +141 -365
  133. package/select/Select.stories.tsx +160 -115
  134. package/select/Select.test.js +609 -276
  135. package/select/types.d.ts +52 -12
  136. package/sidenav/Sidenav.d.ts +6 -5
  137. package/sidenav/Sidenav.js +184 -52
  138. package/sidenav/Sidenav.stories.tsx +154 -156
  139. package/sidenav/Sidenav.test.js +25 -37
  140. package/sidenav/types.d.ts +50 -27
  141. package/slider/Slider.d.ts +2 -2
  142. package/slider/Slider.js +122 -96
  143. package/slider/Slider.stories.tsx +15 -9
  144. package/slider/Slider.test.js +142 -21
  145. package/slider/types.d.ts +10 -2
  146. package/spinner/Spinner.js +1 -1
  147. package/switch/Switch.d.ts +2 -2
  148. package/switch/Switch.js +150 -67
  149. package/switch/Switch.stories.tsx +20 -42
  150. package/switch/Switch.test.js +155 -3
  151. package/switch/types.d.ts +12 -4
  152. package/table/Table.js +1 -1
  153. package/table/Table.test.js +1 -1
  154. package/tabs/Tab.d.ts +4 -0
  155. package/tabs/Tab.js +135 -0
  156. package/tabs/Tabs.d.ts +1 -1
  157. package/tabs/Tabs.js +362 -108
  158. package/tabs/Tabs.stories.tsx +74 -8
  159. package/tabs/Tabs.test.js +241 -13
  160. package/tabs/types.d.ts +19 -5
  161. package/tabs-nav/NavTabs.d.ts +8 -0
  162. package/tabs-nav/NavTabs.js +125 -0
  163. package/tabs-nav/NavTabs.stories.tsx +170 -0
  164. package/tabs-nav/NavTabs.test.js +82 -0
  165. package/tabs-nav/Tab.d.ts +4 -0
  166. package/tabs-nav/Tab.js +130 -0
  167. package/tabs-nav/types.d.ts +53 -0
  168. package/{stack → tabs-nav}/types.js +0 -0
  169. package/tag/Tag.js +15 -20
  170. package/tag/Tag.stories.tsx +12 -8
  171. package/tag/types.d.ts +1 -1
  172. package/text-input/Icons.d.ts +8 -0
  173. package/text-input/Icons.js +60 -0
  174. package/text-input/Suggestion.d.ts +4 -0
  175. package/text-input/Suggestion.js +57 -0
  176. package/text-input/Suggestions.d.ts +4 -0
  177. package/text-input/Suggestions.js +134 -0
  178. package/text-input/TextInput.js +214 -333
  179. package/text-input/TextInput.stories.tsx +199 -192
  180. package/text-input/TextInput.test.js +686 -753
  181. package/text-input/types.d.ts +50 -12
  182. package/textarea/Textarea.js +15 -24
  183. package/textarea/Textarea.stories.jsx +5 -5
  184. package/textarea/Textarea.test.js +37 -36
  185. package/textarea/types.d.ts +18 -11
  186. package/toggle-group/ToggleGroup.d.ts +1 -1
  187. package/toggle-group/ToggleGroup.js +5 -4
  188. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  189. package/toggle-group/ToggleGroup.test.js +35 -4
  190. package/toggle-group/types.d.ts +9 -1
  191. package/typography/Typography.d.ts +4 -0
  192. package/typography/Typography.js +131 -0
  193. package/typography/Typography.stories.tsx +198 -0
  194. package/typography/types.d.ts +18 -0
  195. package/typography/types.js +5 -0
  196. package/useTheme.js +2 -2
  197. package/useTranslatedLabels.d.ts +2 -0
  198. package/useTranslatedLabels.js +20 -0
  199. package/wizard/Wizard.d.ts +1 -1
  200. package/wizard/Wizard.js +58 -54
  201. package/wizard/Wizard.stories.tsx +33 -24
  202. package/wizard/Wizard.test.js +36 -23
  203. package/wizard/types.d.ts +10 -5
  204. package/ThemeContext.d.ts +0 -15
  205. package/ThemeContext.js +0 -235
  206. package/list/List.d.ts +0 -4
  207. package/list/List.js +0 -47
  208. package/list/List.stories.tsx +0 -95
  209. package/list/types.d.ts +0 -7
  210. package/radio/Radio.d.ts +0 -4
  211. package/radio/Radio.js +0 -174
  212. package/radio/Radio.stories.tsx +0 -192
  213. package/radio/Radio.test.js +0 -71
  214. package/radio/types.d.ts +0 -54
  215. package/row/Row.d.ts +0 -3
  216. package/row/Row.js +0 -127
  217. package/row/Row.stories.tsx +0 -237
  218. package/row/types.d.ts +0 -10
  219. package/stack/Stack.d.ts +0 -3
  220. package/stack/Stack.js +0 -97
  221. package/stack/Stack.stories.tsx +0 -164
  222. package/stack/types.d.ts +0 -9
  223. package/text/Text.d.ts +0 -7
  224. package/text/Text.js +0 -30
  225. package/text/Text.stories.tsx +0 -19
@@ -2,6 +2,10 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
+
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+
5
9
  var _react = _interopRequireDefault(require("react"));
6
10
 
7
11
  var _Select = _interopRequireDefault(require("./Select"));
@@ -10,6 +14,44 @@ var _react2 = require("@testing-library/react");
10
14
 
11
15
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
12
16
 
17
+ // Mocking DOMRect for Radix Primitive Popover
18
+ global.globalThis = global;
19
+
20
+ global.ResizeObserver = /*#__PURE__*/function () {
21
+ function ResizeObserver(cb) {
22
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
23
+ this.cb = cb;
24
+ }
25
+
26
+ (0, _createClass2["default"])(ResizeObserver, [{
27
+ key: "observe",
28
+ value: function observe() {
29
+ this.cb([{
30
+ borderBoxSize: {
31
+ inlineSize: 0,
32
+ blockSize: 0
33
+ }
34
+ }]);
35
+ }
36
+ }, {
37
+ key: "unobserve",
38
+ value: function unobserve() {}
39
+ }]);
40
+ return ResizeObserver;
41
+ }();
42
+
43
+ global.DOMRect = {
44
+ fromRect: function fromRect() {
45
+ return {
46
+ top: 0,
47
+ left: 0,
48
+ bottom: 0,
49
+ right: 0,
50
+ width: 0,
51
+ height: 0
52
+ };
53
+ }
54
+ };
13
55
  var single_options = [{
14
56
  label: "Option 01",
15
57
  value: "1"
@@ -264,7 +306,7 @@ var grouped_icon_options = [{
264
306
  }]
265
307
  }];
266
308
  describe("Select component tests", function () {
267
- test("Renders with correct label", function () {
309
+ test("When clicking the label, the focus goes to the select", function () {
268
310
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
269
311
  label: "test-select-label",
270
312
  helperText: "test-select-helper-text",
@@ -275,60 +317,153 @@ describe("Select component tests", function () {
275
317
 
276
318
  var select = getByRole("combobox");
277
319
  var label = getByText("test-select-label");
278
- expect(label).toBeTruthy();
279
320
 
280
321
  _userEvent["default"].click(label);
281
322
 
282
323
  expect(document.activeElement).toEqual(select);
283
324
  });
284
- test("Renders with correct helper text and placeholder", function () {
325
+ test("Renders with correct aria attributes when is in error state", function () {
285
326
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
286
- label: "test-select-label",
287
- helperText: "test-select-helper-text",
288
- placeholder: "Example text"
327
+ label: "Error label",
328
+ error: "Error message."
289
329
  })),
290
- getByText = _render2.getByText;
330
+ getByText = _render2.getByText,
331
+ getByRole = _render2.getByRole;
291
332
 
292
- expect(getByText("test-select-helper-text")).toBeTruthy();
293
- expect(getByText("Example text")).toBeTruthy();
333
+ var select = getByRole("combobox");
334
+ var errorMessage = getByText("Error message.");
335
+ expect(errorMessage).toBeTruthy();
336
+ expect(select.getAttribute("aria-errormessage")).toBe(errorMessage.id);
337
+ expect(select.getAttribute("aria-invalid")).toBe("true");
338
+ expect(errorMessage.getAttribute("aria-live")).toBe("assertive");
294
339
  });
295
- test("Renders with correct optional label", function () {
340
+ test("Renders with correct aria attributes", function () {
296
341
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
297
342
  label: "test-select-label",
298
- optional: true
343
+ placeholder: "Example",
344
+ options: single_options
299
345
  })),
300
- getByText = _render3.getByText;
346
+ getByText = _render3.getByText,
347
+ getByRole = _render3.getByRole;
301
348
 
302
- expect(getByText("test-select-label")).toBeTruthy();
303
- expect(getByText("(Optional)")).toBeTruthy();
349
+ var select = getByRole("combobox");
350
+ var label = getByText("test-select-label");
351
+ expect(select.getAttribute("aria-disabled")).toBe("false");
352
+ expect(select.getAttribute("aria-haspopup")).toBe("listbox");
353
+ expect(select.getAttribute("aria-expanded")).toBe("false");
354
+ expect(select.getAttribute("aria-required")).toBe("true");
355
+ expect(select.getAttribute("aria-labelledby")).toBe(label.id);
356
+ expect(select.getAttribute("aria-activedescendant")).toBeNull();
357
+ expect(select.getAttribute("aria-invalid")).toBe("false");
358
+
359
+ _userEvent["default"].click(select);
360
+
361
+ var list = getByRole("listbox");
362
+ expect(select.getAttribute("aria-controls")).toBe(list.id);
363
+ expect(list.getAttribute("aria-multiselectable")).toBe("false");
304
364
  });
305
- test("Renders with error message and correct aria attributes", function () {
365
+ test("Single selection: Renders with correct default value", function () {
306
366
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
307
- label: "Error label",
308
- error: "Error message."
367
+ label: "test-select-label",
368
+ name: "test",
369
+ defaultValue: "4",
370
+ options: single_options
309
371
  })),
310
372
  getByText = _render4.getByText,
311
- getByRole = _render4.getByRole;
373
+ getByRole = _render4.getByRole,
374
+ getAllByRole = _render4.getAllByRole,
375
+ queryByRole = _render4.queryByRole,
376
+ container = _render4.container;
312
377
 
313
378
  var select = getByRole("combobox");
314
- var errorMessage = getByText("Error message.");
315
- expect(errorMessage).toBeTruthy();
316
- expect(select.getAttribute("aria-errormessage")).toBe(errorMessage.id);
317
- expect(select.getAttribute("aria-invalid")).toBe("true");
318
- expect(errorMessage.getAttribute("aria-live")).toBe("assertive");
379
+ var submitInput = container.querySelector("input[name=\"test\"]");
380
+ expect(queryByRole("listbox")).toBeFalsy();
381
+ expect(getByText("Option 04")).toBeTruthy();
382
+ expect(submitInput.value).toBe("4");
383
+
384
+ _userEvent["default"].click(select);
385
+
386
+ expect(getAllByRole("option")[3].getAttribute("aria-selected")).toBe("true");
387
+
388
+ _userEvent["default"].click(getAllByRole("option")[7]);
389
+
390
+ expect(getByText("Option 08")).toBeTruthy();
391
+ expect(submitInput.value).toBe("8");
319
392
  });
320
- test("Disabled select - Clear all options action must be shown but not clickable", function () {
393
+ test("Multiple selection: Renders with correct default value", function () {
321
394
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
322
395
  label: "test-select-label",
323
- value: ["1", "2"],
396
+ name: "test",
397
+ defaultValue: ["4", "2", "6"],
324
398
  options: single_options,
325
- disabled: true,
326
- searchable: true,
327
399
  multiple: true
328
400
  })),
329
- getByRole = _render5.getByRole,
330
401
  getByText = _render5.getByText,
331
- queryByRole = _render5.queryByRole;
402
+ getByRole = _render5.getByRole,
403
+ getAllByRole = _render5.getAllByRole,
404
+ queryByRole = _render5.queryByRole,
405
+ container = _render5.container;
406
+
407
+ var select = getByRole("combobox");
408
+ var submitInput = container.querySelector("input[name=\"test\"]");
409
+ expect(queryByRole("listbox")).toBeFalsy();
410
+ expect(getByText("Option 02, Option 04, Option 06")).toBeTruthy();
411
+ expect(submitInput.value).toBe("4,2,6");
412
+
413
+ _userEvent["default"].click(select);
414
+
415
+ expect(getAllByRole("option")[3].getAttribute("aria-selected")).toBe("true");
416
+ expect(getAllByRole("option")[1].getAttribute("aria-selected")).toBe("true");
417
+ expect(getAllByRole("option")[5].getAttribute("aria-selected")).toBe("true");
418
+
419
+ _userEvent["default"].click(getAllByRole("option")[2]);
420
+
421
+ expect(getByText("Option 02, Option 03, Option 04, Option 06")).toBeTruthy();
422
+ expect(submitInput.value).toBe("4,2,6,3");
423
+ });
424
+ test("Sends its value when submitted", function () {
425
+ var handlerOnSubmit = jest.fn(function (e) {
426
+ e.preventDefault();
427
+ var formData = new FormData(e.target);
428
+ var formProps = Object.fromEntries(formData);
429
+ expect(formProps).toStrictEqual({
430
+ options: "1,5,3"
431
+ });
432
+ });
433
+
434
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
435
+ onSubmit: handlerOnSubmit
436
+ }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
437
+ name: "options",
438
+ label: "test-select-label",
439
+ defaultValue: ["1", "5"],
440
+ options: single_options,
441
+ multiple: true
442
+ }), /*#__PURE__*/_react["default"].createElement("button", {
443
+ type: "submit"
444
+ }, "Submit"))),
445
+ getByText = _render6.getByText,
446
+ getByRole = _render6.getByRole,
447
+ getAllByRole = _render6.getAllByRole;
448
+
449
+ var select = getByRole("combobox");
450
+ var submit = getByText("Submit");
451
+
452
+ _userEvent["default"].click(select);
453
+
454
+ _userEvent["default"].click(getAllByRole("option")[2]);
455
+
456
+ _userEvent["default"].click(submit);
457
+ });
458
+ test("Disabled select - Cannot gain focus or open the listbox via click", function () {
459
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
460
+ label: "test-select-label",
461
+ value: ["1", "2"],
462
+ options: single_options,
463
+ disabled: true
464
+ })),
465
+ getByRole = _render7.getByRole,
466
+ queryByRole = _render7.queryByRole;
332
467
 
333
468
  var select = getByRole("combobox");
334
469
  expect(select.getAttribute("aria-disabled")).toBe("true");
@@ -336,13 +471,50 @@ describe("Select component tests", function () {
336
471
  _userEvent["default"].click(select);
337
472
 
338
473
  expect(queryByRole("listbox")).toBeFalsy();
474
+ expect(document.activeElement === select).toBeFalsy();
475
+ });
476
+ test("Disabled select - Clear all options action must be shown but not clickable", function () {
477
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
478
+ label: "test-select-label",
479
+ value: ["1", "2"],
480
+ options: single_options,
481
+ disabled: true,
482
+ searchable: true,
483
+ multiple: true
484
+ })),
485
+ getByRole = _render8.getByRole,
486
+ getByText = _render8.getByText;
339
487
 
340
488
  _userEvent["default"].click(getByRole("button"));
341
489
 
342
490
  expect(getByText("Option 01, Option 02")).toBeTruthy();
343
491
  });
344
- test("Focused select does not open the listbox", function () {
345
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
492
+ test("Disabled select - Does not call onBlur event", function () {
493
+ var onBlur = jest.fn();
494
+
495
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
496
+ label: "test-select-label",
497
+ options: single_options,
498
+ disabled: true,
499
+ onBlur: onBlur
500
+ })),
501
+ getByRole = _render9.getByRole;
502
+
503
+ var select = getByRole("combobox");
504
+
505
+ _userEvent["default"].click(select);
506
+
507
+ _react2.fireEvent.keyDown(getByRole("combobox"), {
508
+ key: "Tab",
509
+ code: "Tab",
510
+ keyCode: 9,
511
+ charCode: 9
512
+ });
513
+
514
+ expect(onBlur).not.toHaveBeenCalled();
515
+ });
516
+ test("Disabled select - When the component gains the focus, the listbox does not open", function () {
517
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
346
518
  label: "test-select-label",
347
519
  value: ["1", "2"],
348
520
  options: single_options,
@@ -350,27 +522,52 @@ describe("Select component tests", function () {
350
522
  searchable: true,
351
523
  multiple: true
352
524
  })),
353
- getByRole = _render6.getByRole,
354
- queryByRole = _render6.queryByRole;
525
+ getByRole = _render10.getByRole,
526
+ queryByRole = _render10.queryByRole;
355
527
 
356
528
  var select = getByRole("combobox");
357
529
 
358
530
  _react2.fireEvent.focus(select);
359
531
 
360
532
  expect(queryByRole("listbox")).toBeFalsy();
533
+ expect(document.activeElement === select).toBeFalsy();
361
534
  });
362
- test("Controlled - Not optional constraint", function () {
535
+ test("Disabled select - Doesn't send its value when submitted", function () {
536
+ var handlerOnSubmit = jest.fn(function (e) {
537
+ e.preventDefault();
538
+ var formData = new FormData(e.target);
539
+ var formProps = Object.fromEntries(formData);
540
+ expect(formProps).toStrictEqual({});
541
+ });
542
+
543
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
544
+ onSubmit: handlerOnSubmit
545
+ }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
546
+ label: "test-select-label",
547
+ defaultValue: "1",
548
+ options: single_options,
549
+ disabled: true
550
+ }), /*#__PURE__*/_react["default"].createElement("button", {
551
+ type: "submit"
552
+ }, "Submit"))),
553
+ getByText = _render11.getByText;
554
+
555
+ var submit = getByText("Submit");
556
+
557
+ _userEvent["default"].click(submit);
558
+ });
559
+ test("Controlled - Single selection - Not optional constraint", function () {
363
560
  var onChange = jest.fn();
364
561
  var onBlur = jest.fn();
365
562
 
366
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
563
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
367
564
  label: "test-select-label",
368
565
  options: single_options,
369
566
  onChange: onChange,
370
567
  onBlur: onBlur
371
568
  })),
372
- getByRole = _render7.getByRole,
373
- getAllByRole = _render7.getAllByRole;
569
+ getByRole = _render12.getByRole,
570
+ getAllByRole = _render12.getAllByRole;
374
571
 
375
572
  var select = getByRole("combobox");
376
573
  expect(select.getAttribute("aria-required")).toBe("true");
@@ -391,9 +588,32 @@ describe("Select component tests", function () {
391
588
 
392
589
  expect(onChange).toHaveBeenCalled();
393
590
  expect(onChange).toHaveBeenCalledWith({
394
- value: "1",
395
- error: null
591
+ value: "1"
592
+ });
593
+
594
+ _react2.fireEvent.blur(select);
595
+
596
+ expect(onBlur).toHaveBeenCalled();
597
+ expect(onBlur).toHaveBeenCalledWith({
598
+ value: "1"
396
599
  });
600
+ });
601
+ test("Controlled - Multiple selection - Not optional constraint", function () {
602
+ var onChange = jest.fn();
603
+ var onBlur = jest.fn();
604
+
605
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
606
+ label: "test-select-label",
607
+ options: single_options,
608
+ onChange: onChange,
609
+ onBlur: onBlur,
610
+ multiple: true
611
+ })),
612
+ getByRole = _render13.getByRole,
613
+ getAllByRole = _render13.getAllByRole;
614
+
615
+ var select = getByRole("combobox");
616
+ expect(select.getAttribute("aria-required")).toBe("true");
397
617
 
398
618
  _react2.fireEvent.focus(select);
399
619
 
@@ -401,22 +621,60 @@ describe("Select component tests", function () {
401
621
 
402
622
  expect(onBlur).toHaveBeenCalled();
403
623
  expect(onBlur).toHaveBeenCalledWith({
404
- value: "1",
405
- error: null
624
+ value: [],
625
+ error: "This field is required. Please, enter a value."
626
+ });
627
+
628
+ _userEvent["default"].click(select);
629
+
630
+ _userEvent["default"].click(getAllByRole("option")[0]);
631
+
632
+ _userEvent["default"].click(getAllByRole("option")[1]);
633
+
634
+ expect(onChange).toHaveBeenCalled();
635
+ expect(onChange).toHaveBeenCalledWith({
636
+ value: ["1", "2"]
637
+ });
638
+
639
+ _react2.fireEvent.blur(select);
640
+
641
+ expect(onBlur).toHaveBeenCalled();
642
+ expect(onBlur).toHaveBeenCalledWith({
643
+ value: ["1", "2"]
644
+ });
645
+
646
+ _userEvent["default"].click(select);
647
+
648
+ _userEvent["default"].click(getAllByRole("option")[0]);
649
+
650
+ _userEvent["default"].click(getAllByRole("option")[1]);
651
+
652
+ expect(onChange).toHaveBeenCalled();
653
+ expect(onChange).toHaveBeenCalledWith({
654
+ value: [],
655
+ error: "This field is required. Please, enter a value."
656
+ });
657
+
658
+ _react2.fireEvent.blur(select);
659
+
660
+ expect(onBlur).toHaveBeenCalled();
661
+ expect(onBlur).toHaveBeenCalledWith({
662
+ value: [],
663
+ error: "This field is required. Please, enter a value."
406
664
  });
407
665
  });
408
666
  test("Controlled - Optional constraint", function () {
409
667
  var onChange = jest.fn();
410
668
  var onBlur = jest.fn();
411
669
 
412
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
670
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
413
671
  label: "test-select-label",
414
672
  options: single_options,
415
673
  onChange: onChange,
416
674
  onBlur: onBlur,
417
675
  optional: true
418
676
  })),
419
- getByRole = _render8.getByRole;
677
+ getByRole = _render14.getByRole;
420
678
 
421
679
  var select = getByRole("combobox");
422
680
  expect(select.getAttribute("aria-required")).toBe("false");
@@ -427,20 +685,19 @@ describe("Select component tests", function () {
427
685
 
428
686
  expect(onBlur).toHaveBeenCalled();
429
687
  expect(onBlur).toHaveBeenCalledWith({
430
- value: "",
431
- error: null
688
+ value: ""
432
689
  });
433
690
  expect(select.getAttribute("aria-invalid")).toBe("false");
434
691
  });
435
692
  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"], {
693
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
437
694
  label: "test-select-label",
438
695
  options: single_options
439
696
  })),
440
- getByText = _render9.getByText,
441
- getByRole = _render9.getByRole,
442
- getAllByRole = _render9.getAllByRole,
443
- queryByRole = _render9.queryByRole;
697
+ getByText = _render15.getByText,
698
+ getByRole = _render15.getByRole,
699
+ getAllByRole = _render15.getAllByRole,
700
+ queryByRole = _render15.queryByRole;
444
701
 
445
702
  var select = getByRole("combobox");
446
703
 
@@ -460,12 +717,12 @@ describe("Select component tests", function () {
460
717
  expect(select.getAttribute("aria-expanded")).toBe("false");
461
718
  });
462
719
  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"], {
720
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
464
721
  label: "test-select-label",
465
722
  options: []
466
723
  })),
467
- getByRole = _render10.getByRole,
468
- queryByRole = _render10.queryByRole;
724
+ getByRole = _render16.getByRole,
725
+ queryByRole = _render16.queryByRole;
469
726
 
470
727
  var select = getByRole("combobox");
471
728
 
@@ -477,17 +734,17 @@ describe("Select component tests", function () {
477
734
  test("Non-Grouped Options - Click in an option selects it and closes the listbox", function () {
478
735
  var onChange = jest.fn();
479
736
 
480
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
737
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
481
738
  name: "test",
482
739
  label: "test-select-label",
483
740
  options: single_options,
484
741
  onChange: onChange
485
742
  })),
486
- getByText = _render11.getByText,
487
- getByRole = _render11.getByRole,
488
- getAllByRole = _render11.getAllByRole,
489
- queryByRole = _render11.queryByRole,
490
- container = _render11.container;
743
+ getByText = _render17.getByText,
744
+ getByRole = _render17.getByRole,
745
+ getAllByRole = _render17.getAllByRole,
746
+ queryByRole = _render17.queryByRole,
747
+ container = _render17.container;
491
748
 
492
749
  var select = getByRole("combobox");
493
750
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -497,8 +754,7 @@ describe("Select component tests", function () {
497
754
  _userEvent["default"].click(getAllByRole("option")[2]);
498
755
 
499
756
  expect(onChange).toHaveBeenCalledWith({
500
- value: "3",
501
- error: null
757
+ value: "3"
502
758
  });
503
759
  expect(queryByRole("listbox")).toBeFalsy();
504
760
  expect(getByText("Option 03")).toBeTruthy();
@@ -508,19 +764,19 @@ describe("Select component tests", function () {
508
764
  expect(getAllByRole("option")[2].getAttribute("aria-selected")).toBe("true");
509
765
  expect(submitInput.value).toBe("3");
510
766
  });
511
- test("Non-Grouped Options - Optional renders an empty first option with the placeholder as its label", function () {
767
+ test("Non-Grouped Options - Optional renders an empty first option (selected by default) with the placeholder as its label", function () {
512
768
  var onChange = jest.fn();
513
769
 
514
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
770
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
515
771
  label: "test-select-label",
516
772
  placeholder: "Choose an option",
517
773
  options: single_options,
518
774
  onChange: onChange,
519
775
  optional: true
520
776
  })),
521
- getByRole = _render12.getByRole,
522
- getAllByRole = _render12.getAllByRole,
523
- getAllByText = _render12.getAllByText;
777
+ getByRole = _render18.getByRole,
778
+ getAllByRole = _render18.getAllByRole,
779
+ getAllByText = _render18.getAllByText;
524
780
 
525
781
  var select = getByRole("combobox");
526
782
 
@@ -532,8 +788,7 @@ describe("Select component tests", function () {
532
788
  _userEvent["default"].click(getAllByRole("option")[0]);
533
789
 
534
790
  expect(onChange).toHaveBeenCalledWith({
535
- value: "",
536
- error: null
791
+ value: ""
537
792
  });
538
793
  expect(getAllByText("Choose an option").length).toBe(1);
539
794
 
@@ -554,8 +809,7 @@ describe("Select component tests", function () {
554
809
  });
555
810
 
556
811
  expect(onChange).toHaveBeenCalledWith({
557
- value: "",
558
- error: null
812
+ value: ""
559
813
  });
560
814
  expect(getAllByText("Choose an option").length).toBe(1);
561
815
 
@@ -568,13 +822,42 @@ describe("Select component tests", function () {
568
822
 
569
823
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
570
824
  });
825
+ test("Non-Grouped Options - Filtering options never affects the optional item until there are no coincidence", function () {
826
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
827
+ label: "test-select-label",
828
+ placeholder: "Placeholder example",
829
+ options: single_options,
830
+ optional: true,
831
+ searchable: true
832
+ })),
833
+ getByRole = _render19.getByRole,
834
+ getAllByRole = _render19.getAllByRole,
835
+ getByText = _render19.getByText,
836
+ queryByText = _render19.queryByText,
837
+ container = _render19.container;
838
+
839
+ var select = getByRole("combobox");
840
+ var searchInput = container.querySelectorAll("input")[1];
841
+
842
+ _userEvent["default"].click(select);
843
+
844
+ _userEvent["default"].type(searchInput, "1");
845
+
846
+ expect(getByText("Placeholder example")).toBeTruthy();
847
+ expect(getAllByRole("option").length).toBe(12);
848
+
849
+ _userEvent["default"].type(searchInput, "123");
850
+
851
+ expect(queryByText("Placeholder example")).toBeFalsy();
852
+ expect(getByText("No matches found")).toBeTruthy();
853
+ });
571
854
  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"], {
855
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
573
856
  label: "test-select-label",
574
857
  options: svg_icon_options
575
858
  })),
576
- getByRole = _render13.getByRole,
577
- getAllByRole = _render13.getAllByRole;
859
+ getByRole = _render20.getByRole,
860
+ getAllByRole = _render20.getAllByRole;
578
861
 
579
862
  var select = getByRole("combobox");
580
863
 
@@ -584,13 +867,13 @@ describe("Select component tests", function () {
584
867
  expect(getAllByRole("option").length).toBe(5);
585
868
  });
586
869
  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"], {
870
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
588
871
  label: "test-select-label",
589
872
  options: url_icon_options,
590
873
  optional: true
591
874
  })),
592
- getByRole = _render14.getByRole,
593
- getAllByRole = _render14.getAllByRole;
875
+ getByRole = _render21.getByRole,
876
+ getAllByRole = _render21.getAllByRole;
594
877
 
595
878
  var select = getByRole("combobox");
596
879
 
@@ -600,12 +883,12 @@ describe("Select component tests", function () {
600
883
  expect(getAllByRole("option").length).toBe(6);
601
884
  });
602
885
  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"], {
886
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
604
887
  label: "test-select-label",
605
888
  options: single_options
606
889
  })),
607
- getByRole = _render15.getByRole,
608
- queryByRole = _render15.queryByRole;
890
+ getByRole = _render22.getByRole,
891
+ queryByRole = _render22.queryByRole;
609
892
 
610
893
  var select = getByRole("combobox");
611
894
 
@@ -620,12 +903,12 @@ describe("Select component tests", function () {
620
903
  expect(select.getAttribute("aria-activedescendant")).toBe("option-19");
621
904
  });
622
905
  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"], {
906
+ var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
624
907
  label: "test-select-label",
625
908
  options: single_options
626
909
  })),
627
- getByRole = _render16.getByRole,
628
- queryByRole = _render16.queryByRole;
910
+ getByRole = _render23.getByRole,
911
+ queryByRole = _render23.queryByRole;
629
912
 
630
913
  var select = getByRole("combobox");
631
914
 
@@ -647,12 +930,12 @@ describe("Select component tests", function () {
647
930
  expect(select.getAttribute("aria-activedescendant")).toBe("option-19");
648
931
  });
649
932
  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"], {
933
+ var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
651
934
  label: "test-select-label",
652
935
  options: single_options
653
936
  })),
654
- getByRole = _render17.getByRole,
655
- queryByRole = _render17.queryByRole;
937
+ getByRole = _render24.getByRole,
938
+ queryByRole = _render24.queryByRole;
656
939
 
657
940
  var select = getByRole("combobox");
658
941
 
@@ -667,12 +950,12 @@ describe("Select component tests", function () {
667
950
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
668
951
  });
669
952
  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"], {
953
+ var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
671
954
  label: "test-select-label",
672
955
  options: single_options
673
956
  })),
674
- getByRole = _render18.getByRole,
675
- queryByRole = _render18.queryByRole;
957
+ getByRole = _render25.getByRole,
958
+ queryByRole = _render25.queryByRole;
676
959
 
677
960
  var select = getByRole("combobox");
678
961
 
@@ -696,16 +979,16 @@ describe("Select component tests", function () {
696
979
  test("Non-Grouped Options: Enter key - Selects the visually focused option and closes the listbox", function () {
697
980
  var onChange = jest.fn();
698
981
 
699
- var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
982
+ var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
700
983
  label: "test-select-label",
701
984
  options: single_options,
702
985
  onChange: onChange,
703
986
  optional: true
704
987
  })),
705
- getByText = _render19.getByText,
706
- getByRole = _render19.getByRole,
707
- getAllByRole = _render19.getAllByRole,
708
- queryByRole = _render19.queryByRole;
988
+ getByText = _render26.getByText,
989
+ getByRole = _render26.getByRole,
990
+ getAllByRole = _render26.getAllByRole,
991
+ queryByRole = _render26.queryByRole;
709
992
 
710
993
  var select = getByRole("combobox");
711
994
 
@@ -745,8 +1028,7 @@ describe("Select component tests", function () {
745
1028
  });
746
1029
 
747
1030
  expect(onChange).toHaveBeenCalledWith({
748
- value: "20",
749
- error: null
1031
+ value: "20"
750
1032
  });
751
1033
  expect(queryByRole("listbox")).toBeFalsy();
752
1034
  expect(getByText("Option 20")).toBeTruthy();
@@ -758,17 +1040,17 @@ describe("Select component tests", function () {
758
1040
  test("Non-Grouped Options: Searchable - Displays an input for filtering the list of options", function () {
759
1041
  var onChange = jest.fn();
760
1042
 
761
- var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1043
+ var _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
762
1044
  label: "test-select-label",
763
1045
  options: single_options,
764
1046
  onChange: onChange,
765
1047
  searchable: true
766
1048
  })),
767
- container = _render20.container,
768
- getByText = _render20.getByText,
769
- getByRole = _render20.getByRole,
770
- getAllByRole = _render20.getAllByRole,
771
- queryByRole = _render20.queryByRole;
1049
+ container = _render27.container,
1050
+ getByText = _render27.getByText,
1051
+ getByRole = _render27.getByRole,
1052
+ getAllByRole = _render27.getAllByRole,
1053
+ queryByRole = _render27.queryByRole;
772
1054
 
773
1055
  var select = getByRole("combobox");
774
1056
  var searchInput = container.querySelectorAll("input")[1];
@@ -782,8 +1064,7 @@ describe("Select component tests", function () {
782
1064
  _userEvent["default"].click(getByRole("option"));
783
1065
 
784
1066
  expect(onChange).toHaveBeenCalledWith({
785
- value: "8",
786
- error: null
1067
+ value: "8"
787
1068
  });
788
1069
  expect(queryByRole("listbox")).toBeFalsy();
789
1070
  expect(getByText("Option 08")).toBeTruthy();
@@ -796,15 +1077,15 @@ describe("Select component tests", function () {
796
1077
  test("Non-Grouped Options: Searchable - Displays 'No matches found' when there are no filtering results", function () {
797
1078
  var onChange = jest.fn();
798
1079
 
799
- var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1080
+ var _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
800
1081
  label: "test-select-label",
801
1082
  options: single_options,
802
1083
  onChange: onChange,
803
1084
  searchable: true
804
1085
  })),
805
- container = _render21.container,
806
- getByText = _render21.getByText,
807
- getByRole = _render21.getByRole;
1086
+ container = _render28.container,
1087
+ getByText = _render28.getByText,
1088
+ getByRole = _render28.getByRole;
808
1089
 
809
1090
  var select = getByRole("combobox");
810
1091
  var searchInput = container.querySelectorAll("input")[1];
@@ -820,16 +1101,16 @@ describe("Select component tests", function () {
820
1101
  test("Non-Grouped Options: Searchable - Clicking the select, when the list is open, clears the search value", function () {
821
1102
  var onChange = jest.fn();
822
1103
 
823
- var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1104
+ var _render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
824
1105
  label: "test-select-label",
825
1106
  options: single_options,
826
1107
  onChange: onChange,
827
1108
  searchable: true
828
1109
  })),
829
- container = _render22.container,
830
- getByText = _render22.getByText,
831
- getByRole = _render22.getByRole,
832
- getAllByRole = _render22.getAllByRole;
1110
+ container = _render29.container,
1111
+ getByText = _render29.getByText,
1112
+ getByRole = _render29.getByRole,
1113
+ getAllByRole = _render29.getAllByRole;
833
1114
 
834
1115
  var select = getByRole("combobox");
835
1116
  var searchInput = container.querySelectorAll("input")[1];
@@ -852,15 +1133,15 @@ describe("Select component tests", function () {
852
1133
  test("Non-Grouped Options: Searchable - Writing displays the listbox, if it was not open", function () {
853
1134
  var onChange = jest.fn();
854
1135
 
855
- var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1136
+ var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
856
1137
  label: "test-select-label",
857
1138
  options: single_options,
858
1139
  onChange: onChange,
859
1140
  searchable: true
860
1141
  })),
861
- container = _render23.container,
862
- getByRole = _render23.getByRole,
863
- queryByRole = _render23.queryByRole;
1142
+ container = _render30.container,
1143
+ getByRole = _render30.getByRole,
1144
+ queryByRole = _render30.queryByRole;
864
1145
 
865
1146
  var select = getByRole("combobox");
866
1147
  var searchInput = container.querySelectorAll("input")[1];
@@ -878,15 +1159,15 @@ describe("Select component tests", function () {
878
1159
  test("Non-Grouped Options: Searchable - Key Esc cleans the search value and closes the options", function () {
879
1160
  var onChange = jest.fn();
880
1161
 
881
- var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1162
+ var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
882
1163
  label: "test-select-label",
883
1164
  options: single_options,
884
1165
  onChange: onChange,
885
1166
  searchable: true
886
1167
  })),
887
- container = _render24.container,
888
- getByRole = _render24.getByRole,
889
- queryByRole = _render24.queryByRole;
1168
+ container = _render31.container,
1169
+ getByRole = _render31.getByRole,
1170
+ queryByRole = _render31.queryByRole;
890
1171
 
891
1172
  var select = getByRole("combobox");
892
1173
  var searchInput = container.querySelectorAll("input")[1];
@@ -906,16 +1187,16 @@ describe("Select component tests", function () {
906
1187
  test("Non-Grouped Options: Searchable - While user types, a clear action is displayed for cleaning the search value", function () {
907
1188
  var onChange = jest.fn();
908
1189
 
909
- var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1190
+ var _render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
910
1191
  label: "test-select-label",
911
1192
  options: single_options,
912
1193
  onChange: onChange,
913
1194
  searchable: true
914
1195
  })),
915
- container = _render25.container,
916
- getByRole = _render25.getByRole,
917
- getAllByRole = _render25.getAllByRole,
918
- queryByTitle = _render25.queryByTitle;
1196
+ container = _render32.container,
1197
+ getByRole = _render32.getByRole,
1198
+ getAllByRole = _render32.getAllByRole,
1199
+ queryByTitle = _render32.queryByTitle;
919
1200
 
920
1201
  var searchInput = container.querySelectorAll("input")[1];
921
1202
 
@@ -935,19 +1216,19 @@ describe("Select component tests", function () {
935
1216
  test("Non-Grouped Options: Multiple selection - Displays a checkbox per option and enables the multi-selection", function () {
936
1217
  var onChange = jest.fn();
937
1218
 
938
- var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1219
+ var _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
939
1220
  name: "test",
940
1221
  label: "test-select-label",
941
1222
  options: single_options,
942
1223
  onChange: onChange,
943
1224
  multiple: true
944
1225
  })),
945
- getByText = _render26.getByText,
946
- getAllByText = _render26.getAllByText,
947
- getByRole = _render26.getByRole,
948
- getAllByRole = _render26.getAllByRole,
949
- queryByRole = _render26.queryByRole,
950
- container = _render26.container;
1226
+ getByText = _render33.getByText,
1227
+ getAllByText = _render33.getAllByText,
1228
+ getByRole = _render33.getByRole,
1229
+ getAllByRole = _render33.getAllByRole,
1230
+ queryByRole = _render33.queryByRole,
1231
+ container = _render33.container;
951
1232
 
952
1233
  var select = getByRole("combobox");
953
1234
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -956,9 +1237,11 @@ describe("Select component tests", function () {
956
1237
 
957
1238
  expect(getByRole("listbox").getAttribute("aria-multiselectable")).toBe("true");
958
1239
 
959
- _userEvent["default"].click(getAllByRole("option")[10]); // expect(onChange).toHaveBeenCalledWith({ value: ["11"], error: null });
960
-
1240
+ _userEvent["default"].click(getAllByRole("option")[10]);
961
1241
 
1242
+ expect(onChange).toHaveBeenCalledWith({
1243
+ value: ["11"]
1244
+ });
962
1245
  expect(queryByRole("listbox")).toBeTruthy();
963
1246
  expect(getAllByText("Option 11").length).toBe(2);
964
1247
 
@@ -981,31 +1264,33 @@ describe("Select component tests", function () {
981
1264
  code: "Enter",
982
1265
  keyCode: 13,
983
1266
  charCode: 13
984
- }); // expect(onChange).toHaveBeenCalledWith({ value: ["11", "19"], error: null });
985
-
1267
+ });
986
1268
 
1269
+ expect(onChange).toHaveBeenCalledWith({
1270
+ value: ["11", "19"]
1271
+ });
987
1272
  expect(queryByRole("listbox")).toBeTruthy();
988
1273
  expect(getByText("Option 11, Option 19")).toBeTruthy();
989
1274
  expect(getAllByRole("option")[10].getAttribute("aria-selected")).toBe("true");
990
1275
  expect(getAllByRole("option")[18].getAttribute("aria-selected")).toBe("true");
991
- expect(submitInput.value).toBe("11, 19");
1276
+ expect(submitInput.value).toBe("11,19");
992
1277
  });
993
1278
  test("Non-Grouped Options: Multiple selection - Clear action and selection indicator", function () {
994
1279
  var onChange = jest.fn();
995
1280
 
996
- var _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1281
+ var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
997
1282
  label: "test-select-label",
998
1283
  options: single_options,
999
1284
  onChange: onChange,
1000
1285
  multiple: true
1001
1286
  })),
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;
1287
+ getByText = _render34.getByText,
1288
+ queryByText = _render34.queryByText,
1289
+ getByRole = _render34.getByRole,
1290
+ getAllByRole = _render34.getAllByRole,
1291
+ queryByRole = _render34.queryByRole,
1292
+ getByTitle = _render34.getByTitle,
1293
+ queryByTitle = _render34.queryByTitle;
1009
1294
 
1010
1295
  var select = getByRole("combobox");
1011
1296
 
@@ -1015,9 +1300,11 @@ describe("Select component tests", function () {
1015
1300
 
1016
1301
  _userEvent["default"].click(getAllByRole("option")[8]);
1017
1302
 
1018
- _userEvent["default"].click(getAllByRole("option")[13]); // expect(onChange).toHaveBeenCalledWith({ value: ["6", "9", "14"], error: null });
1019
-
1303
+ _userEvent["default"].click(getAllByRole("option")[13]);
1020
1304
 
1305
+ expect(onChange).toHaveBeenCalledWith({
1306
+ value: ["6", "9", "14"]
1307
+ });
1021
1308
  expect(queryByRole("listbox")).toBeTruthy();
1022
1309
  expect(getByText("Option 06, Option 09, Option 14")).toBeTruthy();
1023
1310
  expect(getByText("3", {
@@ -1026,6 +1313,10 @@ describe("Select component tests", function () {
1026
1313
 
1027
1314
  _userEvent["default"].click(getByTitle("Clear selection"));
1028
1315
 
1316
+ expect(onChange).toHaveBeenCalledWith({
1317
+ value: [],
1318
+ error: "This field is required. Please, enter a value."
1319
+ });
1029
1320
  expect(queryByRole("listbox")).toBeTruthy();
1030
1321
  expect(queryByText("Option 06, Option 09, Option 14")).toBeFalsy();
1031
1322
  expect(queryByText("3")).toBeFalsy();
@@ -1034,7 +1325,7 @@ describe("Select component tests", function () {
1034
1325
  test("Non-Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", function () {
1035
1326
  var onChange = jest.fn();
1036
1327
 
1037
- var _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1328
+ var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1038
1329
  label: "test-select-label",
1039
1330
  placeholder: "Choose an option",
1040
1331
  options: single_options,
@@ -1042,10 +1333,10 @@ describe("Select component tests", function () {
1042
1333
  multiple: true,
1043
1334
  optional: true
1044
1335
  })),
1045
- getByText = _render28.getByText,
1046
- getAllByText = _render28.getAllByText,
1047
- getByRole = _render28.getByRole,
1048
- getAllByRole = _render28.getAllByRole;
1336
+ getByText = _render35.getByText,
1337
+ getAllByText = _render35.getAllByText,
1338
+ getByRole = _render35.getByRole,
1339
+ getAllByRole = _render35.getAllByRole;
1049
1340
 
1050
1341
  var select = getByRole("combobox");
1051
1342
  expect(getByText("(Optional)")).toBeTruthy();
@@ -1055,19 +1346,21 @@ describe("Select component tests", function () {
1055
1346
  expect(getAllByText("Choose an option").length).toBe(1);
1056
1347
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("false");
1057
1348
 
1058
- _userEvent["default"].click(getAllByRole("option")[0]); // expect(onChange).toHaveBeenCalledWith({ value: ["1"], error: null });
1059
-
1349
+ _userEvent["default"].click(getAllByRole("option")[0]);
1060
1350
 
1351
+ expect(onChange).toHaveBeenCalledWith({
1352
+ value: ["1"]
1353
+ });
1061
1354
  expect(getAllByText("Option 01").length).toBe(2);
1062
1355
  });
1063
1356
  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"], {
1357
+ var _render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1065
1358
  label: "test-select-label",
1066
1359
  options: single_options
1067
1360
  })),
1068
- getByText = _render29.getByText,
1069
- getByRole = _render29.getByRole,
1070
- getAllByRole = _render29.getAllByRole;
1361
+ getByText = _render36.getByText,
1362
+ getByRole = _render36.getByRole,
1363
+ getAllByRole = _render36.getAllByRole;
1071
1364
 
1072
1365
  var select = getByRole("combobox");
1073
1366
 
@@ -1135,14 +1428,14 @@ describe("Select component tests", function () {
1135
1428
  expect(getByText("Option 06")).toBeTruthy();
1136
1429
  });
1137
1430
  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"], {
1431
+ var _render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1139
1432
  label: "test-select-label",
1140
1433
  options: single_options
1141
1434
  })),
1142
- getByText = _render30.getByText,
1143
- getByRole = _render30.getByRole,
1144
- getAllByRole = _render30.getAllByRole,
1145
- queryByRole = _render30.queryByRole;
1435
+ getByText = _render37.getByText,
1436
+ getByRole = _render37.getByRole,
1437
+ getAllByRole = _render37.getAllByRole,
1438
+ queryByRole = _render37.queryByRole;
1146
1439
 
1147
1440
  var select = getByRole("combobox");
1148
1441
 
@@ -1210,14 +1503,14 @@ describe("Select component tests", function () {
1210
1503
  expect(getByText("Option 17")).toBeTruthy();
1211
1504
  });
1212
1505
  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"], {
1506
+ var _render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1214
1507
  label: "test-select-label",
1215
1508
  options: group_options
1216
1509
  })),
1217
- getByText = _render31.getByText,
1218
- getByRole = _render31.getByRole,
1219
- getAllByRole = _render31.getAllByRole,
1220
- queryByRole = _render31.queryByRole;
1510
+ getByText = _render38.getByText,
1511
+ getByRole = _render38.getByRole,
1512
+ getAllByRole = _render38.getAllByRole,
1513
+ queryByRole = _render38.queryByRole;
1221
1514
 
1222
1515
  var select = getByRole("combobox");
1223
1516
 
@@ -1245,15 +1538,15 @@ describe("Select component tests", function () {
1245
1538
  expect(select.getAttribute("aria-expanded")).toBe("false");
1246
1539
  });
1247
1540
  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"], {
1541
+ var _render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1249
1542
  label: "test-select-label",
1250
1543
  options: [{
1251
1544
  label: "Group 1",
1252
1545
  options: []
1253
1546
  }]
1254
1547
  })),
1255
- getByRole = _render32.getByRole,
1256
- queryByRole = _render32.queryByRole;
1548
+ getByRole = _render39.getByRole,
1549
+ queryByRole = _render39.queryByRole;
1257
1550
 
1258
1551
  var select = getByRole("combobox");
1259
1552
 
@@ -1265,17 +1558,17 @@ describe("Select component tests", function () {
1265
1558
  test("Grouped Options - Click in an option selects it and closes the listbox", function () {
1266
1559
  var onChange = jest.fn();
1267
1560
 
1268
- var _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1561
+ var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1269
1562
  name: "test",
1270
1563
  label: "test-select-label",
1271
1564
  options: group_options,
1272
1565
  onChange: onChange
1273
1566
  })),
1274
- getByText = _render33.getByText,
1275
- getByRole = _render33.getByRole,
1276
- getAllByRole = _render33.getAllByRole,
1277
- queryByRole = _render33.queryByRole,
1278
- container = _render33.container;
1567
+ getByText = _render40.getByText,
1568
+ getByRole = _render40.getByRole,
1569
+ getAllByRole = _render40.getAllByRole,
1570
+ queryByRole = _render40.queryByRole,
1571
+ container = _render40.container;
1279
1572
 
1280
1573
  var select = getByRole("combobox");
1281
1574
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -1285,8 +1578,7 @@ describe("Select component tests", function () {
1285
1578
  _userEvent["default"].click(getAllByRole("option")[8]);
1286
1579
 
1287
1580
  expect(onChange).toHaveBeenCalledWith({
1288
- value: "oviedo",
1289
- error: null
1581
+ value: "oviedo"
1290
1582
  });
1291
1583
  expect(queryByRole("listbox")).toBeFalsy();
1292
1584
  expect(getByText("Oviedo")).toBeTruthy();
@@ -1299,16 +1591,16 @@ describe("Select component tests", function () {
1299
1591
  test("Grouped Options - Optional renders an empty first option (out of any group) with the placeholder as its label", function () {
1300
1592
  var onChange = jest.fn();
1301
1593
 
1302
- var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1594
+ var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1303
1595
  label: "test-select-label",
1304
1596
  placeholder: "Placeholder example",
1305
1597
  options: group_options,
1306
1598
  onChange: onChange,
1307
1599
  optional: true
1308
1600
  })),
1309
- getByRole = _render34.getByRole,
1310
- getAllByRole = _render34.getAllByRole,
1311
- getAllByText = _render34.getAllByText;
1601
+ getByRole = _render41.getByRole,
1602
+ getAllByRole = _render41.getAllByRole,
1603
+ getAllByText = _render41.getAllByText;
1312
1604
 
1313
1605
  var select = getByRole("combobox");
1314
1606
 
@@ -1320,8 +1612,7 @@ describe("Select component tests", function () {
1320
1612
  _userEvent["default"].click(getAllByRole("option")[0]);
1321
1613
 
1322
1614
  expect(onChange).toHaveBeenCalledWith({
1323
- value: "",
1324
- error: null
1615
+ value: ""
1325
1616
  });
1326
1617
  expect(getAllByText("Placeholder example").length).toBe(1);
1327
1618
 
@@ -1342,8 +1633,7 @@ describe("Select component tests", function () {
1342
1633
  });
1343
1634
 
1344
1635
  expect(onChange).toHaveBeenCalledWith({
1345
- value: "",
1346
- error: null
1636
+ value: ""
1347
1637
  });
1348
1638
  expect(getAllByText("Placeholder example").length).toBe(1);
1349
1639
 
@@ -1356,14 +1646,43 @@ describe("Select component tests", function () {
1356
1646
 
1357
1647
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1358
1648
  });
1649
+ test("Grouped Options - Filtering options never affects the optional item until there are no coincidence", function () {
1650
+ var _render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1651
+ label: "test-select-label",
1652
+ placeholder: "Placeholder example",
1653
+ options: group_options,
1654
+ optional: true,
1655
+ searchable: true
1656
+ })),
1657
+ getByRole = _render42.getByRole,
1658
+ getAllByRole = _render42.getAllByRole,
1659
+ getByText = _render42.getByText,
1660
+ queryByText = _render42.queryByText,
1661
+ container = _render42.container;
1662
+
1663
+ var select = getByRole("combobox");
1664
+ var searchInput = container.querySelectorAll("input")[1];
1665
+
1666
+ _userEvent["default"].click(select);
1667
+
1668
+ _userEvent["default"].type(searchInput, "ro");
1669
+
1670
+ expect(getByText("Placeholder example")).toBeTruthy();
1671
+ expect(getAllByRole("option").length).toBe(6);
1672
+
1673
+ _userEvent["default"].type(searchInput, "roro");
1674
+
1675
+ expect(queryByText("Placeholder example")).toBeFalsy();
1676
+ expect(getByText("No matches found")).toBeTruthy();
1677
+ });
1359
1678
  test("Grouped Options - Renders icons correctly when passed with group options", function () {
1360
- var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1679
+ var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1361
1680
  label: "test-select-label",
1362
1681
  options: grouped_icon_options,
1363
1682
  optional: true
1364
1683
  })),
1365
- getByRole = _render35.getByRole,
1366
- getAllByRole = _render35.getAllByRole;
1684
+ getByRole = _render43.getByRole,
1685
+ getAllByRole = _render43.getAllByRole;
1367
1686
 
1368
1687
  var select = getByRole("combobox");
1369
1688
 
@@ -1373,12 +1692,12 @@ describe("Select component tests", function () {
1373
1692
  expect(getAllByRole("option").length).toBe(11);
1374
1693
  });
1375
1694
  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"], {
1695
+ var _render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1377
1696
  label: "test-select-label",
1378
1697
  options: group_options
1379
1698
  })),
1380
- getByRole = _render36.getByRole,
1381
- queryByRole = _render36.queryByRole;
1699
+ getByRole = _render44.getByRole,
1700
+ queryByRole = _render44.queryByRole;
1382
1701
 
1383
1702
  var select = getByRole("combobox");
1384
1703
 
@@ -1393,12 +1712,12 @@ describe("Select component tests", function () {
1393
1712
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
1394
1713
  });
1395
1714
  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"], {
1715
+ var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1397
1716
  label: "test-select-label",
1398
1717
  options: group_options
1399
1718
  })),
1400
- getByRole = _render37.getByRole,
1401
- queryByRole = _render37.queryByRole;
1719
+ getByRole = _render45.getByRole,
1720
+ queryByRole = _render45.queryByRole;
1402
1721
 
1403
1722
  var select = getByRole("combobox");
1404
1723
 
@@ -1420,12 +1739,12 @@ describe("Select component tests", function () {
1420
1739
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
1421
1740
  });
1422
1741
  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"], {
1742
+ var _render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1424
1743
  label: "test-select-label",
1425
1744
  options: group_options
1426
1745
  })),
1427
- getByRole = _render38.getByRole,
1428
- queryByRole = _render38.queryByRole;
1746
+ getByRole = _render46.getByRole,
1747
+ queryByRole = _render46.queryByRole;
1429
1748
 
1430
1749
  var select = getByRole("combobox");
1431
1750
 
@@ -1440,12 +1759,12 @@ describe("Select component tests", function () {
1440
1759
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1441
1760
  });
1442
1761
  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"], {
1762
+ var _render47 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1444
1763
  label: "test-select-label",
1445
1764
  options: group_options
1446
1765
  })),
1447
- getByRole = _render39.getByRole,
1448
- queryByRole = _render39.queryByRole;
1766
+ getByRole = _render47.getByRole,
1767
+ queryByRole = _render47.queryByRole;
1449
1768
 
1450
1769
  var select = getByRole("combobox");
1451
1770
 
@@ -1469,16 +1788,16 @@ describe("Select component tests", function () {
1469
1788
  test("Grouped Options: Enter key - Selects the visually focused option and closes the listbox", function () {
1470
1789
  var onChange = jest.fn();
1471
1790
 
1472
- var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1791
+ var _render48 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1473
1792
  label: "test-select-label",
1474
1793
  options: group_options,
1475
1794
  onChange: onChange,
1476
1795
  optional: true
1477
1796
  })),
1478
- getByText = _render40.getByText,
1479
- getByRole = _render40.getByRole,
1480
- getAllByRole = _render40.getAllByRole,
1481
- queryByRole = _render40.queryByRole;
1797
+ getByText = _render48.getByText,
1798
+ getByRole = _render48.getByRole,
1799
+ getAllByRole = _render48.getAllByRole,
1800
+ queryByRole = _render48.queryByRole;
1482
1801
 
1483
1802
  var select = getByRole("combobox");
1484
1803
 
@@ -1518,8 +1837,7 @@ describe("Select component tests", function () {
1518
1837
  });
1519
1838
 
1520
1839
  expect(onChange).toHaveBeenCalledWith({
1521
- value: "ebro",
1522
- error: null
1840
+ value: "ebro"
1523
1841
  });
1524
1842
  expect(queryByRole("listbox")).toBeFalsy();
1525
1843
  expect(getByText("Ebro")).toBeTruthy();
@@ -1531,17 +1849,17 @@ describe("Select component tests", function () {
1531
1849
  test("Grouped Options: Searchable - Displays an input for filtering the list of options", function () {
1532
1850
  var onChange = jest.fn();
1533
1851
 
1534
- var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1852
+ var _render49 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1535
1853
  label: "test-select-label",
1536
1854
  options: group_options,
1537
1855
  onChange: onChange,
1538
1856
  searchable: true
1539
1857
  })),
1540
- container = _render41.container,
1541
- getByText = _render41.getByText,
1542
- getByRole = _render41.getByRole,
1543
- getAllByRole = _render41.getAllByRole,
1544
- queryByRole = _render41.queryByRole;
1858
+ container = _render49.container,
1859
+ getByText = _render49.getByText,
1860
+ getByRole = _render49.getByRole,
1861
+ getAllByRole = _render49.getAllByRole,
1862
+ queryByRole = _render49.queryByRole;
1545
1863
 
1546
1864
  var select = getByRole("combobox");
1547
1865
  var searchInput = container.querySelectorAll("input")[1];
@@ -1561,8 +1879,7 @@ describe("Select component tests", function () {
1561
1879
  _userEvent["default"].click(getAllByRole("option")[4]);
1562
1880
 
1563
1881
  expect(onChange).toHaveBeenCalledWith({
1564
- value: "ebro",
1565
- error: null
1882
+ value: "ebro"
1566
1883
  });
1567
1884
  expect(queryByRole("listbox")).toBeFalsy();
1568
1885
  expect(getByText("Ebro")).toBeTruthy();
@@ -1575,15 +1892,15 @@ describe("Select component tests", function () {
1575
1892
  test("Grouped Options: Searchable - Displays 'No matches found' when there are no filtering results", function () {
1576
1893
  var onChange = jest.fn();
1577
1894
 
1578
- var _render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1895
+ var _render50 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1579
1896
  label: "test-select-label",
1580
1897
  options: group_options,
1581
1898
  onChange: onChange,
1582
1899
  searchable: true
1583
1900
  })),
1584
- container = _render42.container,
1585
- getByText = _render42.getByText,
1586
- getByRole = _render42.getByRole;
1901
+ container = _render50.container,
1902
+ getByText = _render50.getByText,
1903
+ getByRole = _render50.getByRole;
1587
1904
 
1588
1905
  var select = getByRole("combobox");
1589
1906
  var searchInput = container.querySelectorAll("input")[1];
@@ -1599,19 +1916,19 @@ describe("Select component tests", function () {
1599
1916
  test("Grouped Options: Multiple selection - Displays a checkbox per option and enables the multi-selection", function () {
1600
1917
  var onChange = jest.fn();
1601
1918
 
1602
- var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1919
+ var _render51 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1603
1920
  name: "test",
1604
1921
  label: "test-select-label",
1605
1922
  options: group_options,
1606
1923
  onChange: onChange,
1607
1924
  multiple: true
1608
1925
  })),
1609
- getByText = _render43.getByText,
1610
- getAllByText = _render43.getAllByText,
1611
- getByRole = _render43.getByRole,
1612
- getAllByRole = _render43.getAllByRole,
1613
- queryByRole = _render43.queryByRole,
1614
- container = _render43.container;
1926
+ getByText = _render51.getByText,
1927
+ getAllByText = _render51.getAllByText,
1928
+ getByRole = _render51.getByRole,
1929
+ getAllByRole = _render51.getAllByRole,
1930
+ queryByRole = _render51.queryByRole,
1931
+ container = _render51.container;
1615
1932
 
1616
1933
  var select = getByRole("combobox");
1617
1934
  var submitInput = container.querySelector("input[name=\"test\"]");
@@ -1620,9 +1937,11 @@ describe("Select component tests", function () {
1620
1937
 
1621
1938
  expect(getByRole("listbox").getAttribute("aria-multiselectable")).toBe("true");
1622
1939
 
1623
- _userEvent["default"].click(getAllByRole("option")[10]); // expect(onChange).toHaveBeenCalledWith({ value: ["bilbao"], error: null });
1624
-
1940
+ _userEvent["default"].click(getAllByRole("option")[10]);
1625
1941
 
1942
+ expect(onChange).toHaveBeenCalledWith({
1943
+ value: ["bilbao"]
1944
+ });
1626
1945
  expect(queryByRole("listbox")).toBeTruthy();
1627
1946
  expect(getAllByText("Bilbao").length).toBe(2);
1628
1947
 
@@ -1645,31 +1964,33 @@ describe("Select component tests", function () {
1645
1964
  code: "Enter",
1646
1965
  keyCode: 13,
1647
1966
  charCode: 13
1648
- }); // expect(onChange).toHaveBeenCalledWith({ value: ["bilbao", "guadalquivir"], error: null });
1649
-
1967
+ });
1650
1968
 
1969
+ expect(onChange).toHaveBeenCalledWith({
1970
+ value: ["bilbao", "guadalquivir"]
1971
+ });
1651
1972
  expect(queryByRole("listbox")).toBeTruthy();
1652
1973
  expect(getByText("Bilbao, Guadalquivir")).toBeTruthy();
1653
1974
  expect(getAllByRole("option")[10].getAttribute("aria-selected")).toBe("true");
1654
1975
  expect(getAllByRole("option")[16].getAttribute("aria-selected")).toBe("true");
1655
- expect(submitInput.value).toBe("bilbao, guadalquivir");
1976
+ expect(submitInput.value).toBe("bilbao,guadalquivir");
1656
1977
  });
1657
1978
  test("Grouped Options: Multiple selection - Clear action and selection indicator", function () {
1658
1979
  var onChange = jest.fn();
1659
1980
 
1660
- var _render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1981
+ var _render52 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1661
1982
  label: "test-select-label",
1662
1983
  options: group_options,
1663
1984
  onChange: onChange,
1664
1985
  multiple: true
1665
1986
  })),
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;
1987
+ getByText = _render52.getByText,
1988
+ queryByText = _render52.queryByText,
1989
+ getByRole = _render52.getByRole,
1990
+ getAllByRole = _render52.getAllByRole,
1991
+ queryByRole = _render52.queryByRole,
1992
+ getByTitle = _render52.getByTitle,
1993
+ queryByTitle = _render52.queryByTitle;
1673
1994
 
1674
1995
  var select = getByRole("combobox");
1675
1996
 
@@ -1681,9 +2002,11 @@ describe("Select component tests", function () {
1681
2002
 
1682
2003
  _userEvent["default"].click(getAllByRole("option")[13]);
1683
2004
 
1684
- _userEvent["default"].click(getAllByRole("option")[17]); // expect(onChange).toHaveBeenCalledWith({ value: ["blanco", "oviedo", "duero", "ebro"], error: null });
1685
-
2005
+ _userEvent["default"].click(getAllByRole("option")[17]);
1686
2006
 
2007
+ expect(onChange).toHaveBeenCalledWith({
2008
+ value: ["blanco", "oviedo", "duero", "ebro"]
2009
+ });
1687
2010
  expect(queryByRole("listbox")).toBeTruthy();
1688
2011
  expect(getByText("Blanco, Oviedo, Duero, Ebro")).toBeTruthy();
1689
2012
  expect(getByText("4", {
@@ -1700,7 +2023,7 @@ describe("Select component tests", function () {
1700
2023
  test("Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", function () {
1701
2024
  var onChange = jest.fn();
1702
2025
 
1703
- var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
2026
+ var _render53 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1704
2027
  label: "test-select-label",
1705
2028
  placeholder: "Choose an option",
1706
2029
  options: group_options,
@@ -1708,10 +2031,10 @@ describe("Select component tests", function () {
1708
2031
  multiple: true,
1709
2032
  optional: true
1710
2033
  })),
1711
- getByText = _render45.getByText,
1712
- getAllByText = _render45.getAllByText,
1713
- getByRole = _render45.getByRole,
1714
- getAllByRole = _render45.getAllByRole;
2034
+ getByText = _render53.getByText,
2035
+ getAllByText = _render53.getAllByText,
2036
+ getByRole = _render53.getByRole,
2037
+ getAllByRole = _render53.getAllByRole;
1715
2038
 
1716
2039
  var select = getByRole("combobox");
1717
2040
  expect(getByText("(Optional)")).toBeTruthy();
@@ -1721,19 +2044,21 @@ describe("Select component tests", function () {
1721
2044
  expect(getAllByText("Choose an option").length).toBe(1);
1722
2045
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("false");
1723
2046
 
1724
- _userEvent["default"].click(getAllByRole("option")[0]); // expect(onChange).toHaveBeenCalledWith({ value: ["azul"], error: null });
1725
-
2047
+ _userEvent["default"].click(getAllByRole("option")[0]);
1726
2048
 
2049
+ expect(onChange).toHaveBeenCalledWith({
2050
+ value: ["azul"]
2051
+ });
1727
2052
  expect(getAllByText("Azul").length).toBe(2);
1728
2053
  });
1729
2054
  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"], {
2055
+ var _render54 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1731
2056
  label: "test-select-label",
1732
2057
  options: group_options
1733
2058
  })),
1734
- getByText = _render46.getByText,
1735
- getByRole = _render46.getByRole,
1736
- getAllByRole = _render46.getAllByRole;
2059
+ getByText = _render54.getByText,
2060
+ getByRole = _render54.getByRole,
2061
+ getAllByRole = _render54.getAllByRole;
1737
2062
 
1738
2063
  var select = getByRole("combobox");
1739
2064
 
@@ -1801,14 +2126,13 @@ describe("Select component tests", function () {
1801
2126
  expect(getByText("Verde")).toBeTruthy();
1802
2127
  });
1803
2128
  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"], {
2129
+ var _render55 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1805
2130
  label: "test-select-label",
1806
2131
  options: group_options
1807
2132
  })),
1808
- getByText = _render47.getByText,
1809
- getByRole = _render47.getByRole,
1810
- getAllByRole = _render47.getAllByRole,
1811
- queryByRole = _render47.queryByRole;
2133
+ getByText = _render55.getByText,
2134
+ getByRole = _render55.getByRole,
2135
+ getAllByRole = _render55.getAllByRole;
1812
2136
 
1813
2137
  var select = getByRole("combobox");
1814
2138
 
@@ -1872,29 +2196,38 @@ describe("Select component tests", function () {
1872
2196
 
1873
2197
  expect(getByText("Azul")).toBeTruthy();
1874
2198
  });
1875
- test("Renders with correct aria attributes", function () {
1876
- var _render48 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
2199
+ test("Multiple selection and optional - Clear action cleans every selected option but does not display an error", function () {
2200
+ var onChange = jest.fn();
2201
+
2202
+ var _render56 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1877
2203
  label: "test-select-label",
1878
- placeholder: "Example",
1879
- options: single_options
2204
+ options: single_options,
2205
+ onChange: onChange,
2206
+ multiple: true,
2207
+ optional: true
1880
2208
  })),
1881
- getByText = _render48.getByText,
1882
- getByRole = _render48.getByRole;
2209
+ getByRole = _render56.getByRole,
2210
+ getAllByRole = _render56.getAllByRole,
2211
+ getByTitle = _render56.getByTitle;
1883
2212
 
1884
2213
  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
2214
 
1894
2215
  _userEvent["default"].click(select);
1895
2216
 
1896
- var list = getByRole("listbox");
1897
- expect(select.getAttribute("aria-controls")).toBe(list.id);
1898
- expect(list.getAttribute("aria-multiselectable")).toBe("false");
2217
+ _userEvent["default"].click(getAllByRole("option")[5]);
2218
+
2219
+ _userEvent["default"].click(getAllByRole("option")[8]);
2220
+
2221
+ _userEvent["default"].click(getAllByRole("option")[13]);
2222
+
2223
+ expect(onChange).toHaveBeenCalledWith({
2224
+ value: ["6", "9", "14"]
2225
+ });
2226
+
2227
+ _userEvent["default"].click(getByTitle("Clear selection"));
2228
+
2229
+ expect(onChange).toHaveBeenCalledWith({
2230
+ value: []
2231
+ });
1899
2232
  });
1900
2233
  });