@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370

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 (213) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +12 -2
  3. package/HalstackContext.d.ts +1330 -7
  4. package/HalstackContext.js +84 -67
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +74 -55
  7. package/accordion/Accordion.stories.tsx +3 -101
  8. package/accordion/Accordion.test.js +34 -19
  9. package/accordion/types.d.ts +4 -16
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +49 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  13. package/accordion-group/AccordionGroup.test.js +62 -54
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -18
  17. package/alert/Alert.js +47 -20
  18. package/alert/Alert.test.js +46 -29
  19. package/alert/types.d.ts +3 -3
  20. package/badge/Badge.js +14 -2
  21. package/badge/types.d.ts +1 -1
  22. package/bleed/Bleed.js +21 -13
  23. package/bleed/Bleed.stories.tsx +1 -0
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +33 -33
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +7 -2
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +36 -9
  31. package/bulleted-list/BulletedList.stories.tsx +7 -1
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +83 -71
  35. package/button/Button.stories.tsx +4 -4
  36. package/button/Button.test.js +28 -8
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +67 -62
  40. package/card/Card.stories.tsx +12 -42
  41. package/card/Card.test.js +22 -11
  42. package/card/types.d.ts +4 -10
  43. package/checkbox/Checkbox.js +71 -27
  44. package/checkbox/Checkbox.test.js +60 -33
  45. package/checkbox/types.d.ts +4 -4
  46. package/chip/Chip.js +51 -48
  47. package/chip/Chip.stories.tsx +25 -17
  48. package/chip/Chip.test.js +29 -17
  49. package/chip/types.d.ts +4 -4
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +8 -3
  55. package/common/variables.d.ts +226 -175
  56. package/common/variables.js +956 -1133
  57. package/date-input/Calendar.js +55 -12
  58. package/date-input/DateInput.js +82 -35
  59. package/date-input/DateInput.test.js +351 -164
  60. package/date-input/DatePicker.js +38 -8
  61. package/date-input/Icons.js +12 -0
  62. package/date-input/YearPicker.js +30 -5
  63. package/date-input/types.d.ts +7 -7
  64. package/dialog/Dialog.d.ts +1 -1
  65. package/dialog/Dialog.js +83 -86
  66. package/dialog/Dialog.stories.tsx +127 -221
  67. package/dialog/Dialog.test.js +331 -18
  68. package/dialog/types.d.ts +1 -14
  69. package/dropdown/Dropdown.js +86 -32
  70. package/dropdown/Dropdown.test.js +211 -104
  71. package/dropdown/DropdownMenu.js +22 -8
  72. package/dropdown/DropdownMenuItem.js +15 -6
  73. package/dropdown/types.d.ts +8 -8
  74. package/file-input/FileInput.js +218 -134
  75. package/file-input/FileInput.test.js +343 -331
  76. package/file-input/FileItem.js +39 -12
  77. package/file-input/types.d.ts +10 -10
  78. package/flex/Flex.js +39 -25
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +74 -9
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +80 -68
  83. package/footer/Footer.stories.tsx +12 -89
  84. package/footer/Footer.test.js +47 -40
  85. package/footer/Icons.js +4 -0
  86. package/footer/types.d.ts +15 -17
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +4 -3
  92. package/header/Header.js +72 -55
  93. package/header/Header.stories.tsx +7 -71
  94. package/header/Header.test.js +26 -13
  95. package/header/Icons.js +4 -0
  96. package/header/types.d.ts +2 -16
  97. package/heading/Heading.js +28 -7
  98. package/heading/Heading.test.js +88 -71
  99. package/heading/types.d.ts +3 -3
  100. package/inset/Inset.js +21 -13
  101. package/inset/Inset.stories.tsx +2 -1
  102. package/inset/types.d.ts +2 -2
  103. package/layout/ApplicationLayout.d.ts +5 -5
  104. package/layout/ApplicationLayout.js +57 -15
  105. package/layout/Icons.js +10 -0
  106. package/layout/SidenavContext.d.ts +1 -1
  107. package/layout/SidenavContext.js +4 -0
  108. package/layout/types.d.ts +5 -6
  109. package/link/Link.js +41 -21
  110. package/link/Link.test.js +42 -26
  111. package/link/types.d.ts +4 -4
  112. package/main.d.ts +2 -1
  113. package/main.js +55 -0
  114. package/nav-tabs/NavTabs.d.ts +2 -2
  115. package/nav-tabs/NavTabs.js +43 -16
  116. package/nav-tabs/NavTabs.stories.tsx +14 -0
  117. package/nav-tabs/NavTabs.test.js +44 -37
  118. package/nav-tabs/Tab.js +71 -45
  119. package/nav-tabs/types.d.ts +10 -11
  120. package/number-input/NumberInput.js +30 -20
  121. package/number-input/NumberInput.test.js +249 -113
  122. package/number-input/NumberInputContext.js +5 -0
  123. package/number-input/numberInputContextTypes.d.ts +1 -1
  124. package/number-input/types.d.ts +4 -4
  125. package/package.json +7 -7
  126. package/paginator/Icons.js +10 -0
  127. package/paginator/Paginator.js +39 -17
  128. package/paginator/Paginator.test.js +156 -104
  129. package/paginator/types.d.ts +1 -1
  130. package/paragraph/Paragraph.d.ts +3 -4
  131. package/paragraph/Paragraph.js +18 -8
  132. package/password-input/PasswordInput.js +51 -22
  133. package/password-input/PasswordInput.test.js +94 -51
  134. package/password-input/types.d.ts +4 -4
  135. package/progress-bar/ProgressBar.d.ts +2 -2
  136. package/progress-bar/ProgressBar.js +39 -14
  137. package/progress-bar/ProgressBar.test.js +53 -36
  138. package/progress-bar/types.d.ts +4 -3
  139. package/quick-nav/QuickNav.js +24 -2
  140. package/quick-nav/types.d.ts +2 -2
  141. package/radio-group/Radio.js +53 -22
  142. package/radio-group/RadioGroup.js +84 -41
  143. package/radio-group/RadioGroup.test.js +288 -186
  144. package/radio-group/types.d.ts +4 -4
  145. package/resultsetTable/Icons.js +3 -0
  146. package/resultsetTable/ResultsetTable.js +56 -21
  147. package/resultsetTable/ResultsetTable.test.js +75 -42
  148. package/resultsetTable/types.d.ts +5 -5
  149. package/select/Icons.js +3 -0
  150. package/select/Listbox.js +35 -10
  151. package/select/Option.js +24 -8
  152. package/select/Select.js +143 -56
  153. package/select/Select.test.js +839 -456
  154. package/select/types.d.ts +12 -12
  155. package/sidenav/Icons.d.ts +7 -0
  156. package/sidenav/Icons.js +51 -0
  157. package/sidenav/Sidenav.d.ts +2 -2
  158. package/sidenav/Sidenav.js +116 -104
  159. package/sidenav/Sidenav.stories.tsx +60 -60
  160. package/sidenav/Sidenav.test.js +10 -3
  161. package/sidenav/types.d.ts +26 -23
  162. package/slider/Slider.js +84 -38
  163. package/slider/Slider.test.js +104 -76
  164. package/slider/types.d.ts +4 -4
  165. package/spinner/Spinner.js +51 -28
  166. package/spinner/Spinner.stories.jsx +28 -28
  167. package/spinner/Spinner.test.js +35 -26
  168. package/spinner/types.d.ts +3 -3
  169. package/switch/Switch.js +66 -24
  170. package/switch/Switch.test.js +97 -52
  171. package/switch/types.d.ts +4 -4
  172. package/table/Table.js +22 -4
  173. package/table/Table.test.js +7 -2
  174. package/table/types.d.ts +3 -3
  175. package/tabs/Tab.js +39 -22
  176. package/tabs/Tabs.js +131 -62
  177. package/tabs/Tabs.test.js +122 -67
  178. package/tabs/types.d.ts +8 -8
  179. package/tag/Tag.js +54 -27
  180. package/tag/Tag.test.js +31 -20
  181. package/tag/types.d.ts +7 -7
  182. package/text-input/Icons.js +3 -0
  183. package/text-input/Suggestion.js +24 -8
  184. package/text-input/Suggestions.js +36 -11
  185. package/text-input/TextInput.js +144 -59
  186. package/text-input/TextInput.stories.tsx +1 -1
  187. package/text-input/TextInput.test.js +858 -539
  188. package/text-input/types.d.ts +9 -9
  189. package/textarea/Textarea.js +73 -38
  190. package/textarea/Textarea.test.js +173 -98
  191. package/textarea/types.d.ts +4 -4
  192. package/toggle-group/ToggleGroup.d.ts +2 -2
  193. package/toggle-group/ToggleGroup.js +59 -21
  194. package/toggle-group/ToggleGroup.test.js +72 -40
  195. package/toggle-group/types.d.ts +11 -11
  196. package/typography/Typography.d.ts +2 -2
  197. package/typography/Typography.js +23 -110
  198. package/typography/Typography.stories.tsx +1 -1
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +1234 -1
  201. package/useTheme.js +6 -0
  202. package/useTranslatedLabels.d.ts +84 -2
  203. package/useTranslatedLabels.js +5 -0
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +47 -13
  209. package/wizard/Wizard.test.js +81 -54
  210. package/wizard/types.d.ts +7 -8
  211. package/card/ice-cream.jpg +0 -0
  212. package/translatedLabelsType.d.ts +0 -82
  213. /package/{translatedLabelsType.js → grid/types.js} +0 -0
@@ -1,12 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
+
5
7
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+
6
9
  var _react = _interopRequireDefault(require("react"));
7
- var _Select = _interopRequireDefault(require("./Select"));
10
+
8
11
  var _react2 = require("@testing-library/react");
12
+
9
13
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
14
+
15
+ var _Select = _interopRequireDefault(require("./Select.tsx"));
16
+
10
17
  // Mocking DOMRect for Radix Primitive Popover
11
18
  global.globalThis = global;
12
19
  global.DOMRect = {
@@ -21,10 +28,12 @@ global.DOMRect = {
21
28
  };
22
29
  }
23
30
  };
31
+
24
32
  global.ResizeObserver = /*#__PURE__*/function () {
25
33
  function ResizeObserver() {
26
34
  (0, _classCallCheck2["default"])(this, ResizeObserver);
27
35
  }
36
+
28
37
  (0, _createClass2["default"])(ResizeObserver, [{
29
38
  key: "observe",
30
39
  value: function observe() {}
@@ -37,7 +46,8 @@ global.ResizeObserver = /*#__PURE__*/function () {
37
46
  }]);
38
47
  return ResizeObserver;
39
48
  }();
40
- var single_options = [{
49
+
50
+ var singleOptions = [{
41
51
  label: "Option 01",
42
52
  value: "1"
43
53
  }, {
@@ -98,7 +108,7 @@ var single_options = [{
98
108
  label: "Option 20",
99
109
  value: "20"
100
110
  }];
101
- var svg_icon_options = [{
111
+ var svgIconOptions = [{
102
112
  label: "3G Mobile",
103
113
  value: "1",
104
114
  icon: /*#__PURE__*/_react["default"].createElement("svg", {
@@ -162,7 +172,7 @@ var svg_icon_options = [{
162
172
  label: "Regular",
163
173
  value: "Regular"
164
174
  }];
165
- var url_icon_options = [{
175
+ var urlIconOptions = [{
166
176
  label: "Instagram",
167
177
  value: "1",
168
178
  icon: "https://cdn.icon-icons.com/icons2/2518/PNG/512/brand_instagram_icon_151534.png"
@@ -182,7 +192,7 @@ var url_icon_options = [{
182
192
  value: "5",
183
193
  icon: "https://cdn-icons-png.flaticon.com/512/145/145808.png"
184
194
  }];
185
- var group_options = [{
195
+ var groupOptions = [{
186
196
  label: "Colores",
187
197
  options: [{
188
198
  label: "Azul",
@@ -246,7 +256,7 @@ var group_options = [{
246
256
  value: "ebro"
247
257
  }]
248
258
  }];
249
- var grouped_icon_options = [{
259
+ var groupedIconOptions = [{
250
260
  label: "Social Media",
251
261
  options: [{
252
262
  label: "Instagram",
@@ -293,24 +303,28 @@ var grouped_icon_options = [{
293
303
  describe("Select component tests", function () {
294
304
  test("When clicking the label, the focus goes to the select", function () {
295
305
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
296
- label: "test-select-label",
297
- helperText: "test-select-helper-text",
298
- placeholder: "Example text"
299
- })),
300
- getByText = _render.getByText,
301
- getByRole = _render.getByRole;
306
+ label: "test-select-label",
307
+ helperText: "test-select-helper-text",
308
+ placeholder: "Example text"
309
+ })),
310
+ getByText = _render.getByText,
311
+ getByRole = _render.getByRole;
312
+
302
313
  var select = getByRole("combobox");
303
314
  var label = getByText("test-select-label");
315
+
304
316
  _userEvent["default"].click(label);
317
+
305
318
  expect(document.activeElement).toEqual(select);
306
319
  });
307
320
  test("Renders with correct aria attributes when is in error state", function () {
308
321
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
309
- label: "Error label",
310
- error: "Error message."
311
- })),
312
- getByText = _render2.getByText,
313
- getByRole = _render2.getByRole;
322
+ label: "Error label",
323
+ error: "Error message."
324
+ })),
325
+ getByText = _render2.getByText,
326
+ getByRole = _render2.getByRole;
327
+
314
328
  var select = getByRole("combobox");
315
329
  var errorMessage = getByText("Error message.");
316
330
  expect(errorMessage).toBeTruthy();
@@ -320,12 +334,13 @@ describe("Select component tests", function () {
320
334
  });
321
335
  test("Renders with correct aria attributes", function () {
322
336
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
323
- label: "test-select-label",
324
- placeholder: "Example",
325
- options: single_options
326
- })),
327
- getByText = _render3.getByText,
328
- getByRole = _render3.getByRole;
337
+ label: "test-select-label",
338
+ placeholder: "Example",
339
+ options: singleOptions
340
+ })),
341
+ getByText = _render3.getByText,
342
+ getByRole = _render3.getByRole;
343
+
329
344
  var select = getByRole("combobox");
330
345
  var label = getByText("test-select-label");
331
346
  expect(select.getAttribute("aria-disabled")).toBe("false");
@@ -335,57 +350,69 @@ describe("Select component tests", function () {
335
350
  expect(select.getAttribute("aria-labelledby")).toBe(label.id);
336
351
  expect(select.getAttribute("aria-activedescendant")).toBeNull();
337
352
  expect(select.getAttribute("aria-invalid")).toBe("false");
353
+
338
354
  _userEvent["default"].click(select);
355
+
339
356
  var list = getByRole("listbox");
340
357
  expect(select.getAttribute("aria-controls")).toBe(list.id);
341
358
  expect(list.getAttribute("aria-multiselectable")).toBe("false");
342
359
  });
343
360
  test("Single selection: Renders with correct default value", function () {
344
361
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
345
- label: "test-select-label",
346
- name: "test",
347
- defaultValue: "4",
348
- options: single_options
349
- })),
350
- getByText = _render4.getByText,
351
- getByRole = _render4.getByRole,
352
- getAllByRole = _render4.getAllByRole,
353
- queryByRole = _render4.queryByRole,
354
- container = _render4.container;
362
+ label: "test-select-label",
363
+ name: "test",
364
+ defaultValue: "4",
365
+ options: singleOptions
366
+ })),
367
+ getByText = _render4.getByText,
368
+ getByRole = _render4.getByRole,
369
+ getAllByRole = _render4.getAllByRole,
370
+ queryByRole = _render4.queryByRole,
371
+ container = _render4.container;
372
+
355
373
  var select = getByRole("combobox");
356
374
  var submitInput = container.querySelector("input[name=\"test\"]");
357
375
  expect(queryByRole("listbox")).toBeFalsy();
358
376
  expect(getByText("Option 04")).toBeTruthy();
359
377
  expect(submitInput.value).toBe("4");
378
+
360
379
  _userEvent["default"].click(select);
380
+
361
381
  expect(getAllByRole("option")[3].getAttribute("aria-selected")).toBe("true");
382
+
362
383
  _userEvent["default"].click(getAllByRole("option")[7]);
384
+
363
385
  expect(getByText("Option 08")).toBeTruthy();
364
386
  expect(submitInput.value).toBe("8");
365
387
  });
366
388
  test("Multiple selection: Renders with correct default value", function () {
367
389
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
368
- label: "test-select-label",
369
- name: "test",
370
- defaultValue: ["4", "2", "6"],
371
- options: single_options,
372
- multiple: true
373
- })),
374
- getByText = _render5.getByText,
375
- getByRole = _render5.getByRole,
376
- getAllByRole = _render5.getAllByRole,
377
- queryByRole = _render5.queryByRole,
378
- container = _render5.container;
390
+ label: "test-select-label",
391
+ name: "test",
392
+ defaultValue: ["4", "2", "6"],
393
+ options: singleOptions,
394
+ multiple: true
395
+ })),
396
+ getByText = _render5.getByText,
397
+ getByRole = _render5.getByRole,
398
+ getAllByRole = _render5.getAllByRole,
399
+ queryByRole = _render5.queryByRole,
400
+ container = _render5.container;
401
+
379
402
  var select = getByRole("combobox");
380
403
  var submitInput = container.querySelector("input[name=\"test\"]");
381
404
  expect(queryByRole("listbox")).toBeFalsy();
382
405
  expect(getByText("Option 02, Option 04, Option 06")).toBeTruthy();
383
406
  expect(submitInput.value).toBe("4,2,6");
407
+
384
408
  _userEvent["default"].click(select);
409
+
385
410
  expect(getAllByRole("option")[3].getAttribute("aria-selected")).toBe("true");
386
411
  expect(getAllByRole("option")[1].getAttribute("aria-selected")).toBe("true");
387
412
  expect(getAllByRole("option")[5].getAttribute("aria-selected")).toBe("true");
413
+
388
414
  _userEvent["default"].click(getAllByRole("option")[2]);
415
+
389
416
  expect(getByText("Option 02, Option 03, Option 04, Option 06")).toBeTruthy();
390
417
  expect(submitInput.value).toBe("4,2,6,3");
391
418
  });
@@ -398,87 +425,105 @@ describe("Select component tests", function () {
398
425
  options: "1,5,3"
399
426
  });
400
427
  });
428
+
401
429
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
402
- onSubmit: handlerOnSubmit
403
- }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
404
- name: "options",
405
- label: "test-select-label",
406
- defaultValue: ["1", "5"],
407
- options: single_options,
408
- multiple: true
409
- }), /*#__PURE__*/_react["default"].createElement("button", {
410
- type: "submit"
411
- }, "Submit"))),
412
- getByText = _render6.getByText,
413
- getByRole = _render6.getByRole,
414
- getAllByRole = _render6.getAllByRole;
430
+ onSubmit: handlerOnSubmit
431
+ }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
432
+ name: "options",
433
+ label: "test-select-label",
434
+ defaultValue: ["1", "5"],
435
+ options: singleOptions,
436
+ multiple: true
437
+ }), /*#__PURE__*/_react["default"].createElement("button", {
438
+ type: "submit"
439
+ }, "Submit"))),
440
+ getByText = _render6.getByText,
441
+ getByRole = _render6.getByRole,
442
+ getAllByRole = _render6.getAllByRole;
443
+
415
444
  var select = getByRole("combobox");
416
445
  var submit = getByText("Submit");
446
+
417
447
  _userEvent["default"].click(select);
448
+
418
449
  _userEvent["default"].click(getAllByRole("option")[2]);
450
+
419
451
  _userEvent["default"].click(submit);
420
452
  });
421
453
  test("Disabled select - Cannot gain focus or open the listbox via click", function () {
422
454
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
423
- label: "test-select-label",
424
- value: ["1", "2"],
425
- options: single_options,
426
- disabled: true
427
- })),
428
- getByRole = _render7.getByRole,
429
- queryByRole = _render7.queryByRole;
455
+ label: "test-select-label",
456
+ value: ["1", "2"],
457
+ options: singleOptions,
458
+ disabled: true
459
+ })),
460
+ getByRole = _render7.getByRole,
461
+ queryByRole = _render7.queryByRole;
462
+
430
463
  var select = getByRole("combobox");
431
464
  expect(select.getAttribute("aria-disabled")).toBe("true");
465
+
432
466
  _userEvent["default"].click(select);
467
+
433
468
  expect(queryByRole("listbox")).toBeFalsy();
434
469
  expect(document.activeElement === select).toBeFalsy();
435
470
  });
436
471
  test("Disabled select - Clear all options action must be shown but not clickable", function () {
437
472
  var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
438
- label: "test-select-label",
439
- value: ["1", "2"],
440
- options: single_options,
441
- disabled: true,
442
- searchable: true,
443
- multiple: true
444
- })),
445
- getByRole = _render8.getByRole,
446
- getByText = _render8.getByText;
473
+ label: "test-select-label",
474
+ value: ["1", "2"],
475
+ options: singleOptions,
476
+ disabled: true,
477
+ searchable: true,
478
+ multiple: true
479
+ })),
480
+ getByRole = _render8.getByRole,
481
+ getByText = _render8.getByText;
482
+
447
483
  _userEvent["default"].click(getByRole("button"));
484
+
448
485
  expect(getByText("Option 01, Option 02")).toBeTruthy();
449
486
  });
450
487
  test("Disabled select - Does not call onBlur event", function () {
451
488
  var onBlur = jest.fn();
489
+
452
490
  var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
453
- label: "test-select-label",
454
- options: single_options,
455
- disabled: true,
456
- onBlur: onBlur
457
- })),
458
- getByRole = _render9.getByRole;
491
+ label: "test-select-label",
492
+ options: singleOptions,
493
+ disabled: true,
494
+ onBlur: onBlur
495
+ })),
496
+ getByRole = _render9.getByRole;
497
+
459
498
  var select = getByRole("combobox");
499
+
460
500
  _userEvent["default"].click(select);
501
+
461
502
  _react2.fireEvent.keyDown(getByRole("combobox"), {
462
503
  key: "Tab",
463
504
  code: "Tab",
464
505
  keyCode: 9,
465
506
  charCode: 9
466
507
  });
508
+
467
509
  expect(onBlur).not.toHaveBeenCalled();
468
510
  });
469
511
  test("Disabled select - When the component gains the focus, the listbox does not open", function () {
470
512
  var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
471
- label: "test-select-label",
472
- value: ["1", "2"],
473
- options: single_options,
474
- disabled: true,
475
- searchable: true,
476
- multiple: true
477
- })),
478
- getByRole = _render10.getByRole,
479
- queryByRole = _render10.queryByRole;
513
+ label: "test-select-label",
514
+ value: ["1", "2"],
515
+ options: singleOptions,
516
+ disabled: true,
517
+ searchable: true,
518
+ multiple: true
519
+ })),
520
+ getByRole = _render10.getByRole,
521
+ queryByRole = _render10.queryByRole;
522
+
480
523
  var select = getByRole("combobox");
524
+
481
525
  _react2.fireEvent.focus(select);
526
+
482
527
  expect(queryByRole("listbox")).toBeFalsy();
483
528
  expect(document.activeElement === select).toBeFalsy();
484
529
  });
@@ -489,47 +534,60 @@ describe("Select component tests", function () {
489
534
  var formProps = Object.fromEntries(formData);
490
535
  expect(formProps).toStrictEqual({});
491
536
  });
537
+
492
538
  var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
493
- onSubmit: handlerOnSubmit
494
- }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
495
- label: "test-select-label",
496
- defaultValue: "1",
497
- options: single_options,
498
- disabled: true
499
- }), /*#__PURE__*/_react["default"].createElement("button", {
500
- type: "submit"
501
- }, "Submit"))),
502
- getByText = _render11.getByText;
539
+ onSubmit: handlerOnSubmit
540
+ }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
541
+ label: "test-select-label",
542
+ defaultValue: "1",
543
+ options: singleOptions,
544
+ disabled: true
545
+ }), /*#__PURE__*/_react["default"].createElement("button", {
546
+ type: "submit"
547
+ }, "Submit"))),
548
+ getByText = _render11.getByText;
549
+
503
550
  var submit = getByText("Submit");
551
+
504
552
  _userEvent["default"].click(submit);
505
553
  });
506
554
  test("Controlled - Single selection - Not optional constraint", function () {
507
555
  var onChange = jest.fn();
508
556
  var onBlur = jest.fn();
557
+
509
558
  var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
510
- label: "test-select-label",
511
- options: single_options,
512
- onChange: onChange,
513
- onBlur: onBlur
514
- })),
515
- getByRole = _render12.getByRole,
516
- getAllByRole = _render12.getAllByRole;
559
+ label: "test-select-label",
560
+ options: singleOptions,
561
+ onChange: onChange,
562
+ onBlur: onBlur
563
+ })),
564
+ getByRole = _render12.getByRole,
565
+ getAllByRole = _render12.getAllByRole;
566
+
517
567
  var select = getByRole("combobox");
518
568
  expect(select.getAttribute("aria-required")).toBe("true");
569
+
519
570
  _react2.fireEvent.focus(select);
571
+
520
572
  _react2.fireEvent.blur(select);
573
+
521
574
  expect(onBlur).toHaveBeenCalled();
522
575
  expect(onBlur).toHaveBeenCalledWith({
523
576
  value: "",
524
577
  error: "This field is required. Please, enter a value."
525
578
  });
579
+
526
580
  _userEvent["default"].click(select);
581
+
527
582
  _userEvent["default"].click(getAllByRole("option")[0]);
583
+
528
584
  expect(onChange).toHaveBeenCalled();
529
585
  expect(onChange).toHaveBeenCalledWith({
530
586
  value: "1"
531
587
  });
588
+
532
589
  _react2.fireEvent.blur(select);
590
+
533
591
  expect(onBlur).toHaveBeenCalled();
534
592
  expect(onBlur).toHaveBeenCalledWith({
535
593
  value: "1"
@@ -538,45 +596,62 @@ describe("Select component tests", function () {
538
596
  test("Controlled - Multiple selection - Not optional constraint", function () {
539
597
  var onChange = jest.fn();
540
598
  var onBlur = jest.fn();
599
+
541
600
  var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
542
- label: "test-select-label",
543
- options: single_options,
544
- onChange: onChange,
545
- onBlur: onBlur,
546
- multiple: true
547
- })),
548
- getByRole = _render13.getByRole,
549
- getAllByRole = _render13.getAllByRole;
601
+ label: "test-select-label",
602
+ options: singleOptions,
603
+ onChange: onChange,
604
+ onBlur: onBlur,
605
+ multiple: true
606
+ })),
607
+ getByRole = _render13.getByRole,
608
+ getAllByRole = _render13.getAllByRole;
609
+
550
610
  var select = getByRole("combobox");
551
611
  expect(select.getAttribute("aria-required")).toBe("true");
612
+
552
613
  _react2.fireEvent.focus(select);
614
+
553
615
  _react2.fireEvent.blur(select);
616
+
554
617
  expect(onBlur).toHaveBeenCalled();
555
618
  expect(onBlur).toHaveBeenCalledWith({
556
619
  value: [],
557
620
  error: "This field is required. Please, enter a value."
558
621
  });
622
+
559
623
  _userEvent["default"].click(select);
624
+
560
625
  _userEvent["default"].click(getAllByRole("option")[0]);
626
+
561
627
  _userEvent["default"].click(getAllByRole("option")[1]);
628
+
562
629
  expect(onChange).toHaveBeenCalled();
563
630
  expect(onChange).toHaveBeenCalledWith({
564
631
  value: ["1", "2"]
565
632
  });
633
+
566
634
  _react2.fireEvent.blur(select);
635
+
567
636
  expect(onBlur).toHaveBeenCalled();
568
637
  expect(onBlur).toHaveBeenCalledWith({
569
638
  value: ["1", "2"]
570
639
  });
640
+
571
641
  _userEvent["default"].click(select);
642
+
572
643
  _userEvent["default"].click(getAllByRole("option")[0]);
644
+
573
645
  _userEvent["default"].click(getAllByRole("option")[1]);
646
+
574
647
  expect(onChange).toHaveBeenCalled();
575
648
  expect(onChange).toHaveBeenCalledWith({
576
649
  value: [],
577
650
  error: "This field is required. Please, enter a value."
578
651
  });
652
+
579
653
  _react2.fireEvent.blur(select);
654
+
580
655
  expect(onBlur).toHaveBeenCalled();
581
656
  expect(onBlur).toHaveBeenCalledWith({
582
657
  value: [],
@@ -586,18 +661,23 @@ describe("Select component tests", function () {
586
661
  test("Controlled - Optional constraint", function () {
587
662
  var onChange = jest.fn();
588
663
  var onBlur = jest.fn();
664
+
589
665
  var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
590
- label: "test-select-label",
591
- options: single_options,
592
- onChange: onChange,
593
- onBlur: onBlur,
594
- optional: true
595
- })),
596
- getByRole = _render14.getByRole;
666
+ label: "test-select-label",
667
+ options: singleOptions,
668
+ onChange: onChange,
669
+ onBlur: onBlur,
670
+ optional: true
671
+ })),
672
+ getByRole = _render14.getByRole;
673
+
597
674
  var select = getByRole("combobox");
598
675
  expect(select.getAttribute("aria-required")).toBe("false");
676
+
599
677
  _react2.fireEvent.focus(select);
678
+
600
679
  _react2.fireEvent.blur(select);
680
+
601
681
  expect(onBlur).toHaveBeenCalled();
602
682
  expect(onBlur).toHaveBeenCalledWith({
603
683
  value: ""
@@ -606,15 +686,18 @@ describe("Select component tests", function () {
606
686
  });
607
687
  test("Non-Grouped Options - Opens listbox and renders correctly or closes it with a click on select", function () {
608
688
  var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
609
- label: "test-select-label",
610
- options: single_options
611
- })),
612
- getByText = _render15.getByText,
613
- getByRole = _render15.getByRole,
614
- getAllByRole = _render15.getAllByRole,
615
- queryByRole = _render15.queryByRole;
689
+ label: "test-select-label",
690
+ options: singleOptions
691
+ })),
692
+ getByText = _render15.getByText,
693
+ getByRole = _render15.getByRole,
694
+ getAllByRole = _render15.getAllByRole,
695
+ queryByRole = _render15.queryByRole;
696
+
616
697
  var select = getByRole("combobox");
698
+
617
699
  _userEvent["default"].click(select);
700
+
618
701
  expect(getByRole("listbox")).toBeTruthy();
619
702
  expect(select.getAttribute("aria-expanded")).toBe("true");
620
703
  expect(getByText("Option 01")).toBeTruthy();
@@ -622,451 +705,562 @@ describe("Select component tests", function () {
622
705
  expect(getByText("Option 08")).toBeTruthy();
623
706
  expect(getByText("Option 09")).toBeTruthy();
624
707
  expect(getAllByRole("option").length).toBe(20);
708
+
625
709
  _userEvent["default"].click(select);
710
+
626
711
  expect(queryByRole("listbox")).toBeFalsy();
627
712
  expect(select.getAttribute("aria-expanded")).toBe("false");
628
713
  });
629
714
  test("Non-Grouped Options - If an empty list of options is passed, the select is rendered but doestn't open the listbox", function () {
630
715
  var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
631
- label: "test-select-label",
632
- options: []
633
- })),
634
- getByRole = _render16.getByRole,
635
- queryByRole = _render16.queryByRole;
716
+ label: "test-select-label",
717
+ options: []
718
+ })),
719
+ getByRole = _render16.getByRole,
720
+ queryByRole = _render16.queryByRole;
721
+
636
722
  var select = getByRole("combobox");
723
+
637
724
  _userEvent["default"].click(select);
725
+
638
726
  expect(queryByRole("listbox")).toBeFalsy();
639
727
  expect(select.getAttribute("aria-expanded")).toBe("false");
640
728
  });
641
729
  test("Non-Grouped Options - Click in an option selects it and closes the listbox", function () {
642
730
  var onChange = jest.fn();
731
+
643
732
  var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
644
- name: "test",
645
- label: "test-select-label",
646
- options: single_options,
647
- onChange: onChange
648
- })),
649
- getByText = _render17.getByText,
650
- getByRole = _render17.getByRole,
651
- getAllByRole = _render17.getAllByRole,
652
- queryByRole = _render17.queryByRole,
653
- container = _render17.container;
733
+ name: "test",
734
+ label: "test-select-label",
735
+ options: singleOptions,
736
+ onChange: onChange
737
+ })),
738
+ getByText = _render17.getByText,
739
+ getByRole = _render17.getByRole,
740
+ getAllByRole = _render17.getAllByRole,
741
+ queryByRole = _render17.queryByRole,
742
+ container = _render17.container;
743
+
654
744
  var select = getByRole("combobox");
655
745
  var submitInput = container.querySelector("input[name=\"test\"]");
746
+
656
747
  _userEvent["default"].click(select);
748
+
657
749
  _userEvent["default"].click(getAllByRole("option")[2]);
750
+
658
751
  expect(onChange).toHaveBeenCalledWith({
659
752
  value: "3"
660
753
  });
661
754
  expect(queryByRole("listbox")).toBeFalsy();
662
755
  expect(getByText("Option 03")).toBeTruthy();
756
+
663
757
  _userEvent["default"].click(select);
758
+
664
759
  expect(getAllByRole("option")[2].getAttribute("aria-selected")).toBe("true");
665
760
  expect(submitInput.value).toBe("3");
666
761
  });
667
762
  test("Non-Grouped Options - Optional renders an empty first option (selected by default) with the placeholder as its label", function () {
668
763
  var onChange = jest.fn();
764
+
669
765
  var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
670
- label: "test-select-label",
671
- placeholder: "Choose an option",
672
- options: single_options,
673
- onChange: onChange,
674
- optional: true
675
- })),
676
- getByRole = _render18.getByRole,
677
- getAllByRole = _render18.getAllByRole,
678
- getAllByText = _render18.getAllByText;
766
+ label: "test-select-label",
767
+ placeholder: "Choose an option",
768
+ options: singleOptions,
769
+ onChange: onChange,
770
+ optional: true
771
+ })),
772
+ getByRole = _render18.getByRole,
773
+ getAllByRole = _render18.getAllByRole,
774
+ getAllByText = _render18.getAllByText;
775
+
679
776
  var select = getByRole("combobox");
777
+
680
778
  _userEvent["default"].click(select);
779
+
681
780
  expect(getAllByText("Choose an option").length).toBe(2);
682
781
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("true");
782
+
683
783
  _userEvent["default"].click(getAllByRole("option")[0]);
784
+
684
785
  expect(onChange).toHaveBeenCalledWith({
685
786
  value: ""
686
787
  });
687
788
  expect(getAllByText("Choose an option").length).toBe(1);
789
+
688
790
  _react2.fireEvent.keyDown(select, {
689
791
  key: "ArrowDown",
690
792
  code: "ArrowDown",
691
793
  keyCode: 40,
692
794
  charCode: 40
693
795
  });
796
+
694
797
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
798
+
695
799
  _react2.fireEvent.keyDown(select, {
696
800
  key: "Enter",
697
801
  code: "Enter",
698
802
  keyCode: 13,
699
803
  charCode: 13
700
804
  });
805
+
701
806
  expect(onChange).toHaveBeenCalledWith({
702
807
  value: ""
703
808
  });
704
809
  expect(getAllByText("Choose an option").length).toBe(1);
810
+
705
811
  _react2.fireEvent.keyDown(select, {
706
812
  key: "ArrowUp",
707
813
  code: "ArrowUp",
708
814
  keyCode: 38,
709
815
  charCode: 38
710
816
  });
817
+
711
818
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
712
819
  });
713
820
  test("Non-Grouped Options - Filtering options never affects the optional item until there are no coincidence", function () {
714
821
  var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
715
- label: "test-select-label",
716
- placeholder: "Placeholder example",
717
- options: single_options,
718
- optional: true,
719
- searchable: true
720
- })),
721
- getByRole = _render19.getByRole,
722
- getAllByRole = _render19.getAllByRole,
723
- getByText = _render19.getByText,
724
- queryByText = _render19.queryByText,
725
- container = _render19.container;
822
+ label: "test-select-label",
823
+ placeholder: "Placeholder example",
824
+ options: singleOptions,
825
+ optional: true,
826
+ searchable: true
827
+ })),
828
+ getByRole = _render19.getByRole,
829
+ getAllByRole = _render19.getAllByRole,
830
+ getByText = _render19.getByText,
831
+ queryByText = _render19.queryByText,
832
+ container = _render19.container;
833
+
726
834
  var select = getByRole("combobox");
727
835
  var searchInput = container.querySelectorAll("input")[1];
836
+
728
837
  _userEvent["default"].click(select);
838
+
729
839
  _userEvent["default"].type(searchInput, "1");
840
+
730
841
  expect(getByText("Placeholder example")).toBeTruthy();
731
842
  expect(getAllByRole("option").length).toBe(12);
843
+
732
844
  _userEvent["default"].type(searchInput, "123");
845
+
733
846
  expect(queryByText("Placeholder example")).toBeFalsy();
734
847
  expect(getByText("No matches found")).toBeTruthy();
735
848
  });
736
849
  test("Non-Grouped Options - Renders SVG icons correctly when passed with options", function () {
737
850
  var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
738
- label: "test-select-label",
739
- options: svg_icon_options
740
- })),
741
- getByRole = _render20.getByRole,
742
- getAllByRole = _render20.getAllByRole;
851
+ label: "test-select-label",
852
+ options: svgIconOptions
853
+ })),
854
+ getByRole = _render20.getByRole,
855
+ getAllByRole = _render20.getAllByRole;
856
+
743
857
  var select = getByRole("combobox");
858
+
744
859
  _userEvent["default"].click(select);
860
+
745
861
  expect(getByRole("listbox").querySelectorAll("[role='img']").length).toBe(4);
746
862
  expect(getAllByRole("option").length).toBe(5);
747
863
  });
748
864
  test("Non-Grouped Options - Renders string url icons correctly when passed with options", function () {
749
865
  var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
750
- label: "test-select-label",
751
- options: url_icon_options,
752
- optional: true
753
- })),
754
- getByRole = _render21.getByRole,
755
- getAllByRole = _render21.getAllByRole;
866
+ label: "test-select-label",
867
+ options: urlIconOptions,
868
+ optional: true
869
+ })),
870
+ getByRole = _render21.getByRole,
871
+ getAllByRole = _render21.getAllByRole;
872
+
756
873
  var select = getByRole("combobox");
874
+
757
875
  _userEvent["default"].click(select);
876
+
758
877
  expect(getByRole("listbox").querySelectorAll("img").length).toBe(4);
759
878
  expect(getAllByRole("option").length).toBe(6);
760
879
  });
761
880
  test("Non-Grouped Options: Arrow up key - Opens the listbox and visually focus the last option", function () {
762
881
  var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
763
- label: "test-select-label",
764
- options: single_options
765
- })),
766
- getByRole = _render22.getByRole,
767
- queryByRole = _render22.queryByRole;
882
+ label: "test-select-label",
883
+ options: singleOptions
884
+ })),
885
+ getByRole = _render22.getByRole,
886
+ queryByRole = _render22.queryByRole;
887
+
768
888
  var select = getByRole("combobox");
889
+
769
890
  _react2.fireEvent.keyDown(select, {
770
891
  key: "ArrowUp",
771
892
  code: "ArrowUp",
772
893
  keyCode: 38,
773
894
  charCode: 38
774
895
  });
896
+
775
897
  expect(queryByRole("listbox")).toBeTruthy();
776
898
  expect(select.getAttribute("aria-activedescendant")).toBe("option-19");
777
899
  });
778
900
  test("Non-Grouped Options: Arrow up key - Puts the focus in last option when the first one is visually focused", function () {
779
901
  var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
780
- label: "test-select-label",
781
- options: single_options
782
- })),
783
- getByRole = _render23.getByRole,
784
- queryByRole = _render23.queryByRole;
902
+ label: "test-select-label",
903
+ options: singleOptions
904
+ })),
905
+ getByRole = _render23.getByRole,
906
+ queryByRole = _render23.queryByRole;
907
+
785
908
  var select = getByRole("combobox");
909
+
786
910
  _react2.fireEvent.keyDown(select, {
787
911
  key: "ArrowDown",
788
912
  code: "ArrowDown",
789
913
  keyCode: 40,
790
914
  charCode: 40
791
915
  });
916
+
792
917
  _react2.fireEvent.keyDown(select, {
793
918
  key: "ArrowUp",
794
919
  code: "ArrowUp",
795
920
  keyCode: 38,
796
921
  charCode: 38
797
922
  });
923
+
798
924
  expect(queryByRole("listbox")).toBeTruthy();
799
925
  expect(select.getAttribute("aria-activedescendant")).toBe("option-19");
800
926
  });
801
927
  test("Non-Grouped Options: Arrow down key - Opens the listbox and visually focus the first option", function () {
802
928
  var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
803
- label: "test-select-label",
804
- options: single_options
805
- })),
806
- getByRole = _render24.getByRole,
807
- queryByRole = _render24.queryByRole;
929
+ label: "test-select-label",
930
+ options: singleOptions
931
+ })),
932
+ getByRole = _render24.getByRole,
933
+ queryByRole = _render24.queryByRole;
934
+
808
935
  var select = getByRole("combobox");
936
+
809
937
  _react2.fireEvent.keyDown(select, {
810
938
  key: "ArrowDown",
811
939
  code: "ArrowDown",
812
940
  keyCode: 40,
813
941
  charCode: 40
814
942
  });
943
+
815
944
  expect(queryByRole("listbox")).toBeTruthy();
816
945
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
817
946
  });
818
947
  test("Non-Grouped Options: Arrow down key - Puts the focus in the first option when the last one is visually focused", function () {
819
948
  var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
820
- label: "test-select-label",
821
- options: single_options
822
- })),
823
- getByRole = _render25.getByRole,
824
- queryByRole = _render25.queryByRole;
949
+ label: "test-select-label",
950
+ options: singleOptions
951
+ })),
952
+ getByRole = _render25.getByRole,
953
+ queryByRole = _render25.queryByRole;
954
+
825
955
  var select = getByRole("combobox");
956
+
826
957
  _react2.fireEvent.keyDown(select, {
827
958
  key: "ArrowUp",
828
959
  code: "ArrowUp",
829
960
  keyCode: 38,
830
961
  charCode: 38
831
962
  });
963
+
832
964
  _react2.fireEvent.keyDown(select, {
833
965
  key: "ArrowDown",
834
966
  code: "ArrowDown",
835
967
  keyCode: 40,
836
968
  charCode: 40
837
969
  });
970
+
838
971
  expect(queryByRole("listbox")).toBeTruthy();
839
972
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
840
973
  });
841
974
  test("Non-Grouped Options: Enter key - Selects the visually focused option and closes the listbox", function () {
842
975
  var onChange = jest.fn();
976
+
843
977
  var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
844
- label: "test-select-label",
845
- options: single_options,
846
- onChange: onChange,
847
- optional: true
848
- })),
849
- getByText = _render26.getByText,
850
- getByRole = _render26.getByRole,
851
- getAllByRole = _render26.getAllByRole,
852
- queryByRole = _render26.queryByRole;
978
+ label: "test-select-label",
979
+ options: singleOptions,
980
+ onChange: onChange,
981
+ optional: true
982
+ })),
983
+ getByText = _render26.getByText,
984
+ getByRole = _render26.getByRole,
985
+ getAllByRole = _render26.getAllByRole,
986
+ queryByRole = _render26.queryByRole;
987
+
853
988
  var select = getByRole("combobox");
989
+
854
990
  _react2.fireEvent.keyDown(select, {
855
991
  key: "ArrowUp",
856
992
  code: "ArrowUp",
857
993
  keyCode: 38,
858
994
  charCode: 38
859
995
  });
996
+
860
997
  _react2.fireEvent.keyDown(select, {
861
998
  key: "ArrowUp",
862
999
  code: "ArrowUp",
863
1000
  keyCode: 38,
864
1001
  charCode: 38
865
1002
  });
1003
+
866
1004
  _react2.fireEvent.keyDown(select, {
867
1005
  key: "ArrowUp",
868
1006
  code: "ArrowUp",
869
1007
  keyCode: 38,
870
1008
  charCode: 38
871
1009
  });
1010
+
872
1011
  _react2.fireEvent.keyDown(select, {
873
1012
  key: "ArrowDown",
874
1013
  code: "ArrowDown",
875
1014
  keyCode: 40,
876
1015
  charCode: 40
877
1016
  });
1017
+
878
1018
  _react2.fireEvent.keyDown(select, {
879
1019
  key: "Enter",
880
1020
  code: "Enter",
881
1021
  keyCode: 13,
882
1022
  charCode: 13
883
1023
  });
1024
+
884
1025
  expect(onChange).toHaveBeenCalledWith({
885
1026
  value: "20"
886
1027
  });
887
1028
  expect(queryByRole("listbox")).toBeFalsy();
888
1029
  expect(getByText("Option 20")).toBeTruthy();
1030
+
889
1031
  _userEvent["default"].click(select);
1032
+
890
1033
  expect(getAllByRole("option")[20].getAttribute("aria-selected")).toBe("true");
891
1034
  });
892
1035
  test("Non-Grouped Options: Searchable - Displays an input for filtering the list of options", function () {
893
1036
  var onChange = jest.fn();
1037
+
894
1038
  var _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
895
- label: "test-select-label",
896
- options: single_options,
897
- onChange: onChange,
898
- searchable: true
899
- })),
900
- container = _render27.container,
901
- getByText = _render27.getByText,
902
- getByRole = _render27.getByRole,
903
- getAllByRole = _render27.getAllByRole,
904
- queryByRole = _render27.queryByRole;
1039
+ label: "test-select-label",
1040
+ options: singleOptions,
1041
+ onChange: onChange,
1042
+ searchable: true
1043
+ })),
1044
+ container = _render27.container,
1045
+ getByText = _render27.getByText,
1046
+ getByRole = _render27.getByRole,
1047
+ getAllByRole = _render27.getAllByRole,
1048
+ queryByRole = _render27.queryByRole;
1049
+
905
1050
  var select = getByRole("combobox");
906
1051
  var searchInput = container.querySelectorAll("input")[1];
1052
+
907
1053
  _userEvent["default"].click(select);
1054
+
908
1055
  expect(getByRole("listbox")).toBeTruthy();
1056
+
909
1057
  _userEvent["default"].type(searchInput, "08");
1058
+
910
1059
  _userEvent["default"].click(getByRole("option"));
1060
+
911
1061
  expect(onChange).toHaveBeenCalledWith({
912
1062
  value: "8"
913
1063
  });
914
1064
  expect(queryByRole("listbox")).toBeFalsy();
915
1065
  expect(getByText("Option 08")).toBeTruthy();
916
1066
  expect(searchInput.value).toBe("");
1067
+
917
1068
  _userEvent["default"].click(select);
1069
+
918
1070
  expect(getAllByRole("option")[7].getAttribute("aria-selected")).toBe("true");
919
1071
  });
920
1072
  test("Non-Grouped Options: Searchable - Displays 'No matches found' when there are no filtering results", function () {
921
1073
  var onChange = jest.fn();
1074
+
922
1075
  var _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
923
- label: "test-select-label",
924
- options: single_options,
925
- onChange: onChange,
926
- searchable: true
927
- })),
928
- container = _render28.container,
929
- getByText = _render28.getByText,
930
- getByRole = _render28.getByRole;
1076
+ label: "test-select-label",
1077
+ options: singleOptions,
1078
+ onChange: onChange,
1079
+ searchable: true
1080
+ })),
1081
+ container = _render28.container,
1082
+ getByText = _render28.getByText,
1083
+ getByRole = _render28.getByRole;
1084
+
931
1085
  var select = getByRole("combobox");
932
1086
  var searchInput = container.querySelectorAll("input")[1];
1087
+
933
1088
  _userEvent["default"].click(select);
1089
+
934
1090
  expect(getByRole("listbox")).toBeTruthy();
1091
+
935
1092
  _userEvent["default"].type(searchInput, "abc");
1093
+
936
1094
  expect(getByText("No matches found")).toBeTruthy();
937
1095
  });
938
1096
  test("Non-Grouped Options: Searchable - Clicking the select, when the list is open, clears the search value", function () {
939
1097
  var onChange = jest.fn();
1098
+
940
1099
  var _render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
941
- label: "test-select-label",
942
- options: single_options,
943
- onChange: onChange,
944
- searchable: true
945
- })),
946
- container = _render29.container,
947
- getByText = _render29.getByText,
948
- getByRole = _render29.getByRole,
949
- getAllByRole = _render29.getAllByRole;
1100
+ label: "test-select-label",
1101
+ options: singleOptions,
1102
+ onChange: onChange,
1103
+ searchable: true
1104
+ })),
1105
+ container = _render29.container,
1106
+ getByText = _render29.getByText,
1107
+ getByRole = _render29.getByRole,
1108
+ getAllByRole = _render29.getAllByRole;
1109
+
950
1110
  var select = getByRole("combobox");
951
1111
  var searchInput = container.querySelectorAll("input")[1];
1112
+
952
1113
  _userEvent["default"].click(select);
1114
+
953
1115
  expect(getByRole("listbox")).toBeTruthy();
1116
+
954
1117
  _userEvent["default"].type(searchInput, "2");
1118
+
955
1119
  expect(getByText("Option 02")).toBeTruthy();
956
1120
  expect(getByText("Option 12")).toBeTruthy();
957
1121
  expect(getByText("Option 20")).toBeTruthy();
958
1122
  expect(getAllByRole("option").length).toBe(3);
1123
+
959
1124
  _userEvent["default"].click(select);
1125
+
960
1126
  expect(searchInput.value).toBe("");
961
1127
  });
962
1128
  test("Non-Grouped Options: Searchable - Writing displays the listbox, if it was not open", function () {
963
1129
  var onChange = jest.fn();
1130
+
964
1131
  var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
965
- label: "test-select-label",
966
- options: single_options,
967
- onChange: onChange,
968
- searchable: true
969
- })),
970
- container = _render30.container,
971
- getByRole = _render30.getByRole,
972
- queryByRole = _render30.queryByRole;
1132
+ label: "test-select-label",
1133
+ options: singleOptions,
1134
+ onChange: onChange,
1135
+ searchable: true
1136
+ })),
1137
+ container = _render30.container,
1138
+ getByRole = _render30.getByRole,
1139
+ queryByRole = _render30.queryByRole;
1140
+
973
1141
  var select = getByRole("combobox");
974
1142
  var searchInput = container.querySelectorAll("input")[1];
1143
+
975
1144
  _userEvent["default"].click(select);
1145
+
976
1146
  _userEvent["default"].click(select);
1147
+
977
1148
  expect(queryByRole("listbox")).toBeFalsy();
1149
+
978
1150
  _userEvent["default"].type(searchInput, "2");
1151
+
979
1152
  expect(getByRole("listbox")).toBeTruthy();
980
1153
  });
981
1154
  test("Non-Grouped Options: Searchable - Key Esc cleans the search value and closes the options", function () {
982
1155
  var onChange = jest.fn();
1156
+
983
1157
  var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
984
- label: "test-select-label",
985
- options: single_options,
986
- onChange: onChange,
987
- searchable: true
988
- })),
989
- container = _render31.container,
990
- getByRole = _render31.getByRole,
991
- queryByRole = _render31.queryByRole;
1158
+ label: "test-select-label",
1159
+ options: singleOptions,
1160
+ onChange: onChange,
1161
+ searchable: true
1162
+ })),
1163
+ container = _render31.container,
1164
+ getByRole = _render31.getByRole,
1165
+ queryByRole = _render31.queryByRole;
1166
+
992
1167
  var select = getByRole("combobox");
993
1168
  var searchInput = container.querySelectorAll("input")[1];
1169
+
994
1170
  _userEvent["default"].type(searchInput, "Option 02");
1171
+
995
1172
  _react2.fireEvent.keyDown(select, {
996
1173
  key: "Esc",
997
1174
  code: "Esc",
998
1175
  keyCode: 27,
999
1176
  charCode: 27
1000
1177
  });
1178
+
1001
1179
  expect(searchInput.value).toBe("");
1002
1180
  expect(queryByRole("listbox")).toBeFalsy();
1003
1181
  });
1004
1182
  test("Non-Grouped Options: Searchable - While user types, a clear action is displayed for cleaning the search value", function () {
1005
1183
  var onChange = jest.fn();
1184
+
1006
1185
  var _render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1007
- label: "test-select-label",
1008
- options: single_options,
1009
- onChange: onChange,
1010
- searchable: true
1011
- })),
1012
- container = _render32.container,
1013
- getByRole = _render32.getByRole,
1014
- getAllByRole = _render32.getAllByRole,
1015
- queryByTitle = _render32.queryByTitle;
1186
+ label: "test-select-label",
1187
+ options: singleOptions,
1188
+ onChange: onChange,
1189
+ searchable: true
1190
+ })),
1191
+ container = _render32.container,
1192
+ getByRole = _render32.getByRole,
1193
+ getAllByRole = _render32.getAllByRole,
1194
+ queryByTitle = _render32.queryByTitle;
1195
+
1016
1196
  var searchInput = container.querySelectorAll("input")[1];
1197
+
1017
1198
  _userEvent["default"].type(searchInput, "Option 02");
1199
+
1018
1200
  expect(getAllByRole("option").length).toBe(1);
1019
1201
  expect(queryByTitle("Clear search")).toBeTruthy();
1020
1202
  var clearAction = getByRole("button");
1021
1203
  expect(clearAction).toBeTruthy();
1204
+
1022
1205
  _userEvent["default"].click(clearAction);
1206
+
1023
1207
  expect(getByRole("listbox")).toBeTruthy();
1024
1208
  expect(getAllByRole("option").length).toBe(20);
1025
1209
  expect(queryByTitle("Clear search")).toBeFalsy();
1026
1210
  });
1027
1211
  test("Non-Grouped Options: Multiple selection - Displays a checkbox per option and enables the multi-selection", function () {
1028
1212
  var onChange = jest.fn();
1213
+
1029
1214
  var _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1030
- name: "test",
1031
- label: "test-select-label",
1032
- options: single_options,
1033
- onChange: onChange,
1034
- multiple: true
1035
- })),
1036
- getByText = _render33.getByText,
1037
- getAllByText = _render33.getAllByText,
1038
- getByRole = _render33.getByRole,
1039
- getAllByRole = _render33.getAllByRole,
1040
- queryByRole = _render33.queryByRole,
1041
- container = _render33.container;
1215
+ name: "test",
1216
+ label: "test-select-label",
1217
+ options: singleOptions,
1218
+ onChange: onChange,
1219
+ multiple: true
1220
+ })),
1221
+ getByText = _render33.getByText,
1222
+ getAllByText = _render33.getAllByText,
1223
+ getByRole = _render33.getByRole,
1224
+ getAllByRole = _render33.getAllByRole,
1225
+ queryByRole = _render33.queryByRole,
1226
+ container = _render33.container;
1227
+
1042
1228
  var select = getByRole("combobox");
1043
1229
  var submitInput = container.querySelector("input[name=\"test\"]");
1230
+
1044
1231
  _userEvent["default"].click(select);
1232
+
1045
1233
  expect(getByRole("listbox").getAttribute("aria-multiselectable")).toBe("true");
1234
+
1046
1235
  _userEvent["default"].click(getAllByRole("option")[10]);
1236
+
1047
1237
  expect(onChange).toHaveBeenCalledWith({
1048
1238
  value: ["11"]
1049
1239
  });
1050
1240
  expect(queryByRole("listbox")).toBeTruthy();
1051
1241
  expect(getAllByText("Option 11").length).toBe(2);
1242
+
1052
1243
  _react2.fireEvent.keyDown(select, {
1053
1244
  key: "ArrowUp",
1054
1245
  code: "ArrowUp",
1055
1246
  keyCode: 38,
1056
1247
  charCode: 38
1057
1248
  });
1249
+
1058
1250
  _react2.fireEvent.keyDown(select, {
1059
1251
  key: "ArrowUp",
1060
1252
  code: "ArrowUp",
1061
1253
  keyCode: 38,
1062
1254
  charCode: 38
1063
1255
  });
1256
+
1064
1257
  _react2.fireEvent.keyDown(select, {
1065
1258
  key: "Enter",
1066
1259
  code: "Enter",
1067
1260
  keyCode: 13,
1068
1261
  charCode: 13
1069
1262
  });
1263
+
1070
1264
  expect(onChange).toHaveBeenCalledWith({
1071
1265
  value: ["11", "19"]
1072
1266
  });
@@ -1078,24 +1272,31 @@ describe("Select component tests", function () {
1078
1272
  });
1079
1273
  test("Non-Grouped Options: Multiple selection - Clear action and selection indicator", function () {
1080
1274
  var onChange = jest.fn();
1275
+
1081
1276
  var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1082
- label: "test-select-label",
1083
- options: single_options,
1084
- onChange: onChange,
1085
- multiple: true
1086
- })),
1087
- getByText = _render34.getByText,
1088
- queryByText = _render34.queryByText,
1089
- getByRole = _render34.getByRole,
1090
- getAllByRole = _render34.getAllByRole,
1091
- queryByRole = _render34.queryByRole,
1092
- getByTitle = _render34.getByTitle,
1093
- queryByTitle = _render34.queryByTitle;
1277
+ label: "test-select-label",
1278
+ options: singleOptions,
1279
+ onChange: onChange,
1280
+ multiple: true
1281
+ })),
1282
+ getByText = _render34.getByText,
1283
+ queryByText = _render34.queryByText,
1284
+ getByRole = _render34.getByRole,
1285
+ getAllByRole = _render34.getAllByRole,
1286
+ queryByRole = _render34.queryByRole,
1287
+ getByTitle = _render34.getByTitle,
1288
+ queryByTitle = _render34.queryByTitle;
1289
+
1094
1290
  var select = getByRole("combobox");
1291
+
1095
1292
  _userEvent["default"].click(select);
1293
+
1096
1294
  _userEvent["default"].click(getAllByRole("option")[5]);
1295
+
1097
1296
  _userEvent["default"].click(getAllByRole("option")[8]);
1297
+
1098
1298
  _userEvent["default"].click(getAllByRole("option")[13]);
1299
+
1099
1300
  expect(onChange).toHaveBeenCalledWith({
1100
1301
  value: ["6", "9", "14"]
1101
1302
  });
@@ -1104,7 +1305,9 @@ describe("Select component tests", function () {
1104
1305
  expect(getByText("3", {
1105
1306
  exact: true
1106
1307
  })).toBeTruthy();
1308
+
1107
1309
  _userEvent["default"].click(getByTitle("Clear selection"));
1310
+
1108
1311
  expect(onChange).toHaveBeenCalledWith({
1109
1312
  value: [],
1110
1313
  error: "This field is required. Please, enter a value."
@@ -1116,24 +1319,30 @@ describe("Select component tests", function () {
1116
1319
  });
1117
1320
  test("Non-Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", function () {
1118
1321
  var onChange = jest.fn();
1322
+
1119
1323
  var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1120
- label: "test-select-label",
1121
- placeholder: "Choose an option",
1122
- options: single_options,
1123
- onChange: onChange,
1124
- multiple: true,
1125
- optional: true
1126
- })),
1127
- getByText = _render35.getByText,
1128
- getAllByText = _render35.getAllByText,
1129
- getByRole = _render35.getByRole,
1130
- getAllByRole = _render35.getAllByRole;
1324
+ label: "test-select-label",
1325
+ placeholder: "Choose an option",
1326
+ options: singleOptions,
1327
+ onChange: onChange,
1328
+ multiple: true,
1329
+ optional: true
1330
+ })),
1331
+ getByText = _render35.getByText,
1332
+ getAllByText = _render35.getAllByText,
1333
+ getByRole = _render35.getByRole,
1334
+ getAllByRole = _render35.getAllByRole;
1335
+
1131
1336
  var select = getByRole("combobox");
1132
1337
  expect(getByText("(Optional)")).toBeTruthy();
1338
+
1133
1339
  _userEvent["default"].click(select);
1340
+
1134
1341
  expect(getAllByText("Choose an option").length).toBe(1);
1135
1342
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("false");
1343
+
1136
1344
  _userEvent["default"].click(getAllByRole("option")[0]);
1345
+
1137
1346
  expect(onChange).toHaveBeenCalledWith({
1138
1347
  value: ["1"]
1139
1348
  });
@@ -1141,132 +1350,167 @@ describe("Select component tests", function () {
1141
1350
  });
1142
1351
  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 () {
1143
1352
  var _render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1144
- label: "test-select-label",
1145
- options: single_options
1146
- })),
1147
- getByText = _render36.getByText,
1148
- getByRole = _render36.getByRole,
1149
- getAllByRole = _render36.getAllByRole;
1353
+ label: "test-select-label",
1354
+ options: singleOptions
1355
+ })),
1356
+ getByText = _render36.getByText,
1357
+ getByRole = _render36.getByRole,
1358
+ getAllByRole = _render36.getAllByRole;
1359
+
1150
1360
  var select = getByRole("combobox");
1361
+
1151
1362
  _userEvent["default"].click(select);
1363
+
1152
1364
  _userEvent["default"].click(getAllByRole("option")[4]);
1365
+
1153
1366
  expect(getByText("Option 05")).toBeTruthy();
1367
+
1154
1368
  _react2.fireEvent.keyDown(select, {
1155
1369
  key: "ArrowUp",
1156
1370
  code: "ArrowUp",
1157
1371
  keyCode: 38,
1158
1372
  charCode: 38
1159
1373
  });
1374
+
1160
1375
  expect(select.getAttribute("aria-activedescendant")).toBe("option-4");
1376
+
1161
1377
  _react2.fireEvent.keyDown(select, {
1162
1378
  key: "ArrowUp",
1163
1379
  code: "ArrowUp",
1164
1380
  keyCode: 38,
1165
1381
  charCode: 38
1166
1382
  });
1383
+
1167
1384
  _react2.fireEvent.keyDown(select, {
1168
1385
  key: "Enter",
1169
1386
  code: "Enter",
1170
1387
  keyCode: 13,
1171
1388
  charCode: 13
1172
1389
  });
1390
+
1173
1391
  expect(getByText("Option 04")).toBeTruthy();
1392
+
1174
1393
  _react2.fireEvent.keyDown(select, {
1175
1394
  key: "ArrowDown",
1176
1395
  code: "ArrowDown",
1177
1396
  keyCode: 40,
1178
1397
  charCode: 40
1179
1398
  });
1399
+
1180
1400
  expect(select.getAttribute("aria-activedescendant")).toBe("option-3");
1401
+
1181
1402
  _react2.fireEvent.keyDown(select, {
1182
1403
  key: "ArrowDown",
1183
1404
  code: "ArrowDown",
1184
1405
  keyCode: 40,
1185
1406
  charCode: 40
1186
1407
  });
1408
+
1187
1409
  _react2.fireEvent.keyDown(select, {
1188
1410
  key: "ArrowDown",
1189
1411
  code: "ArrowDown",
1190
1412
  keyCode: 40,
1191
1413
  charCode: 40
1192
1414
  });
1415
+
1193
1416
  _react2.fireEvent.keyDown(select, {
1194
1417
  key: "Enter",
1195
1418
  code: "Enter",
1196
1419
  keyCode: 13,
1197
1420
  charCode: 13
1198
1421
  });
1422
+
1199
1423
  expect(getByText("Option 06")).toBeTruthy();
1200
1424
  });
1201
1425
  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 () {
1202
1426
  var _render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1203
- label: "test-select-label",
1204
- options: single_options
1205
- })),
1206
- getByText = _render37.getByText,
1207
- getByRole = _render37.getByRole,
1208
- getAllByRole = _render37.getAllByRole,
1209
- queryByRole = _render37.queryByRole;
1427
+ label: "test-select-label",
1428
+ options: singleOptions
1429
+ })),
1430
+ getByText = _render37.getByText,
1431
+ getByRole = _render37.getByRole,
1432
+ getAllByRole = _render37.getAllByRole,
1433
+ queryByRole = _render37.queryByRole;
1434
+
1210
1435
  var select = getByRole("combobox");
1436
+
1211
1437
  _userEvent["default"].click(select);
1438
+
1212
1439
  _userEvent["default"].click(getAllByRole("option")[15]);
1440
+
1213
1441
  expect(queryByRole("listbox")).toBeFalsy();
1214
1442
  expect(getByText("Option 16")).toBeTruthy();
1443
+
1215
1444
  _userEvent["default"].click(select);
1445
+
1216
1446
  expect(select.getAttribute("aria-activedescendant")).toBeNull();
1447
+
1217
1448
  _react2.fireEvent.keyDown(select, {
1218
1449
  key: "ArrowUp",
1219
1450
  code: "ArrowUp",
1220
1451
  keyCode: 38,
1221
1452
  charCode: 38
1222
1453
  });
1454
+
1223
1455
  expect(select.getAttribute("aria-activedescendant")).toBe("option-15");
1456
+
1224
1457
  _userEvent["default"].click(select);
1458
+
1225
1459
  expect(queryByRole("listbox")).toBeFalsy();
1460
+
1226
1461
  _react2.fireEvent.keyDown(select, {
1227
1462
  key: "ArrowDown",
1228
1463
  code: "ArrowDown",
1229
1464
  keyCode: 40,
1230
1465
  charCode: 40
1231
1466
  });
1467
+
1232
1468
  expect(select.getAttribute("aria-activedescendant")).toBe("option-15");
1469
+
1233
1470
  _react2.fireEvent.keyDown(select, {
1234
1471
  key: "ArrowDown",
1235
1472
  code: "ArrowDown",
1236
1473
  keyCode: 40,
1237
1474
  charCode: 40
1238
1475
  });
1476
+
1239
1477
  _react2.fireEvent.keyDown(select, {
1240
1478
  key: "ArrowDown",
1241
1479
  code: "ArrowDown",
1242
1480
  keyCode: 40,
1243
1481
  charCode: 40
1244
1482
  });
1483
+
1245
1484
  _react2.fireEvent.keyDown(select, {
1246
1485
  key: "ArrowUp",
1247
1486
  code: "ArrowUp",
1248
1487
  keyCode: 38,
1249
1488
  charCode: 38
1250
1489
  });
1490
+
1251
1491
  _react2.fireEvent.keyDown(select, {
1252
1492
  key: "Enter",
1253
1493
  code: "Enter",
1254
1494
  keyCode: 13,
1255
1495
  charCode: 13
1256
1496
  });
1497
+
1257
1498
  expect(getByText("Option 17")).toBeTruthy();
1258
1499
  });
1259
1500
  test("Grouped Options - Opens listbox and renders it correctly or closes it with a click on select", function () {
1260
1501
  var _render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1261
- label: "test-select-label",
1262
- options: group_options
1263
- })),
1264
- getByText = _render38.getByText,
1265
- getByRole = _render38.getByRole,
1266
- getAllByRole = _render38.getAllByRole,
1267
- queryByRole = _render38.queryByRole;
1502
+ label: "test-select-label",
1503
+ options: groupOptions
1504
+ })),
1505
+ getByText = _render38.getByText,
1506
+ getByRole = _render38.getByRole,
1507
+ getAllByRole = _render38.getAllByRole,
1508
+ queryByRole = _render38.queryByRole;
1509
+
1268
1510
  var select = getByRole("combobox");
1511
+
1269
1512
  _userEvent["default"].click(select);
1513
+
1270
1514
  var listbox = getByRole("listbox");
1271
1515
  expect(listbox).toBeTruthy();
1272
1516
  expect(select.getAttribute("aria-expanded")).toBe("true");
@@ -1282,358 +1526,441 @@ describe("Select component tests", function () {
1282
1526
  expect(groups[1].getAttribute("aria-labelledby")).toBe(groupLabels[1].id);
1283
1527
  expect(groups[2].getAttribute("aria-labelledby")).toBe(groupLabels[2].id);
1284
1528
  expect(getAllByRole("option").length).toBe(18);
1529
+
1285
1530
  _userEvent["default"].click(select);
1531
+
1286
1532
  expect(queryByRole("listbox")).toBeFalsy();
1287
1533
  expect(select.getAttribute("aria-expanded")).toBe("false");
1288
1534
  });
1289
1535
  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 () {
1290
1536
  var _render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1291
- label: "test-select-label",
1292
- options: [{
1293
- label: "Group 1",
1294
- options: []
1295
- }]
1296
- })),
1297
- getByRole = _render39.getByRole,
1298
- queryByRole = _render39.queryByRole;
1537
+ label: "test-select-label",
1538
+ options: [{
1539
+ label: "Group 1",
1540
+ options: []
1541
+ }]
1542
+ })),
1543
+ getByRole = _render39.getByRole,
1544
+ queryByRole = _render39.queryByRole;
1545
+
1299
1546
  var select = getByRole("combobox");
1547
+
1300
1548
  _userEvent["default"].click(select);
1549
+
1301
1550
  expect(queryByRole("listbox")).toBeFalsy();
1302
1551
  expect(select.getAttribute("aria-expanded")).toBe("false");
1303
1552
  });
1304
1553
  test("Grouped Options - Click in an option selects it and closes the listbox", function () {
1305
1554
  var onChange = jest.fn();
1555
+
1306
1556
  var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1307
- name: "test",
1308
- label: "test-select-label",
1309
- options: group_options,
1310
- onChange: onChange
1311
- })),
1312
- getByText = _render40.getByText,
1313
- getByRole = _render40.getByRole,
1314
- getAllByRole = _render40.getAllByRole,
1315
- queryByRole = _render40.queryByRole,
1316
- container = _render40.container;
1557
+ name: "test",
1558
+ label: "test-select-label",
1559
+ options: groupOptions,
1560
+ onChange: onChange
1561
+ })),
1562
+ getByText = _render40.getByText,
1563
+ getByRole = _render40.getByRole,
1564
+ getAllByRole = _render40.getAllByRole,
1565
+ queryByRole = _render40.queryByRole,
1566
+ container = _render40.container;
1567
+
1317
1568
  var select = getByRole("combobox");
1318
1569
  var submitInput = container.querySelector("input[name=\"test\"]");
1570
+
1319
1571
  _userEvent["default"].click(select);
1572
+
1320
1573
  _userEvent["default"].click(getAllByRole("option")[8]);
1574
+
1321
1575
  expect(onChange).toHaveBeenCalledWith({
1322
1576
  value: "oviedo"
1323
1577
  });
1324
1578
  expect(queryByRole("listbox")).toBeFalsy();
1325
1579
  expect(getByText("Oviedo")).toBeTruthy();
1580
+
1326
1581
  _userEvent["default"].click(select);
1582
+
1327
1583
  expect(getAllByRole("option")[8].getAttribute("aria-selected")).toBe("true");
1328
1584
  expect(submitInput.value).toBe("oviedo");
1329
1585
  });
1330
1586
  test("Grouped Options - Optional renders an empty first option (out of any group) with the placeholder as its label", function () {
1331
1587
  var onChange = jest.fn();
1588
+
1332
1589
  var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1333
- label: "test-select-label",
1334
- placeholder: "Placeholder example",
1335
- options: group_options,
1336
- onChange: onChange,
1337
- optional: true
1338
- })),
1339
- getByRole = _render41.getByRole,
1340
- getAllByRole = _render41.getAllByRole,
1341
- getAllByText = _render41.getAllByText;
1590
+ label: "test-select-label",
1591
+ placeholder: "Placeholder example",
1592
+ options: groupOptions,
1593
+ onChange: onChange,
1594
+ optional: true
1595
+ })),
1596
+ getByRole = _render41.getByRole,
1597
+ getAllByRole = _render41.getAllByRole,
1598
+ getAllByText = _render41.getAllByText;
1599
+
1342
1600
  var select = getByRole("combobox");
1601
+
1343
1602
  _userEvent["default"].click(select);
1603
+
1344
1604
  expect(getAllByText("Placeholder example").length).toBe(2);
1345
1605
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("true");
1606
+
1346
1607
  _userEvent["default"].click(getAllByRole("option")[0]);
1608
+
1347
1609
  expect(onChange).toHaveBeenCalledWith({
1348
1610
  value: ""
1349
1611
  });
1350
1612
  expect(getAllByText("Placeholder example").length).toBe(1);
1613
+
1351
1614
  _react2.fireEvent.keyDown(select, {
1352
1615
  key: "ArrowDown",
1353
1616
  code: "ArrowDown",
1354
1617
  keyCode: 40,
1355
1618
  charCode: 40
1356
1619
  });
1620
+
1357
1621
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1622
+
1358
1623
  _react2.fireEvent.keyDown(select, {
1359
1624
  key: "Enter",
1360
1625
  code: "Enter",
1361
1626
  keyCode: 13,
1362
1627
  charCode: 13
1363
1628
  });
1629
+
1364
1630
  expect(onChange).toHaveBeenCalledWith({
1365
1631
  value: ""
1366
1632
  });
1367
1633
  expect(getAllByText("Placeholder example").length).toBe(1);
1634
+
1368
1635
  _react2.fireEvent.keyDown(select, {
1369
1636
  key: "ArrowUp",
1370
1637
  code: "ArrowUp",
1371
1638
  keyCode: 38,
1372
1639
  charCode: 38
1373
1640
  });
1641
+
1374
1642
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1375
1643
  });
1376
1644
  test("Grouped Options - Filtering options never affects the optional item until there are no coincidence", function () {
1377
1645
  var _render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1378
- label: "test-select-label",
1379
- placeholder: "Placeholder example",
1380
- options: group_options,
1381
- optional: true,
1382
- searchable: true
1383
- })),
1384
- getByRole = _render42.getByRole,
1385
- getAllByRole = _render42.getAllByRole,
1386
- getByText = _render42.getByText,
1387
- queryByText = _render42.queryByText,
1388
- container = _render42.container;
1646
+ label: "test-select-label",
1647
+ placeholder: "Placeholder example",
1648
+ options: groupOptions,
1649
+ optional: true,
1650
+ searchable: true
1651
+ })),
1652
+ getByRole = _render42.getByRole,
1653
+ getAllByRole = _render42.getAllByRole,
1654
+ getByText = _render42.getByText,
1655
+ queryByText = _render42.queryByText,
1656
+ container = _render42.container;
1657
+
1389
1658
  var select = getByRole("combobox");
1390
1659
  var searchInput = container.querySelectorAll("input")[1];
1660
+
1391
1661
  _userEvent["default"].click(select);
1662
+
1392
1663
  _userEvent["default"].type(searchInput, "ro");
1664
+
1393
1665
  expect(getByText("Placeholder example")).toBeTruthy();
1394
1666
  expect(getAllByRole("option").length).toBe(6);
1667
+
1395
1668
  _userEvent["default"].type(searchInput, "roro");
1669
+
1396
1670
  expect(queryByText("Placeholder example")).toBeFalsy();
1397
1671
  expect(getByText("No matches found")).toBeTruthy();
1398
1672
  });
1399
1673
  test("Grouped Options - Renders icons correctly when passed with group options", function () {
1400
1674
  var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1401
- label: "test-select-label",
1402
- options: grouped_icon_options,
1403
- optional: true
1404
- })),
1405
- getByRole = _render43.getByRole,
1406
- getAllByRole = _render43.getAllByRole;
1675
+ label: "test-select-label",
1676
+ options: groupedIconOptions,
1677
+ optional: true
1678
+ })),
1679
+ getByRole = _render43.getByRole,
1680
+ getAllByRole = _render43.getAllByRole;
1681
+
1407
1682
  var select = getByRole("combobox");
1683
+
1408
1684
  _userEvent["default"].click(select);
1685
+
1409
1686
  expect(getByRole("listbox").querySelectorAll("img").length).toBe(4);
1410
1687
  expect(getAllByRole("option").length).toBe(11);
1411
1688
  });
1412
1689
  test("Grouped Options: Arrow up key - Opens the listbox and visually focus the last option", function () {
1413
1690
  var _render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1414
- label: "test-select-label",
1415
- options: group_options
1416
- })),
1417
- getByRole = _render44.getByRole,
1418
- queryByRole = _render44.queryByRole;
1691
+ label: "test-select-label",
1692
+ options: groupOptions
1693
+ })),
1694
+ getByRole = _render44.getByRole,
1695
+ queryByRole = _render44.queryByRole;
1696
+
1419
1697
  var select = getByRole("combobox");
1698
+
1420
1699
  _react2.fireEvent.keyDown(select, {
1421
1700
  key: "ArrowUp",
1422
1701
  code: "ArrowUp",
1423
1702
  keyCode: 38,
1424
1703
  charCode: 38
1425
1704
  });
1705
+
1426
1706
  expect(queryByRole("listbox")).toBeTruthy();
1427
1707
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
1428
1708
  });
1429
1709
  test("Grouped Options: Arrow up key - Puts the focus in last option when the first one is visually focused", function () {
1430
1710
  var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1431
- label: "test-select-label",
1432
- options: group_options
1433
- })),
1434
- getByRole = _render45.getByRole,
1435
- queryByRole = _render45.queryByRole;
1711
+ label: "test-select-label",
1712
+ options: groupOptions
1713
+ })),
1714
+ getByRole = _render45.getByRole,
1715
+ queryByRole = _render45.queryByRole;
1716
+
1436
1717
  var select = getByRole("combobox");
1718
+
1437
1719
  _react2.fireEvent.keyDown(select, {
1438
1720
  key: "ArrowDown",
1439
1721
  code: "ArrowDown",
1440
1722
  keyCode: 40,
1441
1723
  charCode: 40
1442
1724
  });
1725
+
1443
1726
  _react2.fireEvent.keyDown(select, {
1444
1727
  key: "ArrowUp",
1445
1728
  code: "ArrowUp",
1446
1729
  keyCode: 38,
1447
1730
  charCode: 38
1448
1731
  });
1732
+
1449
1733
  expect(queryByRole("listbox")).toBeTruthy();
1450
1734
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
1451
1735
  });
1452
1736
  test("Grouped Options: Arrow down key - Opens the listbox and visually focus the first option", function () {
1453
1737
  var _render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1454
- label: "test-select-label",
1455
- options: group_options
1456
- })),
1457
- getByRole = _render46.getByRole,
1458
- queryByRole = _render46.queryByRole;
1738
+ label: "test-select-label",
1739
+ options: groupOptions
1740
+ })),
1741
+ getByRole = _render46.getByRole,
1742
+ queryByRole = _render46.queryByRole;
1743
+
1459
1744
  var select = getByRole("combobox");
1745
+
1460
1746
  _react2.fireEvent.keyDown(select, {
1461
1747
  key: "ArrowDown",
1462
1748
  code: "ArrowDown",
1463
1749
  keyCode: 40,
1464
1750
  charCode: 40
1465
1751
  });
1752
+
1466
1753
  expect(queryByRole("listbox")).toBeTruthy();
1467
1754
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1468
1755
  });
1469
1756
  test("Grouped Options: Arrow down key - Puts the focus in the first option when the last one is visually focused", function () {
1470
1757
  var _render47 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1471
- label: "test-select-label",
1472
- options: group_options
1473
- })),
1474
- getByRole = _render47.getByRole,
1475
- queryByRole = _render47.queryByRole;
1758
+ label: "test-select-label",
1759
+ options: groupOptions
1760
+ })),
1761
+ getByRole = _render47.getByRole,
1762
+ queryByRole = _render47.queryByRole;
1763
+
1476
1764
  var select = getByRole("combobox");
1765
+
1477
1766
  _react2.fireEvent.keyDown(select, {
1478
1767
  key: "ArrowUp",
1479
1768
  code: "ArrowUp",
1480
1769
  keyCode: 38,
1481
1770
  charCode: 38
1482
1771
  });
1772
+
1483
1773
  _react2.fireEvent.keyDown(select, {
1484
1774
  key: "ArrowDown",
1485
1775
  code: "ArrowDown",
1486
1776
  keyCode: 40,
1487
1777
  charCode: 40
1488
1778
  });
1779
+
1489
1780
  expect(queryByRole("listbox")).toBeTruthy();
1490
1781
  expect(select.getAttribute("aria-activedescendant")).toBe("option-0");
1491
1782
  });
1492
1783
  test("Grouped Options: Enter key - Selects the visually focused option and closes the listbox", function () {
1493
1784
  var onChange = jest.fn();
1785
+
1494
1786
  var _render48 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1495
- label: "test-select-label",
1496
- options: group_options,
1497
- onChange: onChange,
1498
- optional: true
1499
- })),
1500
- getByText = _render48.getByText,
1501
- getByRole = _render48.getByRole,
1502
- getAllByRole = _render48.getAllByRole,
1503
- queryByRole = _render48.queryByRole;
1787
+ label: "test-select-label",
1788
+ options: groupOptions,
1789
+ onChange: onChange,
1790
+ optional: true
1791
+ })),
1792
+ getByText = _render48.getByText,
1793
+ getByRole = _render48.getByRole,
1794
+ getAllByRole = _render48.getAllByRole,
1795
+ queryByRole = _render48.queryByRole;
1796
+
1504
1797
  var select = getByRole("combobox");
1798
+
1505
1799
  _react2.fireEvent.keyDown(select, {
1506
1800
  key: "ArrowUp",
1507
1801
  code: "ArrowUp",
1508
1802
  keyCode: 38,
1509
1803
  charCode: 38
1510
1804
  });
1805
+
1511
1806
  _react2.fireEvent.keyDown(select, {
1512
1807
  key: "ArrowUp",
1513
1808
  code: "ArrowUp",
1514
1809
  keyCode: 38,
1515
1810
  charCode: 38
1516
1811
  });
1812
+
1517
1813
  _react2.fireEvent.keyDown(select, {
1518
1814
  key: "ArrowUp",
1519
1815
  code: "ArrowUp",
1520
1816
  keyCode: 38,
1521
1817
  charCode: 38
1522
1818
  });
1819
+
1523
1820
  _react2.fireEvent.keyDown(select, {
1524
1821
  key: "ArrowDown",
1525
1822
  code: "ArrowDown",
1526
1823
  keyCode: 40,
1527
1824
  charCode: 40
1528
1825
  });
1826
+
1529
1827
  _react2.fireEvent.keyDown(select, {
1530
1828
  key: "Enter",
1531
1829
  code: "Enter",
1532
1830
  keyCode: 13,
1533
1831
  charCode: 13
1534
1832
  });
1833
+
1535
1834
  expect(onChange).toHaveBeenCalledWith({
1536
1835
  value: "ebro"
1537
1836
  });
1538
1837
  expect(queryByRole("listbox")).toBeFalsy();
1539
1838
  expect(getByText("Ebro")).toBeTruthy();
1839
+
1540
1840
  _userEvent["default"].click(select);
1841
+
1541
1842
  expect(getAllByRole("option")[18].getAttribute("aria-selected")).toBe("true");
1542
1843
  });
1543
1844
  test("Grouped Options: Searchable - Displays an input for filtering the list of options", function () {
1544
1845
  var onChange = jest.fn();
1846
+
1545
1847
  var _render49 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1546
- label: "test-select-label",
1547
- options: group_options,
1548
- onChange: onChange,
1549
- searchable: true
1550
- })),
1551
- container = _render49.container,
1552
- getByText = _render49.getByText,
1553
- getByRole = _render49.getByRole,
1554
- getAllByRole = _render49.getAllByRole,
1555
- queryByRole = _render49.queryByRole;
1848
+ label: "test-select-label",
1849
+ options: groupOptions,
1850
+ onChange: onChange,
1851
+ searchable: true
1852
+ })),
1853
+ container = _render49.container,
1854
+ getByText = _render49.getByText,
1855
+ getByRole = _render49.getByRole,
1856
+ getAllByRole = _render49.getAllByRole,
1857
+ queryByRole = _render49.queryByRole;
1858
+
1556
1859
  var select = getByRole("combobox");
1557
1860
  var searchInput = container.querySelectorAll("input")[1];
1861
+
1558
1862
  _userEvent["default"].click(select);
1863
+
1559
1864
  expect(getByRole("listbox")).toBeTruthy();
1865
+
1560
1866
  _userEvent["default"].type(searchInput, "ro");
1867
+
1561
1868
  expect(getAllByRole("group").length).toBe(2);
1562
1869
  expect(getAllByRole("presentation").length).toBe(2);
1563
1870
  expect(getAllByRole("option").length).toBe(5);
1564
1871
  expect(getByText("Colores")).toBeTruthy();
1565
1872
  expect(getByText("Ríos españoles")).toBeTruthy();
1873
+
1566
1874
  _userEvent["default"].click(getAllByRole("option")[4]);
1875
+
1567
1876
  expect(onChange).toHaveBeenCalledWith({
1568
1877
  value: "ebro"
1569
1878
  });
1570
1879
  expect(queryByRole("listbox")).toBeFalsy();
1571
1880
  expect(getByText("Ebro")).toBeTruthy();
1572
1881
  expect(searchInput.value).toBe("");
1882
+
1573
1883
  _userEvent["default"].click(select);
1884
+
1574
1885
  expect(getAllByRole("option")[17].getAttribute("aria-selected")).toBe("true");
1575
1886
  });
1576
1887
  test("Grouped Options: Searchable - Displays 'No matches found' when there are no filtering results", function () {
1577
1888
  var onChange = jest.fn();
1889
+
1578
1890
  var _render50 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1579
- label: "test-select-label",
1580
- options: group_options,
1581
- onChange: onChange,
1582
- searchable: true
1583
- })),
1584
- container = _render50.container,
1585
- getByText = _render50.getByText,
1586
- getByRole = _render50.getByRole;
1891
+ label: "test-select-label",
1892
+ options: groupOptions,
1893
+ onChange: onChange,
1894
+ searchable: true
1895
+ })),
1896
+ container = _render50.container,
1897
+ getByText = _render50.getByText,
1898
+ getByRole = _render50.getByRole;
1899
+
1587
1900
  var select = getByRole("combobox");
1588
1901
  var searchInput = container.querySelectorAll("input")[1];
1902
+
1589
1903
  _userEvent["default"].click(select);
1904
+
1590
1905
  expect(getByRole("listbox")).toBeTruthy();
1906
+
1591
1907
  _userEvent["default"].type(searchInput, "very long string");
1908
+
1592
1909
  expect(getByText("No matches found")).toBeTruthy();
1593
1910
  });
1594
1911
  test("Grouped Options: Multiple selection - Displays a checkbox per option and enables the multi-selection", function () {
1595
1912
  var onChange = jest.fn();
1913
+
1596
1914
  var _render51 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1597
- name: "test",
1598
- label: "test-select-label",
1599
- options: group_options,
1600
- onChange: onChange,
1601
- multiple: true
1602
- })),
1603
- getByText = _render51.getByText,
1604
- getAllByText = _render51.getAllByText,
1605
- getByRole = _render51.getByRole,
1606
- getAllByRole = _render51.getAllByRole,
1607
- queryByRole = _render51.queryByRole,
1608
- container = _render51.container;
1915
+ name: "test",
1916
+ label: "test-select-label",
1917
+ options: groupOptions,
1918
+ onChange: onChange,
1919
+ multiple: true
1920
+ })),
1921
+ getByText = _render51.getByText,
1922
+ getAllByText = _render51.getAllByText,
1923
+ getByRole = _render51.getByRole,
1924
+ getAllByRole = _render51.getAllByRole,
1925
+ queryByRole = _render51.queryByRole,
1926
+ container = _render51.container;
1927
+
1609
1928
  var select = getByRole("combobox");
1610
1929
  var submitInput = container.querySelector("input[name=\"test\"]");
1930
+
1611
1931
  _userEvent["default"].click(select);
1932
+
1612
1933
  expect(getByRole("listbox").getAttribute("aria-multiselectable")).toBe("true");
1934
+
1613
1935
  _userEvent["default"].click(getAllByRole("option")[10]);
1936
+
1614
1937
  expect(onChange).toHaveBeenCalledWith({
1615
1938
  value: ["bilbao"]
1616
1939
  });
1617
1940
  expect(queryByRole("listbox")).toBeTruthy();
1618
1941
  expect(getAllByText("Bilbao").length).toBe(2);
1942
+
1619
1943
  _react2.fireEvent.keyDown(select, {
1620
1944
  key: "ArrowUp",
1621
1945
  code: "ArrowUp",
1622
1946
  keyCode: 38,
1623
1947
  charCode: 38
1624
1948
  });
1949
+
1625
1950
  _react2.fireEvent.keyDown(select, {
1626
1951
  key: "ArrowUp",
1627
1952
  code: "ArrowUp",
1628
1953
  keyCode: 38,
1629
1954
  charCode: 38
1630
1955
  });
1956
+
1631
1957
  _react2.fireEvent.keyDown(select, {
1632
1958
  key: "Enter",
1633
1959
  code: "Enter",
1634
1960
  keyCode: 13,
1635
1961
  charCode: 13
1636
1962
  });
1963
+
1637
1964
  expect(onChange).toHaveBeenCalledWith({
1638
1965
  value: ["bilbao", "guadalquivir"]
1639
1966
  });
@@ -1645,25 +1972,33 @@ describe("Select component tests", function () {
1645
1972
  });
1646
1973
  test("Grouped Options: Multiple selection - Clear action and selection indicator", function () {
1647
1974
  var onChange = jest.fn();
1975
+
1648
1976
  var _render52 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1649
- label: "test-select-label",
1650
- options: group_options,
1651
- onChange: onChange,
1652
- multiple: true
1653
- })),
1654
- getByText = _render52.getByText,
1655
- queryByText = _render52.queryByText,
1656
- getByRole = _render52.getByRole,
1657
- getAllByRole = _render52.getAllByRole,
1658
- queryByRole = _render52.queryByRole,
1659
- getByTitle = _render52.getByTitle,
1660
- queryByTitle = _render52.queryByTitle;
1977
+ label: "test-select-label",
1978
+ options: groupOptions,
1979
+ onChange: onChange,
1980
+ multiple: true
1981
+ })),
1982
+ getByText = _render52.getByText,
1983
+ queryByText = _render52.queryByText,
1984
+ getByRole = _render52.getByRole,
1985
+ getAllByRole = _render52.getAllByRole,
1986
+ queryByRole = _render52.queryByRole,
1987
+ getByTitle = _render52.getByTitle,
1988
+ queryByTitle = _render52.queryByTitle;
1989
+
1661
1990
  var select = getByRole("combobox");
1991
+
1662
1992
  _userEvent["default"].click(select);
1993
+
1663
1994
  _userEvent["default"].click(getAllByRole("option")[5]);
1995
+
1664
1996
  _userEvent["default"].click(getAllByRole("option")[8]);
1997
+
1665
1998
  _userEvent["default"].click(getAllByRole("option")[13]);
1999
+
1666
2000
  _userEvent["default"].click(getAllByRole("option")[17]);
2001
+
1667
2002
  expect(onChange).toHaveBeenCalledWith({
1668
2003
  value: ["blanco", "oviedo", "duero", "ebro"]
1669
2004
  });
@@ -1672,7 +2007,9 @@ describe("Select component tests", function () {
1672
2007
  expect(getByText("4", {
1673
2008
  exact: true
1674
2009
  })).toBeTruthy();
2010
+
1675
2011
  _userEvent["default"].click(getByTitle("Clear selection"));
2012
+
1676
2013
  expect(queryByRole("listbox")).toBeTruthy();
1677
2014
  expect(queryByText("Blanco, Oviedo, Duero, Ebro")).toBeFalsy();
1678
2015
  expect(queryByText("4")).toBeFalsy();
@@ -1680,24 +2017,30 @@ describe("Select component tests", function () {
1680
2017
  });
1681
2018
  test("Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", function () {
1682
2019
  var onChange = jest.fn();
2020
+
1683
2021
  var _render53 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1684
- label: "test-select-label",
1685
- placeholder: "Choose an option",
1686
- options: group_options,
1687
- onChange: onChange,
1688
- multiple: true,
1689
- optional: true
1690
- })),
1691
- getByText = _render53.getByText,
1692
- getAllByText = _render53.getAllByText,
1693
- getByRole = _render53.getByRole,
1694
- getAllByRole = _render53.getAllByRole;
2022
+ label: "test-select-label",
2023
+ placeholder: "Choose an option",
2024
+ options: groupOptions,
2025
+ onChange: onChange,
2026
+ multiple: true,
2027
+ optional: true
2028
+ })),
2029
+ getByText = _render53.getByText,
2030
+ getAllByText = _render53.getAllByText,
2031
+ getByRole = _render53.getByRole,
2032
+ getAllByRole = _render53.getAllByRole;
2033
+
1695
2034
  var select = getByRole("combobox");
1696
2035
  expect(getByText("(Optional)")).toBeTruthy();
2036
+
1697
2037
  _userEvent["default"].click(select);
2038
+
1698
2039
  expect(getAllByText("Choose an option").length).toBe(1);
1699
2040
  expect(getAllByRole("option")[0].getAttribute("aria-selected")).toBe("false");
2041
+
1700
2042
  _userEvent["default"].click(getAllByRole("option")[0]);
2043
+
1701
2044
  expect(onChange).toHaveBeenCalledWith({
1702
2045
  value: ["azul"]
1703
2046
  });
@@ -1705,139 +2048,179 @@ describe("Select component tests", function () {
1705
2048
  });
1706
2049
  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 () {
1707
2050
  var _render54 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1708
- label: "test-select-label",
1709
- options: group_options
1710
- })),
1711
- getByText = _render54.getByText,
1712
- getByRole = _render54.getByRole,
1713
- getAllByRole = _render54.getAllByRole;
2051
+ label: "test-select-label",
2052
+ options: groupOptions
2053
+ })),
2054
+ getByText = _render54.getByText,
2055
+ getByRole = _render54.getByRole,
2056
+ getAllByRole = _render54.getAllByRole;
2057
+
1714
2058
  var select = getByRole("combobox");
2059
+
1715
2060
  _userEvent["default"].click(select);
2061
+
1716
2062
  _userEvent["default"].click(getAllByRole("option")[2]);
2063
+
1717
2064
  expect(getByText("Rosa")).toBeTruthy();
2065
+
1718
2066
  _react2.fireEvent.keyDown(select, {
1719
2067
  key: "ArrowUp",
1720
2068
  code: "ArrowUp",
1721
2069
  keyCode: 38,
1722
2070
  charCode: 38
1723
2071
  });
2072
+
1724
2073
  expect(select.getAttribute("aria-activedescendant")).toBe("option-2");
2074
+
1725
2075
  _react2.fireEvent.keyDown(select, {
1726
2076
  key: "ArrowUp",
1727
2077
  code: "ArrowUp",
1728
2078
  keyCode: 38,
1729
2079
  charCode: 38
1730
2080
  });
2081
+
1731
2082
  _react2.fireEvent.keyDown(select, {
1732
2083
  key: "Enter",
1733
2084
  code: "Enter",
1734
2085
  keyCode: 13,
1735
2086
  charCode: 13
1736
2087
  });
2088
+
1737
2089
  expect(getByText("Rojo")).toBeTruthy();
2090
+
1738
2091
  _react2.fireEvent.keyDown(select, {
1739
2092
  key: "ArrowDown",
1740
2093
  code: "ArrowDown",
1741
2094
  keyCode: 40,
1742
2095
  charCode: 40
1743
2096
  });
2097
+
1744
2098
  expect(select.getAttribute("aria-activedescendant")).toBe("option-1");
2099
+
1745
2100
  _react2.fireEvent.keyDown(select, {
1746
2101
  key: "ArrowDown",
1747
2102
  code: "ArrowDown",
1748
2103
  keyCode: 40,
1749
2104
  charCode: 40
1750
2105
  });
2106
+
1751
2107
  _react2.fireEvent.keyDown(select, {
1752
2108
  key: "ArrowDown",
1753
2109
  code: "ArrowDown",
1754
2110
  keyCode: 40,
1755
2111
  charCode: 40
1756
2112
  });
2113
+
1757
2114
  _react2.fireEvent.keyDown(select, {
1758
2115
  key: "Enter",
1759
2116
  code: "Enter",
1760
2117
  keyCode: 13,
1761
2118
  charCode: 13
1762
2119
  });
2120
+
1763
2121
  expect(getByText("Verde")).toBeTruthy();
1764
2122
  });
1765
2123
  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 () {
1766
2124
  var _render55 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1767
- label: "test-select-label",
1768
- options: group_options
1769
- })),
1770
- getByText = _render55.getByText,
1771
- getByRole = _render55.getByRole,
1772
- getAllByRole = _render55.getAllByRole;
2125
+ label: "test-select-label",
2126
+ options: groupOptions
2127
+ })),
2128
+ getByText = _render55.getByText,
2129
+ getByRole = _render55.getByRole,
2130
+ getAllByRole = _render55.getAllByRole;
2131
+
1773
2132
  var select = getByRole("combobox");
2133
+
1774
2134
  _userEvent["default"].click(select);
2135
+
1775
2136
  _userEvent["default"].click(getAllByRole("option")[17]);
2137
+
1776
2138
  expect(getByText("Ebro")).toBeTruthy();
2139
+
1777
2140
  _userEvent["default"].click(select);
2141
+
1778
2142
  expect(select.getAttribute("aria-activedescendant")).toBeNull();
2143
+
1779
2144
  _react2.fireEvent.keyDown(select, {
1780
2145
  key: "ArrowUp",
1781
2146
  code: "ArrowUp",
1782
2147
  keyCode: 38,
1783
2148
  charCode: 38
1784
2149
  });
2150
+
1785
2151
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
2152
+
1786
2153
  _userEvent["default"].click(select);
2154
+
1787
2155
  _react2.fireEvent.keyDown(select, {
1788
2156
  key: "ArrowDown",
1789
2157
  code: "ArrowDown",
1790
2158
  keyCode: 40,
1791
2159
  charCode: 40
1792
2160
  });
2161
+
1793
2162
  expect(select.getAttribute("aria-activedescendant")).toBe("option-17");
2163
+
1794
2164
  _react2.fireEvent.keyDown(select, {
1795
2165
  key: "ArrowDown",
1796
2166
  code: "ArrowDown",
1797
2167
  keyCode: 40,
1798
2168
  charCode: 40
1799
2169
  });
2170
+
1800
2171
  _react2.fireEvent.keyDown(select, {
1801
2172
  key: "ArrowDown",
1802
2173
  code: "ArrowDown",
1803
2174
  keyCode: 40,
1804
2175
  charCode: 40
1805
2176
  });
2177
+
1806
2178
  _react2.fireEvent.keyDown(select, {
1807
2179
  key: "ArrowUp",
1808
2180
  code: "ArrowUp",
1809
2181
  keyCode: 38,
1810
2182
  charCode: 38
1811
2183
  });
2184
+
1812
2185
  _react2.fireEvent.keyDown(select, {
1813
2186
  key: "Enter",
1814
2187
  code: "Enter",
1815
2188
  keyCode: 13,
1816
2189
  charCode: 13
1817
2190
  });
2191
+
1818
2192
  expect(getByText("Azul")).toBeTruthy();
1819
2193
  });
1820
2194
  test("Multiple selection and optional - Clear action cleans every selected option but does not display an error", function () {
1821
2195
  var onChange = jest.fn();
2196
+
1822
2197
  var _render56 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Select["default"], {
1823
- label: "test-select-label",
1824
- options: single_options,
1825
- onChange: onChange,
1826
- multiple: true,
1827
- optional: true
1828
- })),
1829
- getByRole = _render56.getByRole,
1830
- getAllByRole = _render56.getAllByRole,
1831
- getByTitle = _render56.getByTitle;
2198
+ label: "test-select-label",
2199
+ options: singleOptions,
2200
+ onChange: onChange,
2201
+ multiple: true,
2202
+ optional: true
2203
+ })),
2204
+ getByRole = _render56.getByRole,
2205
+ getAllByRole = _render56.getAllByRole,
2206
+ getByTitle = _render56.getByTitle;
2207
+
1832
2208
  var select = getByRole("combobox");
2209
+
1833
2210
  _userEvent["default"].click(select);
2211
+
1834
2212
  _userEvent["default"].click(getAllByRole("option")[5]);
2213
+
1835
2214
  _userEvent["default"].click(getAllByRole("option")[8]);
2215
+
1836
2216
  _userEvent["default"].click(getAllByRole("option")[13]);
2217
+
1837
2218
  expect(onChange).toHaveBeenCalledWith({
1838
2219
  value: ["6", "9", "14"]
1839
2220
  });
2221
+
1840
2222
  _userEvent["default"].click(getByTitle("Clear selection"));
2223
+
1841
2224
  expect(onChange).toHaveBeenCalledWith({
1842
2225
  value: []
1843
2226
  });