@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.
- package/BackgroundColorContext.d.ts +3 -3
- package/BackgroundColorContext.js +12 -2
- package/HalstackContext.d.ts +1330 -7
- package/HalstackContext.js +84 -67
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +74 -55
- package/accordion/Accordion.stories.tsx +3 -101
- package/accordion/Accordion.test.js +34 -19
- package/accordion/types.d.ts +4 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +49 -42
- package/accordion-group/AccordionGroup.stories.tsx +77 -76
- package/accordion-group/AccordionGroup.test.js +62 -54
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +6 -18
- package/alert/Alert.js +47 -20
- package/alert/Alert.test.js +46 -29
- package/alert/types.d.ts +3 -3
- package/badge/Badge.js +14 -2
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +21 -13
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +33 -33
- package/box/Box.stories.tsx +25 -53
- package/box/Box.test.js +7 -2
- package/box/types.d.ts +3 -15
- package/bulleted-list/BulletedList.js +36 -9
- package/bulleted-list/BulletedList.stories.tsx +7 -1
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.d.ts +1 -1
- package/button/Button.js +83 -71
- package/button/Button.stories.tsx +4 -4
- package/button/Button.test.js +28 -8
- package/button/types.d.ts +8 -4
- package/card/Card.d.ts +1 -1
- package/card/Card.js +67 -62
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +22 -11
- package/card/types.d.ts +4 -10
- package/checkbox/Checkbox.js +71 -27
- package/checkbox/Checkbox.test.js +60 -33
- package/checkbox/types.d.ts +4 -4
- package/chip/Chip.js +51 -48
- package/chip/Chip.stories.tsx +25 -17
- package/chip/Chip.test.js +29 -17
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +8 -3
- package/common/variables.d.ts +226 -175
- package/common/variables.js +956 -1133
- package/date-input/Calendar.js +55 -12
- package/date-input/DateInput.js +82 -35
- package/date-input/DateInput.test.js +351 -164
- package/date-input/DatePicker.js +38 -8
- package/date-input/Icons.js +12 -0
- package/date-input/YearPicker.js +30 -5
- package/date-input/types.d.ts +7 -7
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +83 -86
- package/dialog/Dialog.stories.tsx +127 -221
- package/dialog/Dialog.test.js +331 -18
- package/dialog/types.d.ts +1 -14
- package/dropdown/Dropdown.js +86 -32
- package/dropdown/Dropdown.test.js +211 -104
- package/dropdown/DropdownMenu.js +22 -8
- package/dropdown/DropdownMenuItem.js +15 -6
- package/dropdown/types.d.ts +8 -8
- package/file-input/FileInput.js +218 -134
- package/file-input/FileInput.test.js +343 -331
- package/file-input/FileItem.js +39 -12
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +39 -25
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +80 -68
- package/footer/Footer.stories.tsx +12 -89
- package/footer/Footer.test.js +47 -40
- package/footer/Icons.js +4 -0
- package/footer/types.d.ts +15 -17
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +72 -55
- package/header/Header.stories.tsx +7 -71
- package/header/Header.test.js +26 -13
- package/header/Icons.js +4 -0
- package/header/types.d.ts +2 -16
- package/heading/Heading.js +28 -7
- package/heading/Heading.test.js +88 -71
- package/heading/types.d.ts +3 -3
- package/inset/Inset.js +21 -13
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +57 -15
- package/layout/Icons.js +10 -0
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +4 -0
- package/layout/types.d.ts +5 -6
- package/link/Link.js +41 -21
- package/link/Link.test.js +42 -26
- package/link/types.d.ts +4 -4
- package/main.d.ts +2 -1
- package/main.js +55 -0
- package/nav-tabs/NavTabs.d.ts +2 -2
- package/nav-tabs/NavTabs.js +43 -16
- package/nav-tabs/NavTabs.stories.tsx +14 -0
- package/nav-tabs/NavTabs.test.js +44 -37
- package/nav-tabs/Tab.js +71 -45
- package/nav-tabs/types.d.ts +10 -11
- package/number-input/NumberInput.js +30 -20
- package/number-input/NumberInput.test.js +249 -113
- package/number-input/NumberInputContext.js +5 -0
- package/number-input/numberInputContextTypes.d.ts +1 -1
- package/number-input/types.d.ts +4 -4
- package/package.json +7 -7
- package/paginator/Icons.js +10 -0
- package/paginator/Paginator.js +39 -17
- package/paginator/Paginator.test.js +156 -104
- package/paginator/types.d.ts +1 -1
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +18 -8
- package/password-input/PasswordInput.js +51 -22
- package/password-input/PasswordInput.test.js +94 -51
- package/password-input/types.d.ts +4 -4
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +39 -14
- package/progress-bar/ProgressBar.test.js +53 -36
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.js +24 -2
- package/quick-nav/types.d.ts +2 -2
- package/radio-group/Radio.js +53 -22
- package/radio-group/RadioGroup.js +84 -41
- package/radio-group/RadioGroup.test.js +288 -186
- package/radio-group/types.d.ts +4 -4
- package/resultsetTable/Icons.js +3 -0
- package/resultsetTable/ResultsetTable.js +56 -21
- package/resultsetTable/ResultsetTable.test.js +75 -42
- package/resultsetTable/types.d.ts +5 -5
- package/select/Icons.js +3 -0
- package/select/Listbox.js +35 -10
- package/select/Option.js +24 -8
- package/select/Select.js +143 -56
- package/select/Select.test.js +839 -456
- package/select/types.d.ts +12 -12
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +116 -104
- package/sidenav/Sidenav.stories.tsx +60 -60
- package/sidenav/Sidenav.test.js +10 -3
- package/sidenav/types.d.ts +26 -23
- package/slider/Slider.js +84 -38
- package/slider/Slider.test.js +104 -76
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.js +51 -28
- package/spinner/Spinner.stories.jsx +28 -28
- package/spinner/Spinner.test.js +35 -26
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.js +66 -24
- package/switch/Switch.test.js +97 -52
- package/switch/types.d.ts +4 -4
- package/table/Table.js +22 -4
- package/table/Table.test.js +7 -2
- package/table/types.d.ts +3 -3
- package/tabs/Tab.js +39 -22
- package/tabs/Tabs.js +131 -62
- package/tabs/Tabs.test.js +122 -67
- package/tabs/types.d.ts +8 -8
- package/tag/Tag.js +54 -27
- package/tag/Tag.test.js +31 -20
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.js +3 -0
- package/text-input/Suggestion.js +24 -8
- package/text-input/Suggestions.js +36 -11
- package/text-input/TextInput.js +144 -59
- package/text-input/TextInput.stories.tsx +1 -1
- package/text-input/TextInput.test.js +858 -539
- package/text-input/types.d.ts +9 -9
- package/textarea/Textarea.js +73 -38
- package/textarea/Textarea.test.js +173 -98
- package/textarea/types.d.ts +4 -4
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +59 -21
- package/toggle-group/ToggleGroup.test.js +72 -40
- package/toggle-group/types.d.ts +11 -11
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +23 -110
- package/typography/Typography.stories.tsx +1 -1
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +6 -0
- package/useTranslatedLabels.d.ts +84 -2
- package/useTranslatedLabels.js +5 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.js +47 -13
- package/wizard/Wizard.test.js +81 -54
- package/wizard/types.d.ts +7 -8
- package/card/ice-cream.jpg +0 -0
- package/translatedLabelsType.d.ts +0 -82
- /package/{translatedLabelsType.js → grid/types.js} +0 -0
package/select/Select.test.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
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
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
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
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
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
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
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
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
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
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
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
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
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
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
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
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
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
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
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
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
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
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
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
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
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
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
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
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
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
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
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
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
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
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
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
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
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
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
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
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
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
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
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
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
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
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
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
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
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
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
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
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
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
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
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
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
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
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
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
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
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
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
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
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
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
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
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
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
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
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
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
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
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
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
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
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
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
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
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
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
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
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
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
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
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
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
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
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
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
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
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
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
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
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
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
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
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
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
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
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
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
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
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
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
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
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
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
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
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
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
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
|
});
|