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