@dxc-technology/halstack-react 0.0.0-ff5083e → 0.0.0-ff6c8bf
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 +1 -10
- package/BackgroundColorContext.js +5 -22
- package/HalstackContext.d.ts +1240 -6
- package/HalstackContext.js +126 -111
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +105 -160
- package/accordion/Accordion.stories.tsx +82 -148
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +6 -17
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +12 -17
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +37 -127
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +64 -63
- package/bleed/types.d.ts +2 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -60
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +169 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +35 -63
- package/bulleted-list/BulletedList.stories.tsx +18 -106
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +64 -117
- package/button/Button.stories.tsx +151 -100
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +49 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +139 -181
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +45 -80
- package/chip/Chip.stories.tsx +107 -27
- package/chip/Chip.test.js +18 -33
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1392 -0
- package/common/variables.js +984 -1206
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +51 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +149 -299
- package/date-input/DateInput.stories.tsx +210 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +121 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +61 -106
- package/dialog/Dialog.stories.tsx +326 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +233 -303
- package/dropdown/Dropdown.stories.tsx +235 -57
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +71 -0
- package/dropdown/types.d.ts +35 -19
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +241 -391
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +306 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +56 -117
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +99 -21
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +54 -23
- package/footer/types.d.ts +26 -27
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.accessibility.test.js +93 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +90 -183
- package/header/Header.stories.tsx +133 -38
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +5 -15
- package/header/types.d.ts +7 -21
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +13 -21
- package/inset/Inset.stories.tsx +5 -4
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +57 -119
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +7 -5
- package/layout/Icons.js +41 -59
- package/layout/types.d.ts +21 -32
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +32 -51
- package/link/Link.stories.tsx +76 -9
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +14 -12
- package/main.js +51 -88
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/nav-tabs/NavTabs.test.js +77 -0
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +117 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +46 -36
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +860 -377
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +17 -5
- package/package.json +51 -51
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +35 -68
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +7 -23
- package/paragraph/Paragraph.stories.tsx +1 -18
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +58 -127
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +68 -92
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +24 -42
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +68 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +171 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
- package/resultset-table/ResultsetTable.test.js +381 -0
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +68 -65
- package/select/Option.js +35 -56
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +171 -214
- package/select/Select.stories.tsx +515 -190
- package/select/Select.test.js +1934 -1789
- package/select/types.d.ts +17 -21
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +132 -78
- package/sidenav/Sidenav.stories.tsx +246 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +149 -181
- package/slider/Slider.stories.tsx +64 -61
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +34 -74
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.accessibility.test.js +98 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +145 -126
- package/switch/Switch.stories.tsx +49 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +78 -35
- package/table/Table.stories.tsx +663 -0
- package/table/Table.test.js +95 -8
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +117 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +303 -141
- package/tabs/Tabs.stories.tsx +124 -6
- package/tabs/Tabs.test.js +213 -77
- package/tabs/types.d.ts +30 -20
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +35 -67
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +94 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +316 -515
- package/text-input/TextInput.stories.tsx +276 -276
- package/text-input/TextInput.test.js +1419 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +71 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +94 -107
- package/toggle-group/ToggleGroup.stories.tsx +52 -7
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +28 -19
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +16 -124
- package/typography/Typography.stories.tsx +185 -162
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1144 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +34 -87
- package/wizard/Wizard.stories.tsx +59 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +9 -9
- package/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/RequiredComponent.js +0 -32
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -254
- package/resultsetTable/ResultsetTable.test.js +0 -306
- 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/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- 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/table/Table.stories.jsx +0 -277
- package/tabs-nav/NavTabs.d.ts +0 -8
- package/tabs-nav/NavTabs.stories.tsx +0 -170
- package/tabs-nav/NavTabs.test.js +0 -82
- package/tabs-nav/Tab.js +0 -132
- package/textarea/Textarea.stories.jsx +0 -157
- package/typography/typographyContextTypes.d.ts +0 -16
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{row → breadcrumbs}/types.js +0 -0
- /package/{stack → container}/types.js +0 -0
- /package/{tabs-nav → contextual-menu}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → divider/types.js} +0 -0
- /package/{typography/typographyContextTypes.js → flex/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
|
@@ -1,70 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
-
|
|
7
5
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
-
|
|
6
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
8
|
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
9
|
var _react2 = require("@testing-library/react");
|
|
12
|
-
|
|
13
10
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
var _TextInput = _interopRequireDefault(require("./TextInput.tsx"));
|
|
12
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
13
|
+
global.globalThis = global;
|
|
14
|
+
global.DOMRect = {
|
|
15
|
+
fromRect: function fromRect() {
|
|
16
|
+
return {
|
|
17
|
+
top: 0,
|
|
18
|
+
left: 0,
|
|
19
|
+
bottom: 0,
|
|
20
|
+
right: 0,
|
|
21
|
+
width: 0,
|
|
22
|
+
height: 0
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
27
|
+
function ResizeObserver() {
|
|
28
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
29
|
+
}
|
|
30
|
+
(0, _createClass2["default"])(ResizeObserver, [{
|
|
31
|
+
key: "observe",
|
|
32
|
+
value: function observe() {}
|
|
33
|
+
}, {
|
|
34
|
+
key: "unobserve",
|
|
35
|
+
value: function unobserve() {}
|
|
36
|
+
}, {
|
|
37
|
+
key: "disconnect",
|
|
38
|
+
value: function disconnect() {}
|
|
39
|
+
}]);
|
|
40
|
+
return ResizeObserver;
|
|
41
|
+
}();
|
|
17
42
|
var countries = ["Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Cabo Verde", "Cambodia", "Cameroon", "Canada", "Cayman Islands, The", "Central African Republic", "Chad", "Democratic Republic of the Congo", "Dominican Republic", "Dominica", "Denmark", "Djibouti"];
|
|
43
|
+
var specialCharacters = ["/", "\\", "*", "(", ")", "[", "]", "+", "?", "*{[]}|"];
|
|
18
44
|
describe("TextInput component tests", function () {
|
|
19
|
-
test("Renders with correct
|
|
45
|
+
test("Renders with correct error aria attributes", function () {
|
|
20
46
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
test("Renders with correct label and helper text", function () {
|
|
28
|
-
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
29
|
-
label: "Example label",
|
|
30
|
-
helperText: "Example helper text"
|
|
31
|
-
})),
|
|
32
|
-
getByText = _render2.getByText;
|
|
33
|
-
|
|
34
|
-
expect(getByText("Example label")).toBeTruthy();
|
|
35
|
-
expect(getByText("Example helper text")).toBeTruthy();
|
|
36
|
-
});
|
|
37
|
-
test("Renders with correct label and optional", function () {
|
|
38
|
-
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
39
|
-
label: "Example label",
|
|
40
|
-
helperText: "Example helper text",
|
|
41
|
-
optional: true
|
|
42
|
-
})),
|
|
43
|
-
getByText = _render3.getByText;
|
|
44
|
-
|
|
45
|
-
expect(getByText("Example label")).toBeTruthy();
|
|
46
|
-
expect(getByText("(Optional)")).toBeTruthy();
|
|
47
|
-
expect(getByText("Example helper text")).toBeTruthy();
|
|
48
|
-
});
|
|
49
|
-
test("Renders with correct placeholder", function () {
|
|
50
|
-
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
51
|
-
label: "Example label",
|
|
52
|
-
placeholder: "Placeholder"
|
|
53
|
-
})),
|
|
54
|
-
getByRole = _render4.getByRole;
|
|
55
|
-
|
|
56
|
-
var input = getByRole("textbox");
|
|
57
|
-
expect(input.getAttribute("placeholder")).toBe("Placeholder");
|
|
58
|
-
});
|
|
59
|
-
test("Renders with error message and correct aria attributes", function () {
|
|
60
|
-
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
61
|
-
label: "Error label",
|
|
62
|
-
placeholder: "Placeholder",
|
|
63
|
-
error: "Error message."
|
|
64
|
-
})),
|
|
65
|
-
getByText = _render5.getByText,
|
|
66
|
-
getByRole = _render5.getByRole;
|
|
67
|
-
|
|
47
|
+
label: "Error label",
|
|
48
|
+
placeholder: "Placeholder",
|
|
49
|
+
error: "Error message."
|
|
50
|
+
})),
|
|
51
|
+
getByText = _render.getByText,
|
|
52
|
+
getByRole = _render.getByRole;
|
|
68
53
|
var input = getByRole("textbox");
|
|
69
54
|
var errorMessage = getByText("Error message.");
|
|
70
55
|
expect(errorMessage).toBeTruthy();
|
|
@@ -73,49 +58,40 @@ describe("TextInput component tests", function () {
|
|
|
73
58
|
expect(errorMessage.getAttribute("aria-live")).toBe("assertive");
|
|
74
59
|
});
|
|
75
60
|
test("Renders with correct initial value", function () {
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
62
|
+
label: "Default label",
|
|
63
|
+
placeholder: "Placeholder",
|
|
64
|
+
defaultValue: "Example text"
|
|
65
|
+
})),
|
|
66
|
+
getByRole = _render2.getByRole;
|
|
83
67
|
var input = getByRole("textbox");
|
|
84
68
|
expect(input.value).toBe("Example text");
|
|
85
69
|
});
|
|
86
70
|
test("Not optional constraint (onBlur)", function () {
|
|
87
71
|
var onChange = jest.fn();
|
|
88
72
|
var onBlur = jest.fn();
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
getByRole = _render7.getByRole;
|
|
98
|
-
|
|
73
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
74
|
+
label: "Input label",
|
|
75
|
+
placeholder: "Placeholder",
|
|
76
|
+
onChange: onChange,
|
|
77
|
+
onBlur: onBlur,
|
|
78
|
+
clearable: true
|
|
79
|
+
})),
|
|
80
|
+
getByRole = _render3.getByRole;
|
|
99
81
|
var input = getByRole("textbox");
|
|
100
|
-
|
|
101
82
|
_react2.fireEvent.focus(input);
|
|
102
|
-
|
|
103
83
|
_react2.fireEvent.blur(input);
|
|
104
|
-
|
|
105
84
|
expect(onBlur).toHaveBeenCalled();
|
|
106
85
|
expect(onBlur).toHaveBeenCalledWith({
|
|
107
86
|
value: "",
|
|
108
87
|
error: "This field is required. Please, enter a value."
|
|
109
88
|
});
|
|
110
|
-
|
|
111
89
|
_react2.fireEvent.change(input, {
|
|
112
90
|
target: {
|
|
113
91
|
value: "Test"
|
|
114
92
|
}
|
|
115
93
|
});
|
|
116
|
-
|
|
117
94
|
_react2.fireEvent.blur(input);
|
|
118
|
-
|
|
119
95
|
expect(onBlur).toHaveBeenCalled();
|
|
120
96
|
expect(onBlur).toHaveBeenCalledWith({
|
|
121
97
|
value: "Test"
|
|
@@ -123,30 +99,24 @@ describe("TextInput component tests", function () {
|
|
|
123
99
|
});
|
|
124
100
|
test("Not optional constraint (onChange)", function () {
|
|
125
101
|
var onChange = jest.fn();
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
getByRole = _render8.getByRole;
|
|
134
|
-
|
|
102
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
103
|
+
label: "Input label",
|
|
104
|
+
placeholder: "Placeholder",
|
|
105
|
+
onChange: onChange,
|
|
106
|
+
clearable: true
|
|
107
|
+
})),
|
|
108
|
+
getByRole = _render4.getByRole;
|
|
135
109
|
var input = getByRole("textbox");
|
|
136
|
-
|
|
137
110
|
_react2.fireEvent.change(input, {
|
|
138
111
|
target: {
|
|
139
112
|
value: "Test"
|
|
140
113
|
}
|
|
141
114
|
});
|
|
142
|
-
|
|
143
115
|
expect(onChange).toHaveBeenCalled();
|
|
144
116
|
expect(onChange).toHaveBeenCalledWith({
|
|
145
117
|
value: "Test"
|
|
146
118
|
});
|
|
147
|
-
|
|
148
119
|
_userEvent["default"].clear(input);
|
|
149
|
-
|
|
150
120
|
expect(onChange).toHaveBeenCalled();
|
|
151
121
|
expect(onChange).toHaveBeenCalledWith({
|
|
152
122
|
value: "",
|
|
@@ -156,58 +126,47 @@ describe("TextInput component tests", function () {
|
|
|
156
126
|
test("Pattern constraint", function () {
|
|
157
127
|
var onChange = jest.fn();
|
|
158
128
|
var onBlur = jest.fn();
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
getByRole = _render9.getByRole;
|
|
173
|
-
|
|
129
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
130
|
+
label: "Input label",
|
|
131
|
+
placeholder: "Placeholder",
|
|
132
|
+
onChange: onChange,
|
|
133
|
+
onBlur: onBlur,
|
|
134
|
+
margin: {
|
|
135
|
+
left: "medium",
|
|
136
|
+
right: "medium"
|
|
137
|
+
},
|
|
138
|
+
clearable: true,
|
|
139
|
+
pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$"
|
|
140
|
+
})),
|
|
141
|
+
getByRole = _render5.getByRole;
|
|
174
142
|
var input = getByRole("textbox");
|
|
175
|
-
|
|
176
143
|
_react2.fireEvent.change(input, {
|
|
177
144
|
target: {
|
|
178
145
|
value: "pattern test"
|
|
179
146
|
}
|
|
180
147
|
});
|
|
181
|
-
|
|
182
148
|
expect(onChange).toHaveBeenCalled();
|
|
183
149
|
expect(onChange).toHaveBeenCalledWith({
|
|
184
150
|
value: "pattern test",
|
|
185
151
|
error: "Please match the format requested."
|
|
186
152
|
});
|
|
187
|
-
|
|
188
153
|
_react2.fireEvent.blur(input);
|
|
189
|
-
|
|
190
154
|
expect(onBlur).toHaveBeenCalled();
|
|
191
155
|
expect(onBlur).toHaveBeenCalledWith({
|
|
192
156
|
value: "pattern test",
|
|
193
157
|
error: "Please match the format requested."
|
|
194
158
|
});
|
|
195
|
-
|
|
196
159
|
_userEvent["default"].clear(input);
|
|
197
|
-
|
|
198
160
|
_react2.fireEvent.change(input, {
|
|
199
161
|
target: {
|
|
200
162
|
value: "pattern4&"
|
|
201
163
|
}
|
|
202
164
|
});
|
|
203
|
-
|
|
204
165
|
expect(onChange).toHaveBeenCalled();
|
|
205
166
|
expect(onChange).toHaveBeenCalledWith({
|
|
206
167
|
value: "pattern4&"
|
|
207
168
|
});
|
|
208
|
-
|
|
209
169
|
_react2.fireEvent.blur(input);
|
|
210
|
-
|
|
211
170
|
expect(onBlur).toHaveBeenCalled();
|
|
212
171
|
expect(onBlur).toHaveBeenCalledWith({
|
|
213
172
|
value: "pattern4&"
|
|
@@ -216,59 +175,48 @@ describe("TextInput component tests", function () {
|
|
|
216
175
|
test("Length constraint", function () {
|
|
217
176
|
var onChange = jest.fn();
|
|
218
177
|
var onBlur = jest.fn();
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
getByRole = _render10.getByRole;
|
|
234
|
-
|
|
178
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
179
|
+
label: "Input label",
|
|
180
|
+
placeholder: "Placeholder",
|
|
181
|
+
onChange: onChange,
|
|
182
|
+
onBlur: onBlur,
|
|
183
|
+
margin: {
|
|
184
|
+
left: "medium",
|
|
185
|
+
right: "medium"
|
|
186
|
+
},
|
|
187
|
+
clearable: true,
|
|
188
|
+
minLength: 5,
|
|
189
|
+
maxLength: 10
|
|
190
|
+
})),
|
|
191
|
+
getByRole = _render6.getByRole;
|
|
235
192
|
var input = getByRole("textbox");
|
|
236
|
-
|
|
237
193
|
_react2.fireEvent.change(input, {
|
|
238
194
|
target: {
|
|
239
195
|
value: "test"
|
|
240
196
|
}
|
|
241
197
|
});
|
|
242
|
-
|
|
243
198
|
expect(onChange).toHaveBeenCalled();
|
|
244
199
|
expect(onChange).toHaveBeenCalledWith({
|
|
245
200
|
value: "test",
|
|
246
201
|
error: "Min length 5, max length 10."
|
|
247
202
|
});
|
|
248
|
-
|
|
249
203
|
_react2.fireEvent.blur(input);
|
|
250
|
-
|
|
251
204
|
expect(onBlur).toHaveBeenCalled();
|
|
252
205
|
expect(onBlur).toHaveBeenCalledWith({
|
|
253
206
|
value: "test",
|
|
254
207
|
error: "Min length 5, max length 10."
|
|
255
208
|
});
|
|
256
|
-
|
|
257
209
|
_userEvent["default"].clear(input);
|
|
258
|
-
|
|
259
210
|
_react2.fireEvent.change(input, {
|
|
260
211
|
target: {
|
|
261
212
|
value: "length"
|
|
262
213
|
}
|
|
263
214
|
});
|
|
264
|
-
|
|
265
215
|
expect(onChange).toHaveBeenCalled();
|
|
266
216
|
expect(onChange).toHaveBeenCalledWith({
|
|
267
217
|
value: "length"
|
|
268
218
|
});
|
|
269
|
-
|
|
270
219
|
_react2.fireEvent.blur(input);
|
|
271
|
-
|
|
272
220
|
expect(onBlur).toHaveBeenCalled();
|
|
273
221
|
expect(onBlur).toHaveBeenCalledWith({
|
|
274
222
|
value: "length"
|
|
@@ -277,78 +225,64 @@ describe("TextInput component tests", function () {
|
|
|
277
225
|
test("Pattern and length constraints", function () {
|
|
278
226
|
var onChange = jest.fn();
|
|
279
227
|
var onBlur = jest.fn();
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
getByRole = _render11.getByRole;
|
|
296
|
-
|
|
228
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
229
|
+
label: "Input label",
|
|
230
|
+
placeholder: "Placeholder",
|
|
231
|
+
onChange: onChange,
|
|
232
|
+
onBlur: onBlur,
|
|
233
|
+
margin: {
|
|
234
|
+
left: "medium",
|
|
235
|
+
right: "medium"
|
|
236
|
+
},
|
|
237
|
+
clearable: true,
|
|
238
|
+
pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$",
|
|
239
|
+
minLength: 5,
|
|
240
|
+
maxLength: 10
|
|
241
|
+
})),
|
|
242
|
+
getByRole = _render7.getByRole;
|
|
297
243
|
var input = getByRole("textbox");
|
|
298
|
-
|
|
299
244
|
_react2.fireEvent.change(input, {
|
|
300
245
|
target: {
|
|
301
246
|
value: "test"
|
|
302
247
|
}
|
|
303
248
|
});
|
|
304
|
-
|
|
305
249
|
expect(onChange).toHaveBeenCalled();
|
|
306
250
|
expect(onChange).toHaveBeenCalledWith({
|
|
307
251
|
value: "test",
|
|
308
252
|
error: "Min length 5, max length 10."
|
|
309
253
|
});
|
|
310
|
-
|
|
311
254
|
_react2.fireEvent.blur(input);
|
|
312
|
-
|
|
313
255
|
expect(onBlur).toHaveBeenCalled();
|
|
314
256
|
expect(onBlur).toHaveBeenCalledWith({
|
|
315
257
|
value: "test",
|
|
316
258
|
error: "Min length 5, max length 10."
|
|
317
259
|
});
|
|
318
|
-
|
|
319
260
|
_react2.fireEvent.change(input, {
|
|
320
261
|
target: {
|
|
321
262
|
value: "tests"
|
|
322
263
|
}
|
|
323
264
|
});
|
|
324
|
-
|
|
325
265
|
expect(onChange).toHaveBeenCalled();
|
|
326
266
|
expect(onChange).toHaveBeenCalledWith({
|
|
327
267
|
value: "tests",
|
|
328
268
|
error: "Please match the format requested."
|
|
329
269
|
});
|
|
330
|
-
|
|
331
270
|
_react2.fireEvent.blur(input);
|
|
332
|
-
|
|
333
271
|
expect(onBlur).toHaveBeenCalled();
|
|
334
272
|
expect(onBlur).toHaveBeenCalledWith({
|
|
335
273
|
value: "tests",
|
|
336
274
|
error: "Please match the format requested."
|
|
337
275
|
});
|
|
338
|
-
|
|
339
276
|
_react2.fireEvent.change(input, {
|
|
340
277
|
target: {
|
|
341
278
|
value: "tests4&"
|
|
342
279
|
}
|
|
343
280
|
});
|
|
344
|
-
|
|
345
281
|
expect(onChange).toHaveBeenCalled();
|
|
346
282
|
expect(onChange).toHaveBeenCalledWith({
|
|
347
283
|
value: "tests4&"
|
|
348
284
|
});
|
|
349
|
-
|
|
350
285
|
_react2.fireEvent.blur(input);
|
|
351
|
-
|
|
352
286
|
expect(onBlur).toHaveBeenCalled();
|
|
353
287
|
expect(onBlur).toHaveBeenCalledWith({
|
|
354
288
|
value: "tests4&"
|
|
@@ -356,17 +290,13 @@ describe("TextInput component tests", function () {
|
|
|
356
290
|
});
|
|
357
291
|
test("onChange function is called correctly", function () {
|
|
358
292
|
var onChange = jest.fn();
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
getByRole = _render12.getByRole;
|
|
365
|
-
|
|
293
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
294
|
+
label: "Input label",
|
|
295
|
+
onChange: onChange
|
|
296
|
+
})),
|
|
297
|
+
getByRole = _render8.getByRole;
|
|
366
298
|
var input = getByRole("textbox");
|
|
367
|
-
|
|
368
299
|
_userEvent["default"].type(input, "onchange event test");
|
|
369
|
-
|
|
370
300
|
expect(input.value).toBe("onchange event test");
|
|
371
301
|
expect(onChange).toHaveBeenCalled();
|
|
372
302
|
expect(onChange).toHaveBeenCalledWith({
|
|
@@ -376,194 +306,340 @@ describe("TextInput component tests", function () {
|
|
|
376
306
|
test("onBlur function is called correctly", function () {
|
|
377
307
|
var onBlur = jest.fn();
|
|
378
308
|
var onChange = jest.fn();
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
getByRole = _render13.getByRole;
|
|
386
|
-
|
|
309
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
310
|
+
label: "Input label",
|
|
311
|
+
onChange: onChange,
|
|
312
|
+
onBlur: onBlur
|
|
313
|
+
})),
|
|
314
|
+
getByRole = _render9.getByRole;
|
|
387
315
|
var input = getByRole("textbox");
|
|
388
|
-
|
|
389
316
|
_react2.fireEvent.change(input, {
|
|
390
317
|
target: {
|
|
391
318
|
value: "Blur test"
|
|
392
319
|
}
|
|
393
320
|
});
|
|
394
|
-
|
|
395
321
|
_react2.fireEvent.blur(input);
|
|
396
|
-
|
|
397
322
|
expect(onBlur).toHaveBeenCalled();
|
|
398
323
|
expect(onBlur).toHaveBeenCalledWith({
|
|
399
324
|
value: "Blur test"
|
|
400
325
|
});
|
|
401
326
|
});
|
|
402
|
-
test("Clear action
|
|
403
|
-
var
|
|
404
|
-
|
|
327
|
+
test("Clear action tooltip is correct", function () {
|
|
328
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
329
|
+
label: "Input label",
|
|
330
|
+
value: "Text",
|
|
331
|
+
clearable: true
|
|
332
|
+
})),
|
|
333
|
+
getByTitle = _render10.getByTitle;
|
|
334
|
+
expect(getByTitle("Clear field")).toBeTruthy();
|
|
335
|
+
});
|
|
336
|
+
test("Clear action onClick cleans the input", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
337
|
+
var _render11, getByRole, input, closeAction;
|
|
405
338
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
406
|
-
while (1) {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
339
|
+
while (1) switch (_context.prev = _context.next) {
|
|
340
|
+
case 0:
|
|
341
|
+
_render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
342
|
+
label: "Input label",
|
|
343
|
+
clearable: true
|
|
344
|
+
})), getByRole = _render11.getByRole;
|
|
345
|
+
input = getByRole("textbox");
|
|
346
|
+
_userEvent["default"].type(input, "Test");
|
|
347
|
+
closeAction = getByRole("button");
|
|
348
|
+
_context.next = 6;
|
|
349
|
+
return _userEvent["default"].click(closeAction);
|
|
350
|
+
case 6:
|
|
351
|
+
expect(input.value).toBe("");
|
|
352
|
+
case 7:
|
|
353
|
+
case "end":
|
|
354
|
+
return _context.stop();
|
|
420
355
|
}
|
|
421
356
|
}, _callee);
|
|
422
357
|
})));
|
|
423
|
-
test("
|
|
424
|
-
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
425
|
-
label: "Input label",
|
|
426
|
-
clearable: true
|
|
427
|
-
})),
|
|
428
|
-
getByRole = _render15.getByRole;
|
|
429
|
-
|
|
430
|
-
var input = getByRole("textbox");
|
|
431
|
-
|
|
432
|
-
_userEvent["default"].type(input, "Test");
|
|
433
|
-
|
|
434
|
-
var closeAction = getByRole("button");
|
|
435
|
-
|
|
436
|
-
_userEvent["default"].click(closeAction);
|
|
437
|
-
|
|
438
|
-
expect(input.value).toBe("");
|
|
439
|
-
});
|
|
440
|
-
test("Disabled input renders with correct aria and can not be modified", function () {
|
|
358
|
+
test("Disabled text input renders with correct aria and can not be modified", function () {
|
|
441
359
|
var onChange = jest.fn();
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
getByRole = _render16.getByRole;
|
|
449
|
-
|
|
360
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
361
|
+
label: "Input label",
|
|
362
|
+
onChange: onChange,
|
|
363
|
+
disabled: true
|
|
364
|
+
})),
|
|
365
|
+
getByRole = _render12.getByRole;
|
|
450
366
|
var input = getByRole("textbox");
|
|
451
|
-
expect(input.getAttribute("aria-disabled")).toBe("true");
|
|
452
|
-
|
|
453
367
|
_userEvent["default"].type(input, "Test");
|
|
454
|
-
|
|
455
368
|
expect(onChange).not.toHaveBeenCalled();
|
|
456
369
|
});
|
|
457
|
-
test("Disabled input (action must be shown but not clickable)", function () {
|
|
458
|
-
var onClick
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
370
|
+
test("Disabled text input (action must be shown but not clickable)", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
371
|
+
var onClick, action, _render13, getByRole, input;
|
|
372
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
373
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
374
|
+
case 0:
|
|
375
|
+
onClick = jest.fn();
|
|
376
|
+
action = {
|
|
377
|
+
onClick: onClick,
|
|
378
|
+
icon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
379
|
+
"data-testid": "image",
|
|
380
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
381
|
+
height: "24px",
|
|
382
|
+
viewBox: "0 0 24 24",
|
|
383
|
+
width: "24px",
|
|
384
|
+
fill: "currentColor"
|
|
385
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
386
|
+
d: "M0 0h24v24H0V0z",
|
|
387
|
+
fill: "none"
|
|
388
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
389
|
+
d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"
|
|
390
|
+
}))
|
|
391
|
+
};
|
|
392
|
+
_render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
393
|
+
label: "Disabled input label",
|
|
394
|
+
action: action,
|
|
395
|
+
disabled: true
|
|
396
|
+
})), getByRole = _render13.getByRole;
|
|
397
|
+
input = getByRole("textbox");
|
|
398
|
+
expect(input.disabled).toBeTruthy();
|
|
399
|
+
_context2.next = 7;
|
|
400
|
+
return _userEvent["default"].click(getByRole("button"));
|
|
401
|
+
case 7:
|
|
402
|
+
expect(onClick).not.toHaveBeenCalled();
|
|
403
|
+
case 8:
|
|
404
|
+
case "end":
|
|
405
|
+
return _context2.stop();
|
|
406
|
+
}
|
|
407
|
+
}, _callee2);
|
|
408
|
+
})));
|
|
409
|
+
test("Disabled text input (clear default action should not be displayed, even with text written on the input)", function () {
|
|
410
|
+
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
411
|
+
label: "Disabled input label",
|
|
412
|
+
value: "Sample text",
|
|
413
|
+
disabled: true,
|
|
414
|
+
clearable: true
|
|
415
|
+
})),
|
|
416
|
+
getByRole = _render14.getByRole,
|
|
417
|
+
queryByRole = _render14.queryByRole;
|
|
500
418
|
var input = getByRole("textbox");
|
|
501
419
|
expect(input.disabled).toBeTruthy();
|
|
502
420
|
expect(queryByRole("button")).toBeFalsy();
|
|
503
421
|
});
|
|
504
|
-
test("Disabled input (suffix and
|
|
505
|
-
var
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
422
|
+
test("Disabled text input (suffix and prefix must be displayed)", function () {
|
|
423
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
424
|
+
label: "Disabled input label",
|
|
425
|
+
value: "Sample text",
|
|
426
|
+
prefix: "+34",
|
|
427
|
+
suffix: "USD",
|
|
428
|
+
disabled: true
|
|
429
|
+
})),
|
|
430
|
+
getByRole = _render15.getByRole,
|
|
431
|
+
getByText = _render15.getByText;
|
|
515
432
|
var input = getByRole("textbox");
|
|
516
433
|
expect(input.disabled).toBeTruthy();
|
|
517
434
|
expect(getByText("+34")).toBeTruthy();
|
|
518
435
|
expect(getByText("USD")).toBeTruthy();
|
|
519
436
|
});
|
|
520
|
-
test("
|
|
521
|
-
var
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
527
|
-
height: "24px",
|
|
528
|
-
viewBox: "0 0 24 24",
|
|
529
|
-
width: "24px",
|
|
530
|
-
fill: "currentColor"
|
|
531
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
532
|
-
d: "M0 0h24v24H0V0z",
|
|
533
|
-
fill: "none"
|
|
534
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
535
|
-
d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"
|
|
437
|
+
test("Read-only text input doesn't render the clear action", function () {
|
|
438
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
439
|
+
label: "Disabled input label",
|
|
440
|
+
defaultValue: "Sample text",
|
|
441
|
+
readOnly: true,
|
|
442
|
+
clearable: true
|
|
536
443
|
})),
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
action: action
|
|
543
|
-
})),
|
|
544
|
-
getByRole = _render20.getByRole,
|
|
545
|
-
getByTestId = _render20.getByTestId,
|
|
546
|
-
getByTitle = _render20.getByTitle;
|
|
547
|
-
|
|
548
|
-
expect(getByTestId("image")).toBeTruthy();
|
|
549
|
-
expect(getByTitle("Search")).toBeTruthy();
|
|
550
|
-
|
|
551
|
-
_userEvent["default"].click(getByRole("button"));
|
|
552
|
-
|
|
553
|
-
expect(onClick).toHaveBeenCalled();
|
|
444
|
+
getByRole = _render16.getByRole,
|
|
445
|
+
queryByRole = _render16.queryByRole;
|
|
446
|
+
var input = getByRole("textbox");
|
|
447
|
+
expect(input.readOnly).toBeTruthy();
|
|
448
|
+
expect(queryByRole("button")).toBeFalsy();
|
|
554
449
|
});
|
|
450
|
+
test("Read-only text input does not trigger onChange function", function () {
|
|
451
|
+
var onChange = jest.fn();
|
|
452
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
453
|
+
label: "Example label",
|
|
454
|
+
onChange: onChange,
|
|
455
|
+
readOnly: true
|
|
456
|
+
})),
|
|
457
|
+
getByLabelText = _render17.getByLabelText;
|
|
458
|
+
var textInput = getByLabelText("Example label");
|
|
459
|
+
_userEvent["default"].type(textInput, "Test");
|
|
460
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
461
|
+
});
|
|
462
|
+
test("Read-only text input sends its value on submit", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
463
|
+
var handlerOnSubmit, _render18, getByText, submit;
|
|
464
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
465
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
466
|
+
case 0:
|
|
467
|
+
handlerOnSubmit = jest.fn(function (e) {
|
|
468
|
+
e.preventDefault();
|
|
469
|
+
var formData = new FormData(e.target);
|
|
470
|
+
var formProps = Object.fromEntries(formData);
|
|
471
|
+
expect(formProps).toStrictEqual({
|
|
472
|
+
data: "Text"
|
|
473
|
+
});
|
|
474
|
+
});
|
|
475
|
+
_render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
|
|
476
|
+
onSubmit: handlerOnSubmit
|
|
477
|
+
}, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
478
|
+
label: "Example label",
|
|
479
|
+
name: "data",
|
|
480
|
+
defaultValue: "Text",
|
|
481
|
+
readOnly: true
|
|
482
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
483
|
+
type: "submit"
|
|
484
|
+
}, "Submit"))), getByText = _render18.getByText;
|
|
485
|
+
submit = getByText("Submit");
|
|
486
|
+
_context3.next = 5;
|
|
487
|
+
return _userEvent["default"].click(submit);
|
|
488
|
+
case 5:
|
|
489
|
+
expect(handlerOnSubmit).toHaveBeenCalled();
|
|
490
|
+
case 6:
|
|
491
|
+
case "end":
|
|
492
|
+
return _context3.stop();
|
|
493
|
+
}
|
|
494
|
+
}, _callee3);
|
|
495
|
+
})));
|
|
496
|
+
test("Read-only text input doesn't trigger custom action's onClick event", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
497
|
+
var onClick, action, _render19, getByRole;
|
|
498
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
499
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
500
|
+
case 0:
|
|
501
|
+
onClick = jest.fn();
|
|
502
|
+
action = {
|
|
503
|
+
onClick: onClick,
|
|
504
|
+
icon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
505
|
+
"data-testid": "image",
|
|
506
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
507
|
+
height: "24px",
|
|
508
|
+
viewBox: "0 0 24 24",
|
|
509
|
+
width: "24px",
|
|
510
|
+
fill: "currentColor"
|
|
511
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
512
|
+
d: "M0 0h24v24H0V0z",
|
|
513
|
+
fill: "none"
|
|
514
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
515
|
+
d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"
|
|
516
|
+
})),
|
|
517
|
+
title: "Search"
|
|
518
|
+
};
|
|
519
|
+
_render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
520
|
+
label: "Input label",
|
|
521
|
+
action: action,
|
|
522
|
+
readOnly: true
|
|
523
|
+
})), getByRole = _render19.getByRole;
|
|
524
|
+
_context4.next = 5;
|
|
525
|
+
return _userEvent["default"].click(getByRole("button"));
|
|
526
|
+
case 5:
|
|
527
|
+
expect(onClick).not.toHaveBeenCalled();
|
|
528
|
+
case 6:
|
|
529
|
+
case "end":
|
|
530
|
+
return _context4.stop();
|
|
531
|
+
}
|
|
532
|
+
}, _callee4);
|
|
533
|
+
})));
|
|
534
|
+
test("Action prop: image displayed with title and onClick event", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
535
|
+
var onClick, action, _render20, getByRole, getByTestId, getByTitle;
|
|
536
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
537
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
538
|
+
case 0:
|
|
539
|
+
onClick = jest.fn();
|
|
540
|
+
action = {
|
|
541
|
+
onClick: onClick,
|
|
542
|
+
icon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
543
|
+
"data-testid": "image",
|
|
544
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
545
|
+
height: "24px",
|
|
546
|
+
viewBox: "0 0 24 24",
|
|
547
|
+
width: "24px",
|
|
548
|
+
fill: "currentColor"
|
|
549
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
550
|
+
d: "M0 0h24v24H0V0z",
|
|
551
|
+
fill: "none"
|
|
552
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
553
|
+
d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"
|
|
554
|
+
})),
|
|
555
|
+
title: "Search"
|
|
556
|
+
};
|
|
557
|
+
_render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
558
|
+
label: "Input label",
|
|
559
|
+
action: action
|
|
560
|
+
})), getByRole = _render20.getByRole, getByTestId = _render20.getByTestId, getByTitle = _render20.getByTitle;
|
|
561
|
+
expect(getByTestId("image")).toBeTruthy();
|
|
562
|
+
expect(getByTitle("Search")).toBeTruthy();
|
|
563
|
+
_context5.next = 7;
|
|
564
|
+
return _userEvent["default"].click(getByRole("button"));
|
|
565
|
+
case 7:
|
|
566
|
+
expect(onClick).toHaveBeenCalled();
|
|
567
|
+
case 8:
|
|
568
|
+
case "end":
|
|
569
|
+
return _context5.stop();
|
|
570
|
+
}
|
|
571
|
+
}, _callee5);
|
|
572
|
+
})));
|
|
573
|
+
test("Text input submit correctly value in form", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
574
|
+
var onClick, action, handlerOnSubmit, _render21, getByText, getAllByRole, getByRole, search, submit, input;
|
|
575
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
576
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
577
|
+
case 0:
|
|
578
|
+
onClick = jest.fn();
|
|
579
|
+
action = {
|
|
580
|
+
onClick: onClick,
|
|
581
|
+
icon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
582
|
+
"data-testid": "image",
|
|
583
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
584
|
+
height: "24px",
|
|
585
|
+
viewBox: "0 0 24 24",
|
|
586
|
+
width: "24px",
|
|
587
|
+
fill: "currentColor"
|
|
588
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
589
|
+
d: "M0 0h24v24H0V0z",
|
|
590
|
+
fill: "none"
|
|
591
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
592
|
+
d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"
|
|
593
|
+
})),
|
|
594
|
+
title: "Search"
|
|
595
|
+
};
|
|
596
|
+
handlerOnSubmit = jest.fn(function (e) {
|
|
597
|
+
e.preventDefault();
|
|
598
|
+
var formData = new FormData(e.target);
|
|
599
|
+
var formProps = Object.fromEntries(formData);
|
|
600
|
+
expect(formProps).toStrictEqual({
|
|
601
|
+
data: "test"
|
|
602
|
+
});
|
|
603
|
+
});
|
|
604
|
+
_render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
|
|
605
|
+
onSubmit: handlerOnSubmit
|
|
606
|
+
}, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
607
|
+
label: "Input label",
|
|
608
|
+
name: "data",
|
|
609
|
+
action: action
|
|
610
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
611
|
+
type: "submit"
|
|
612
|
+
}, "Submit"))), getByText = _render21.getByText, getAllByRole = _render21.getAllByRole, getByRole = _render21.getByRole;
|
|
613
|
+
search = getAllByRole("button")[0];
|
|
614
|
+
submit = getByText("Submit");
|
|
615
|
+
input = getByRole("textbox");
|
|
616
|
+
_userEvent["default"].type(input, "test");
|
|
617
|
+
expect(input.value).toBe("test");
|
|
618
|
+
_context6.next = 11;
|
|
619
|
+
return _userEvent["default"].click(search);
|
|
620
|
+
case 11:
|
|
621
|
+
expect(handlerOnSubmit).not.toHaveBeenCalled();
|
|
622
|
+
_context6.next = 14;
|
|
623
|
+
return _userEvent["default"].click(submit);
|
|
624
|
+
case 14:
|
|
625
|
+
expect(handlerOnSubmit).toHaveBeenCalled();
|
|
626
|
+
case 15:
|
|
627
|
+
case "end":
|
|
628
|
+
return _context6.stop();
|
|
629
|
+
}
|
|
630
|
+
}, _callee6);
|
|
631
|
+
})));
|
|
555
632
|
test("Renders with correct prefix and suffix", function () {
|
|
556
|
-
var
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
633
|
+
var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
634
|
+
label: "Input label",
|
|
635
|
+
prefix: "+34",
|
|
636
|
+
suffix: "USD"
|
|
637
|
+
})),
|
|
638
|
+
getByText = _render22.getByText;
|
|
563
639
|
expect(getByText("+34")).toBeTruthy();
|
|
564
640
|
expect(getByText("USD")).toBeTruthy();
|
|
565
641
|
});
|
|
566
|
-
test("Input has correct
|
|
642
|
+
test("Text Input has correct aria accessibility attributes", function () {
|
|
567
643
|
var onClick = jest.fn();
|
|
568
644
|
var action = {
|
|
569
645
|
onClick: onClick,
|
|
@@ -582,1131 +658,1099 @@ describe("TextInput component tests", function () {
|
|
|
582
658
|
})),
|
|
583
659
|
title: "Search"
|
|
584
660
|
};
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
getAllByRole = _render22.getAllByRole;
|
|
593
|
-
|
|
661
|
+
var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
662
|
+
label: "Example label",
|
|
663
|
+
clearable: true,
|
|
664
|
+
action: action
|
|
665
|
+
})),
|
|
666
|
+
getByRole = _render23.getByRole,
|
|
667
|
+
getAllByRole = _render23.getAllByRole;
|
|
594
668
|
var input = getByRole("textbox");
|
|
595
669
|
expect(input.getAttribute("aria-autocomplete")).toBeNull();
|
|
596
670
|
expect(input.getAttribute("aria-controls")).toBeNull();
|
|
597
671
|
expect(input.getAttribute("aria-expanded")).toBeNull();
|
|
672
|
+
expect(input.getAttribute("aria-haspopup")).toBeNull();
|
|
598
673
|
expect(input.getAttribute("aria-activedescendant")).toBeNull();
|
|
599
674
|
expect(input.getAttribute("aria-invalid")).toBe("false");
|
|
600
675
|
expect(input.getAttribute("aria-errormessage")).toBeNull();
|
|
601
676
|
expect(input.getAttribute("aria-required")).toBe("true");
|
|
602
|
-
|
|
603
677
|
_userEvent["default"].type(input, "Text");
|
|
604
|
-
|
|
605
678
|
var clear = getAllByRole("button")[0];
|
|
606
679
|
expect(clear.getAttribute("aria-label")).toBe("Clear field");
|
|
607
680
|
var search = getAllByRole("button")[1];
|
|
608
681
|
expect(search.getAttribute("aria-label")).toBe("Search");
|
|
609
682
|
});
|
|
610
|
-
test("Autosuggest has correct
|
|
611
|
-
var
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
683
|
+
test("Autosuggest has correct accessibility attributes", function () {
|
|
684
|
+
var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
685
|
+
label: "Autocomplete Countries",
|
|
686
|
+
optional: true,
|
|
687
|
+
suggestions: countries
|
|
688
|
+
})),
|
|
689
|
+
getByRole = _render24.getByRole,
|
|
690
|
+
getAllByRole = _render24.getAllByRole;
|
|
619
691
|
var input = getByRole("combobox");
|
|
620
692
|
expect(input.getAttribute("aria-autocomplete")).toBe("list");
|
|
621
693
|
expect(input.getAttribute("aria-expanded")).toBe("false");
|
|
694
|
+
expect(input.getAttribute("aria-haspopup")).toBe("listbox");
|
|
622
695
|
expect(input.getAttribute("aria-required")).toBe("false");
|
|
623
|
-
|
|
624
696
|
_react2.fireEvent.focus(input);
|
|
625
|
-
|
|
626
697
|
var list = getByRole("listbox");
|
|
627
698
|
expect(input.getAttribute("aria-controls")).toBe(list.id);
|
|
628
699
|
expect(input.getAttribute("aria-expanded")).toBe("true");
|
|
629
|
-
expect(list.getAttribute("aria-label")).toBe("Autocomplete Countries");
|
|
630
700
|
var options = getAllByRole("option");
|
|
631
701
|
expect(options[0].getAttribute("aria-selected")).toBeNull();
|
|
632
702
|
});
|
|
703
|
+
test("Mouse wheel interaction does not affect the text value", function () {
|
|
704
|
+
var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
705
|
+
label: "Default label",
|
|
706
|
+
placeholder: "Placeholder",
|
|
707
|
+
defaultValue: "Example text"
|
|
708
|
+
})),
|
|
709
|
+
getByRole = _render25.getByRole;
|
|
710
|
+
var input = getByRole("textbox");
|
|
711
|
+
_react2.fireEvent.wheel(input, {
|
|
712
|
+
deltaY: -100
|
|
713
|
+
});
|
|
714
|
+
expect(input.value).toBe("Example text");
|
|
715
|
+
_react2.fireEvent.wheel(input, {
|
|
716
|
+
deltaY: 100
|
|
717
|
+
});
|
|
718
|
+
expect(input.value).toBe("Example text");
|
|
719
|
+
});
|
|
633
720
|
});
|
|
634
721
|
describe("TextInput component synchronous autosuggest tests", function () {
|
|
635
|
-
test("Autosuggest is displayed when the input gains focus",
|
|
636
|
-
var onChange
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
722
|
+
test("Autosuggest is displayed when the input gains focus", function () {
|
|
723
|
+
var onChange = jest.fn();
|
|
724
|
+
var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
725
|
+
label: "Autocomplete Countries",
|
|
726
|
+
suggestions: countries,
|
|
727
|
+
onChange: onChange
|
|
728
|
+
})),
|
|
729
|
+
getByRole = _render26.getByRole,
|
|
730
|
+
getByText = _render26.getByText;
|
|
731
|
+
var input = getByRole("combobox");
|
|
732
|
+
_react2.fireEvent.focus(input);
|
|
733
|
+
var list = getByRole("listbox");
|
|
734
|
+
expect(list).toBeTruthy();
|
|
735
|
+
expect(getByText("Afghanistan")).toBeTruthy();
|
|
736
|
+
expect(getByText("Albania")).toBeTruthy();
|
|
737
|
+
expect(getByText("Algeria")).toBeTruthy();
|
|
738
|
+
expect(getByText("Andorra")).toBeTruthy();
|
|
739
|
+
});
|
|
740
|
+
test("Autosuggest is displayed when the user clicks the input", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
741
|
+
var onChange, _render27, getByRole, getByText, input, list;
|
|
742
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
743
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
744
|
+
case 0:
|
|
745
|
+
onChange = jest.fn();
|
|
746
|
+
_render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
747
|
+
label: "Autocomplete Countries",
|
|
748
|
+
suggestions: countries,
|
|
749
|
+
onChange: onChange
|
|
750
|
+
})), getByRole = _render27.getByRole, getByText = _render27.getByText;
|
|
751
|
+
input = getByRole("combobox");
|
|
752
|
+
_context7.next = 5;
|
|
753
|
+
return _userEvent["default"].click(input);
|
|
754
|
+
case 5:
|
|
755
|
+
list = getByRole("listbox");
|
|
756
|
+
expect(list).toBeTruthy();
|
|
757
|
+
expect(getByText("Afghanistan")).toBeTruthy();
|
|
758
|
+
expect(getByText("Albania")).toBeTruthy();
|
|
759
|
+
expect(getByText("Algeria")).toBeTruthy();
|
|
760
|
+
expect(getByText("Andorra")).toBeTruthy();
|
|
761
|
+
case 11:
|
|
762
|
+
case "end":
|
|
763
|
+
return _context7.stop();
|
|
663
764
|
}
|
|
664
|
-
},
|
|
765
|
+
}, _callee7);
|
|
665
766
|
})));
|
|
666
|
-
test("Autosuggest is displayed
|
|
667
|
-
var
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
expect(getByText("Albania")).toBeTruthy();
|
|
687
|
-
expect(getByText("Algeria")).toBeTruthy();
|
|
688
|
-
expect(getByText("Andorra")).toBeTruthy();
|
|
689
|
-
|
|
690
|
-
case 10:
|
|
691
|
-
case "end":
|
|
692
|
-
return _context3.stop();
|
|
693
|
-
}
|
|
767
|
+
test("Autosuggest is displayed while the user is writing (if closed previously, if it is open stays open)", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
768
|
+
var _render28, getByRole, getByText, getAllByText, input;
|
|
769
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
770
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
771
|
+
case 0:
|
|
772
|
+
_render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
773
|
+
label: "Autocomplete Countries",
|
|
774
|
+
suggestions: countries
|
|
775
|
+
})), getByRole = _render28.getByRole, getByText = _render28.getByText, getAllByText = _render28.getAllByText;
|
|
776
|
+
input = getByRole("combobox");
|
|
777
|
+
_context8.next = 4;
|
|
778
|
+
return _userEvent["default"].type(input, "Bah");
|
|
779
|
+
case 4:
|
|
780
|
+
expect(getByRole("listbox")).toBeTruthy();
|
|
781
|
+
expect(getAllByText("Bah").length).toBe(2);
|
|
782
|
+
expect(getByText("amas")).toBeTruthy();
|
|
783
|
+
expect(getByText("rain")).toBeTruthy();
|
|
784
|
+
case 8:
|
|
785
|
+
case "end":
|
|
786
|
+
return _context8.stop();
|
|
694
787
|
}
|
|
695
|
-
},
|
|
788
|
+
}, _callee8);
|
|
696
789
|
})));
|
|
697
|
-
test("
|
|
698
|
-
var onChange,
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
code: "Esc",
|
|
720
|
-
keyCode: 27,
|
|
721
|
-
charCode: 27
|
|
722
|
-
});
|
|
723
|
-
|
|
724
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
725
|
-
|
|
726
|
-
_userEvent["default"].type(input, "B");
|
|
727
|
-
|
|
728
|
-
expect(list).toBeTruthy();
|
|
729
|
-
expect(getAllByText("B").length).toBe(4);
|
|
730
|
-
expect(getByText("ahamas")).toBeTruthy();
|
|
731
|
-
expect(getByText("ahrain")).toBeTruthy();
|
|
732
|
-
expect(getByText("angladesh")).toBeTruthy();
|
|
733
|
-
expect(getByText("arbados")).toBeTruthy();
|
|
734
|
-
|
|
735
|
-
case 15:
|
|
736
|
-
case "end":
|
|
737
|
-
return _context4.stop();
|
|
738
|
-
}
|
|
790
|
+
test("Read-only text input does not open the suggestions list", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
791
|
+
var onChange, _render29, getByRole, queryByRole, input;
|
|
792
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
793
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
794
|
+
case 0:
|
|
795
|
+
onChange = jest.fn();
|
|
796
|
+
_render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
797
|
+
label: "Autocomplete Countries",
|
|
798
|
+
suggestions: countries,
|
|
799
|
+
onChange: onChange,
|
|
800
|
+
readOnly: true
|
|
801
|
+
})), getByRole = _render29.getByRole, queryByRole = _render29.queryByRole;
|
|
802
|
+
input = getByRole("combobox");
|
|
803
|
+
_react2.fireEvent.focus(input);
|
|
804
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
805
|
+
_context9.next = 7;
|
|
806
|
+
return _userEvent["default"].click(input);
|
|
807
|
+
case 7:
|
|
808
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
809
|
+
case 8:
|
|
810
|
+
case "end":
|
|
811
|
+
return _context9.stop();
|
|
739
812
|
}
|
|
740
|
-
},
|
|
813
|
+
}, _callee9);
|
|
741
814
|
})));
|
|
742
815
|
test("Autosuggest displays filtered when the input has a default value", function () {
|
|
743
|
-
var
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
816
|
+
var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
817
|
+
label: "Uncontrolled suggestions filtered by default",
|
|
818
|
+
helperText: "Example of helper text",
|
|
819
|
+
placeholder: "Placeholder",
|
|
820
|
+
margin: "medium",
|
|
821
|
+
defaultValue: "Suggestion 2",
|
|
822
|
+
suggestions: ["Suggestion 11", "Suggestion 12", "Suggestion 23", "Suggestion 24"],
|
|
823
|
+
clearable: true
|
|
824
|
+
})),
|
|
825
|
+
getByRole = _render30.getByRole,
|
|
826
|
+
getByText = _render30.getByText,
|
|
827
|
+
getAllByText = _render30.getAllByText;
|
|
756
828
|
var input = getByRole("combobox");
|
|
757
829
|
expect(input.value).toBe("Suggestion 2");
|
|
758
|
-
|
|
759
830
|
_react2.fireEvent.focus(input);
|
|
760
|
-
|
|
761
831
|
expect(getAllByText("Suggestion 2").length).toBe(2);
|
|
762
832
|
expect(getByText("3")).toBeTruthy();
|
|
763
833
|
expect(getByText("4")).toBeTruthy();
|
|
764
834
|
});
|
|
765
|
-
test("Autosuggest is not displayed when prop suggestions is an empty array",
|
|
766
|
-
var onChange
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
835
|
+
test("Autosuggest is not displayed when prop suggestions is an empty array", function () {
|
|
836
|
+
var onChange = jest.fn();
|
|
837
|
+
var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
838
|
+
label: "Autocomplete Countries",
|
|
839
|
+
suggestions: [],
|
|
840
|
+
onChange: onChange
|
|
841
|
+
})),
|
|
842
|
+
queryByRole = _render31.queryByRole;
|
|
843
|
+
var input = queryByRole("textbox");
|
|
844
|
+
_react2.fireEvent.focus(input);
|
|
845
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
846
|
+
});
|
|
847
|
+
test("Autosuggest closes the listbox when there are no matches for the user's input", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
848
|
+
var onChange, _render32, getByRole, queryByRole, input;
|
|
849
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
850
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
851
|
+
case 0:
|
|
852
|
+
onChange = jest.fn();
|
|
853
|
+
_render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
854
|
+
label: "Autocomplete Countries",
|
|
855
|
+
suggestions: countries,
|
|
856
|
+
onChange: onChange
|
|
857
|
+
})), getByRole = _render32.getByRole, queryByRole = _render32.queryByRole;
|
|
858
|
+
input = getByRole("combobox");
|
|
859
|
+
_context11.next = 5;
|
|
860
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
861
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
862
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
863
|
+
case 0:
|
|
864
|
+
_userEvent["default"].type(input, "x");
|
|
865
|
+
case 1:
|
|
866
|
+
case "end":
|
|
867
|
+
return _context10.stop();
|
|
868
|
+
}
|
|
869
|
+
}, _callee10);
|
|
870
|
+
})));
|
|
871
|
+
case 5:
|
|
872
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
873
|
+
case 6:
|
|
874
|
+
case "end":
|
|
875
|
+
return _context11.stop();
|
|
788
876
|
}
|
|
789
|
-
},
|
|
877
|
+
}, _callee11);
|
|
790
878
|
})));
|
|
791
|
-
test("Autosuggest
|
|
792
|
-
var onChange,
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
879
|
+
test("Autosuggest with no matches founded doesn't let the listbox to be opened", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
|
|
880
|
+
var onChange, _render33, getByRole, queryByRole, input;
|
|
881
|
+
return _regenerator["default"].wrap(function _callee13$(_context13) {
|
|
882
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
883
|
+
case 0:
|
|
884
|
+
onChange = jest.fn();
|
|
885
|
+
_render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
886
|
+
label: "Autocomplete Countries",
|
|
887
|
+
suggestions: countries,
|
|
888
|
+
onChange: onChange
|
|
889
|
+
})), getByRole = _render33.getByRole, queryByRole = _render33.queryByRole;
|
|
890
|
+
input = getByRole("combobox");
|
|
891
|
+
_context13.next = 5;
|
|
892
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
893
|
+
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
894
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
895
|
+
case 0:
|
|
896
|
+
_userEvent["default"].type(input, "x");
|
|
897
|
+
case 1:
|
|
898
|
+
case "end":
|
|
899
|
+
return _context12.stop();
|
|
900
|
+
}
|
|
901
|
+
}, _callee12);
|
|
902
|
+
})));
|
|
903
|
+
case 5:
|
|
904
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
905
|
+
_react2.fireEvent.focus(input);
|
|
906
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
907
|
+
_react2.fireEvent.keyDown(input, {
|
|
908
|
+
key: "ArrowUp",
|
|
909
|
+
code: "ArrowUp",
|
|
910
|
+
keyCode: 38,
|
|
911
|
+
charCode: 38
|
|
912
|
+
});
|
|
913
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
914
|
+
_react2.fireEvent.keyDown(input, {
|
|
915
|
+
key: "ArrowDown",
|
|
916
|
+
code: "ArrowDown",
|
|
917
|
+
keyCode: 40,
|
|
918
|
+
charCode: 40
|
|
919
|
+
});
|
|
920
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
921
|
+
case 12:
|
|
922
|
+
case "end":
|
|
923
|
+
return _context13.stop();
|
|
820
924
|
}
|
|
821
|
-
},
|
|
925
|
+
}, _callee13);
|
|
822
926
|
})));
|
|
823
|
-
test("Autosuggest
|
|
824
|
-
var onChange,
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
case 15:
|
|
871
|
-
case "end":
|
|
872
|
-
return _context7.stop();
|
|
873
|
-
}
|
|
927
|
+
test("Autosuggest uncontrolled - Suggestion selected by click", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16() {
|
|
928
|
+
var onChange, _render34, getByRole, getByText, queryByRole, input;
|
|
929
|
+
return _regenerator["default"].wrap(function _callee16$(_context16) {
|
|
930
|
+
while (1) switch (_context16.prev = _context16.next) {
|
|
931
|
+
case 0:
|
|
932
|
+
onChange = jest.fn();
|
|
933
|
+
_render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
934
|
+
label: "Autocomplete Countries",
|
|
935
|
+
suggestions: countries,
|
|
936
|
+
onChange: onChange
|
|
937
|
+
})), getByRole = _render34.getByRole, getByText = _render34.getByText, queryByRole = _render34.queryByRole;
|
|
938
|
+
input = getByRole("combobox");
|
|
939
|
+
_react2.fireEvent.focus(input);
|
|
940
|
+
_context16.next = 6;
|
|
941
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14() {
|
|
942
|
+
return _regenerator["default"].wrap(function _callee14$(_context14) {
|
|
943
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
944
|
+
case 0:
|
|
945
|
+
_userEvent["default"].type(input, "Alba");
|
|
946
|
+
case 1:
|
|
947
|
+
case "end":
|
|
948
|
+
return _context14.stop();
|
|
949
|
+
}
|
|
950
|
+
}, _callee14);
|
|
951
|
+
})));
|
|
952
|
+
case 6:
|
|
953
|
+
expect(onChange).toHaveBeenCalled();
|
|
954
|
+
expect(getByText("Alba")).toBeTruthy();
|
|
955
|
+
expect(getByText("nia")).toBeTruthy();
|
|
956
|
+
_context16.next = 11;
|
|
957
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee15() {
|
|
958
|
+
return _regenerator["default"].wrap(function _callee15$(_context15) {
|
|
959
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
960
|
+
case 0:
|
|
961
|
+
_userEvent["default"].click(getByRole("option"));
|
|
962
|
+
case 1:
|
|
963
|
+
case "end":
|
|
964
|
+
return _context15.stop();
|
|
965
|
+
}
|
|
966
|
+
}, _callee15);
|
|
967
|
+
})));
|
|
968
|
+
case 11:
|
|
969
|
+
expect(input.value).toBe("Albania");
|
|
970
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
971
|
+
case 13:
|
|
972
|
+
case "end":
|
|
973
|
+
return _context16.stop();
|
|
874
974
|
}
|
|
875
|
-
},
|
|
975
|
+
}, _callee16);
|
|
876
976
|
})));
|
|
877
|
-
test("Autosuggest
|
|
878
|
-
var onChange,
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
case "end":
|
|
907
|
-
return _context8.stop();
|
|
908
|
-
}
|
|
977
|
+
test("Autosuggest controlled - Suggestion selected by click", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee17() {
|
|
978
|
+
var onChange, _render35, getByRole, getByText, queryByRole, input;
|
|
979
|
+
return _regenerator["default"].wrap(function _callee17$(_context17) {
|
|
980
|
+
while (1) switch (_context17.prev = _context17.next) {
|
|
981
|
+
case 0:
|
|
982
|
+
onChange = jest.fn();
|
|
983
|
+
_render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
984
|
+
label: "Autocomplete Countries",
|
|
985
|
+
value: "Andor",
|
|
986
|
+
suggestions: countries,
|
|
987
|
+
onChange: onChange
|
|
988
|
+
})), getByRole = _render35.getByRole, getByText = _render35.getByText, queryByRole = _render35.queryByRole;
|
|
989
|
+
input = getByRole("combobox");
|
|
990
|
+
_context17.next = 5;
|
|
991
|
+
return _userEvent["default"].click(getByText("Autocomplete Countries"));
|
|
992
|
+
case 5:
|
|
993
|
+
expect(input.value).toBe("Andor");
|
|
994
|
+
expect(getByText("Andor")).toBeTruthy();
|
|
995
|
+
expect(getByText("ra")).toBeTruthy();
|
|
996
|
+
_context17.next = 10;
|
|
997
|
+
return _userEvent["default"].click(getByRole("option"));
|
|
998
|
+
case 10:
|
|
999
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
1000
|
+
value: "Andorra"
|
|
1001
|
+
});
|
|
1002
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1003
|
+
case 12:
|
|
1004
|
+
case "end":
|
|
1005
|
+
return _context17.stop();
|
|
909
1006
|
}
|
|
910
|
-
},
|
|
1007
|
+
}, _callee17);
|
|
911
1008
|
})));
|
|
912
|
-
test("Autosuggest
|
|
913
|
-
var onChange,
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
});
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
1009
|
+
test("Autosuggest - Pattern constraint", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee20() {
|
|
1010
|
+
var onChange, onBlur, _render36, getByRole, getByText, input;
|
|
1011
|
+
return _regenerator["default"].wrap(function _callee20$(_context20) {
|
|
1012
|
+
while (1) switch (_context20.prev = _context20.next) {
|
|
1013
|
+
case 0:
|
|
1014
|
+
onChange = jest.fn();
|
|
1015
|
+
onBlur = jest.fn();
|
|
1016
|
+
_render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1017
|
+
label: "Autocomplete Countries",
|
|
1018
|
+
suggestions: countries,
|
|
1019
|
+
onChange: onChange,
|
|
1020
|
+
onBlur: onBlur,
|
|
1021
|
+
pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$"
|
|
1022
|
+
})), getByRole = _render36.getByRole, getByText = _render36.getByText;
|
|
1023
|
+
input = getByRole("combobox");
|
|
1024
|
+
_react2.fireEvent.focus(input);
|
|
1025
|
+
_context20.next = 7;
|
|
1026
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee18() {
|
|
1027
|
+
return _regenerator["default"].wrap(function _callee18$(_context18) {
|
|
1028
|
+
while (1) switch (_context18.prev = _context18.next) {
|
|
1029
|
+
case 0:
|
|
1030
|
+
_userEvent["default"].type(input, "Andor");
|
|
1031
|
+
case 1:
|
|
1032
|
+
case "end":
|
|
1033
|
+
return _context18.stop();
|
|
1034
|
+
}
|
|
1035
|
+
}, _callee18);
|
|
1036
|
+
})));
|
|
1037
|
+
case 7:
|
|
1038
|
+
expect(getByText("Andor")).toBeTruthy();
|
|
1039
|
+
expect(getByText("ra")).toBeTruthy();
|
|
1040
|
+
_context20.next = 11;
|
|
1041
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee19() {
|
|
1042
|
+
return _regenerator["default"].wrap(function _callee19$(_context19) {
|
|
1043
|
+
while (1) switch (_context19.prev = _context19.next) {
|
|
1044
|
+
case 0:
|
|
1045
|
+
_userEvent["default"].click(getByRole("option"));
|
|
1046
|
+
case 1:
|
|
1047
|
+
case "end":
|
|
1048
|
+
return _context19.stop();
|
|
1049
|
+
}
|
|
1050
|
+
}, _callee19);
|
|
1051
|
+
})));
|
|
1052
|
+
case 11:
|
|
1053
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
1054
|
+
value: "Andorra",
|
|
1055
|
+
error: "Please match the format requested."
|
|
1056
|
+
});
|
|
1057
|
+
_react2.fireEvent.blur(input);
|
|
1058
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
1059
|
+
value: "Andorra",
|
|
1060
|
+
error: "Please match the format requested."
|
|
1061
|
+
});
|
|
1062
|
+
case 14:
|
|
1063
|
+
case "end":
|
|
1064
|
+
return _context20.stop();
|
|
945
1065
|
}
|
|
946
|
-
},
|
|
1066
|
+
}, _callee20);
|
|
947
1067
|
})));
|
|
948
|
-
test("Autosuggest -
|
|
949
|
-
var onChange, onBlur,
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
1068
|
+
test("Autosuggest - Length constraint", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee23() {
|
|
1069
|
+
var onChange, onBlur, _render37, getByText, getByRole, input;
|
|
1070
|
+
return _regenerator["default"].wrap(function _callee23$(_context23) {
|
|
1071
|
+
while (1) switch (_context23.prev = _context23.next) {
|
|
1072
|
+
case 0:
|
|
1073
|
+
onChange = jest.fn();
|
|
1074
|
+
onBlur = jest.fn();
|
|
1075
|
+
_render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1076
|
+
label: "Autocomplete Countries",
|
|
1077
|
+
suggestions: countries,
|
|
1078
|
+
onChange: onChange,
|
|
1079
|
+
onBlur: onBlur,
|
|
1080
|
+
minLength: 5,
|
|
1081
|
+
maxLength: 10
|
|
1082
|
+
})), getByText = _render37.getByText, getByRole = _render37.getByRole;
|
|
1083
|
+
input = getByRole("combobox");
|
|
1084
|
+
_react2.fireEvent.focus(input);
|
|
1085
|
+
_context23.next = 7;
|
|
1086
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee21() {
|
|
1087
|
+
return _regenerator["default"].wrap(function _callee21$(_context21) {
|
|
1088
|
+
while (1) switch (_context21.prev = _context21.next) {
|
|
1089
|
+
case 0:
|
|
1090
|
+
_userEvent["default"].type(input, "Cha");
|
|
1091
|
+
case 1:
|
|
1092
|
+
case "end":
|
|
1093
|
+
return _context21.stop();
|
|
1094
|
+
}
|
|
1095
|
+
}, _callee21);
|
|
1096
|
+
})));
|
|
1097
|
+
case 7:
|
|
1098
|
+
expect(getByText("Cha")).toBeTruthy();
|
|
1099
|
+
expect(getByText("d")).toBeTruthy();
|
|
1100
|
+
_context23.next = 11;
|
|
1101
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee22() {
|
|
1102
|
+
return _regenerator["default"].wrap(function _callee22$(_context22) {
|
|
1103
|
+
while (1) switch (_context22.prev = _context22.next) {
|
|
1104
|
+
case 0:
|
|
1105
|
+
_userEvent["default"].click(getByRole("option"));
|
|
1106
|
+
case 1:
|
|
1107
|
+
case "end":
|
|
1108
|
+
return _context22.stop();
|
|
1109
|
+
}
|
|
1110
|
+
}, _callee22);
|
|
1111
|
+
})));
|
|
1112
|
+
case 11:
|
|
1113
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
1114
|
+
value: "Cha",
|
|
1115
|
+
error: "Min length 5, max length 10."
|
|
1116
|
+
});
|
|
1117
|
+
_react2.fireEvent.blur(input);
|
|
1118
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
1119
|
+
value: "Chad",
|
|
1120
|
+
error: "Min length 5, max length 10."
|
|
1121
|
+
});
|
|
1122
|
+
case 14:
|
|
1123
|
+
case "end":
|
|
1124
|
+
return _context23.stop();
|
|
991
1125
|
}
|
|
992
|
-
},
|
|
1126
|
+
}, _callee23);
|
|
993
1127
|
})));
|
|
994
|
-
test("Autosuggest
|
|
995
|
-
var onChange
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1128
|
+
test("Autosuggest keys: arrow down key opens autosuggest, active first option is selected with Enter and closes the autosuggest", function () {
|
|
1129
|
+
var onChange = jest.fn();
|
|
1130
|
+
var _render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1131
|
+
label: "Autocomplete Countries",
|
|
1132
|
+
suggestions: countries,
|
|
1133
|
+
onChange: onChange
|
|
1134
|
+
})),
|
|
1135
|
+
getByRole = _render38.getByRole,
|
|
1136
|
+
queryByRole = _render38.queryByRole;
|
|
1137
|
+
var input = getByRole("combobox");
|
|
1138
|
+
_react2.fireEvent.keyDown(input, {
|
|
1139
|
+
key: "ArrowDown",
|
|
1140
|
+
code: "ArrowDown",
|
|
1141
|
+
keyCode: 40,
|
|
1142
|
+
charCode: 40
|
|
1143
|
+
});
|
|
1144
|
+
var list = getByRole("listbox");
|
|
1145
|
+
expect(list).toBeTruthy();
|
|
1146
|
+
_react2.fireEvent.keyDown(input, {
|
|
1147
|
+
key: "Enter",
|
|
1148
|
+
code: "Enter",
|
|
1149
|
+
keyCode: 13,
|
|
1150
|
+
charCode: 13
|
|
1151
|
+
});
|
|
1152
|
+
expect(input.value).toBe("Afghanistan");
|
|
1153
|
+
expect(queryByRole("list")).toBeFalsy();
|
|
1154
|
+
});
|
|
1155
|
+
test("Autosuggest keys: arrow up key opens autosuggest, active last option is selected with Enter and closes the autosuggest", function () {
|
|
1156
|
+
var onChange = jest.fn();
|
|
1157
|
+
var _render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1158
|
+
label: "Autocomplete Countries",
|
|
1159
|
+
suggestions: countries,
|
|
1160
|
+
onChange: onChange
|
|
1161
|
+
})),
|
|
1162
|
+
getByRole = _render39.getByRole,
|
|
1163
|
+
queryByRole = _render39.queryByRole;
|
|
1164
|
+
var input = getByRole("combobox");
|
|
1165
|
+
_react2.fireEvent.keyDown(input, {
|
|
1166
|
+
key: "ArrowUp",
|
|
1167
|
+
code: "ArrowUp",
|
|
1168
|
+
keyCode: 38,
|
|
1169
|
+
charCode: 38
|
|
1170
|
+
});
|
|
1171
|
+
var list = getByRole("listbox");
|
|
1172
|
+
expect(list).toBeTruthy();
|
|
1173
|
+
_react2.fireEvent.keyDown(input, {
|
|
1174
|
+
key: "Enter",
|
|
1175
|
+
code: "Enter",
|
|
1176
|
+
keyCode: 13,
|
|
1177
|
+
charCode: 13
|
|
1178
|
+
});
|
|
1179
|
+
expect(input.value).toBe("Djibouti");
|
|
1180
|
+
expect(queryByRole("list")).toBeFalsy();
|
|
1181
|
+
});
|
|
1182
|
+
test("Autosuggest keys: Esc key closes the autosuggest and cleans the input", function () {
|
|
1183
|
+
var onChange = jest.fn();
|
|
1184
|
+
var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1185
|
+
label: "Autocomplete Countries",
|
|
1186
|
+
suggestions: countries,
|
|
1187
|
+
onChange: onChange
|
|
1188
|
+
})),
|
|
1189
|
+
getByRole = _render40.getByRole,
|
|
1190
|
+
queryByRole = _render40.queryByRole;
|
|
1191
|
+
var input = getByRole("combobox");
|
|
1192
|
+
_react2.fireEvent.focus(input);
|
|
1193
|
+
_userEvent["default"].type(input, "Bangla");
|
|
1194
|
+
var list = getByRole("listbox");
|
|
1195
|
+
expect(list).toBeTruthy();
|
|
1196
|
+
_react2.fireEvent.keyDown(input, {
|
|
1197
|
+
key: "Esc",
|
|
1198
|
+
code: "Esc",
|
|
1199
|
+
keyCode: 27,
|
|
1200
|
+
charCode: 27
|
|
1201
|
+
});
|
|
1202
|
+
expect(input.value).toBe("");
|
|
1203
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1204
|
+
});
|
|
1205
|
+
test("Autosuggest keys: Enter, if no active suggestion closes the autosuggest", function () {
|
|
1206
|
+
var onChange = jest.fn();
|
|
1207
|
+
var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1208
|
+
label: "Autocomplete Countries",
|
|
1209
|
+
suggestions: countries,
|
|
1210
|
+
onChange: onChange
|
|
1211
|
+
})),
|
|
1212
|
+
getByRole = _render41.getByRole,
|
|
1213
|
+
queryByRole = _render41.queryByRole;
|
|
1214
|
+
var input = getByRole("combobox");
|
|
1215
|
+
_react2.fireEvent.focus(input);
|
|
1216
|
+
var list = getByRole("listbox");
|
|
1217
|
+
expect(list).toBeTruthy();
|
|
1218
|
+
_react2.fireEvent.keyDown(input, {
|
|
1219
|
+
key: "Enter",
|
|
1220
|
+
code: "Enter",
|
|
1221
|
+
keyCode: 27,
|
|
1222
|
+
charCode: 27
|
|
1223
|
+
});
|
|
1224
|
+
expect(input.value).toBe("");
|
|
1225
|
+
expect(queryByRole("list")).toBeFalsy();
|
|
1226
|
+
});
|
|
1227
|
+
test("Autosuggest complex key sequence: write, arrow up two times, arrow down and select with Enter. Then, clean with Esc.", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee25() {
|
|
1228
|
+
var onChange, _render42, getByRole, queryByRole, input;
|
|
1229
|
+
return _regenerator["default"].wrap(function _callee25$(_context25) {
|
|
1230
|
+
while (1) switch (_context25.prev = _context25.next) {
|
|
1231
|
+
case 0:
|
|
1232
|
+
onChange = jest.fn();
|
|
1233
|
+
_render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1234
|
+
label: "Autocomplete Countries",
|
|
1235
|
+
suggestions: countries,
|
|
1236
|
+
onChange: onChange
|
|
1237
|
+
})), getByRole = _render42.getByRole, queryByRole = _render42.queryByRole;
|
|
1238
|
+
input = getByRole("combobox");
|
|
1239
|
+
_react2.fireEvent.focus(input);
|
|
1240
|
+
_context25.next = 6;
|
|
1241
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee24() {
|
|
1242
|
+
return _regenerator["default"].wrap(function _callee24$(_context24) {
|
|
1243
|
+
while (1) switch (_context24.prev = _context24.next) {
|
|
1244
|
+
case 0:
|
|
1245
|
+
_userEvent["default"].type(input, "Ba");
|
|
1246
|
+
case 1:
|
|
1247
|
+
case "end":
|
|
1248
|
+
return _context24.stop();
|
|
1249
|
+
}
|
|
1250
|
+
}, _callee24);
|
|
1251
|
+
})));
|
|
1252
|
+
case 6:
|
|
1253
|
+
_react2.fireEvent.keyDown(input, {
|
|
1254
|
+
key: "ArrowUp",
|
|
1255
|
+
code: "ArrowUp",
|
|
1256
|
+
keyCode: 38,
|
|
1257
|
+
charCode: 38
|
|
1258
|
+
});
|
|
1259
|
+
_react2.fireEvent.keyDown(input, {
|
|
1260
|
+
key: "ArrowUp",
|
|
1261
|
+
code: "ArrowUpp",
|
|
1262
|
+
keyCode: 38,
|
|
1263
|
+
charCode: 38
|
|
1264
|
+
});
|
|
1265
|
+
_react2.fireEvent.keyDown(input, {
|
|
1266
|
+
key: "ArrowDown",
|
|
1267
|
+
code: "ArrowDown",
|
|
1268
|
+
keyCode: 40,
|
|
1269
|
+
charCode: 40
|
|
1270
|
+
});
|
|
1271
|
+
_react2.fireEvent.keyDown(input, {
|
|
1272
|
+
key: "Enter",
|
|
1273
|
+
code: "Enter",
|
|
1274
|
+
keyCode: 13,
|
|
1275
|
+
charCode: 13
|
|
1276
|
+
});
|
|
1277
|
+
expect(input.value).toBe("Barbados");
|
|
1278
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1279
|
+
_react2.fireEvent.keyDown(input, {
|
|
1280
|
+
key: "Esc",
|
|
1281
|
+
code: "Esp",
|
|
1282
|
+
keyCode: 27,
|
|
1283
|
+
charCode: 27
|
|
1284
|
+
});
|
|
1285
|
+
expect(input.value).toBe("");
|
|
1286
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1287
|
+
case 15:
|
|
1288
|
+
case "end":
|
|
1289
|
+
return _context25.stop();
|
|
1038
1290
|
}
|
|
1039
|
-
},
|
|
1291
|
+
}, _callee25);
|
|
1040
1292
|
})));
|
|
1041
|
-
test("Autosuggest
|
|
1042
|
-
var onChange
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
_react2.fireEvent.keyDown(input, {
|
|
1057
|
-
key: "ArrowDown",
|
|
1058
|
-
code: "ArrowDown",
|
|
1059
|
-
keyCode: 40,
|
|
1060
|
-
charCode: 40
|
|
1061
|
-
});
|
|
1062
|
-
|
|
1063
|
-
list = getByRole("listbox");
|
|
1064
|
-
expect(list).toBeTruthy();
|
|
1065
|
-
|
|
1066
|
-
_react2.fireEvent.keyDown(input, {
|
|
1067
|
-
key: "Enter",
|
|
1068
|
-
code: "Enter",
|
|
1069
|
-
keyCode: 13,
|
|
1070
|
-
charCode: 13
|
|
1071
|
-
});
|
|
1072
|
-
|
|
1073
|
-
expect(input.value).toBe("Afghanistan");
|
|
1074
|
-
expect(queryByRole("list")).toBeFalsy();
|
|
1075
|
-
|
|
1076
|
-
case 9:
|
|
1077
|
-
case "end":
|
|
1078
|
-
return _context12.stop();
|
|
1079
|
-
}
|
|
1293
|
+
test("Autosuggest escapes special characters", function () {
|
|
1294
|
+
var onChange = jest.fn();
|
|
1295
|
+
var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1296
|
+
label: "Autocomplete Countries",
|
|
1297
|
+
suggestions: specialCharacters,
|
|
1298
|
+
onChange: onChange
|
|
1299
|
+
})),
|
|
1300
|
+
getAllByText = _render43.getAllByText,
|
|
1301
|
+
getByRole = _render43.getByRole;
|
|
1302
|
+
var input = getByRole("combobox");
|
|
1303
|
+
_react2.fireEvent.focus(input);
|
|
1304
|
+
var list = getByRole("listbox");
|
|
1305
|
+
_react2.fireEvent.change(input, {
|
|
1306
|
+
target: {
|
|
1307
|
+
value: "/"
|
|
1080
1308
|
}
|
|
1081
|
-
}
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
while (1) {
|
|
1088
|
-
switch (_context13.prev = _context13.next) {
|
|
1089
|
-
case 0:
|
|
1090
|
-
onChange = jest.fn();
|
|
1091
|
-
_render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1092
|
-
label: "Autocomplete Countries",
|
|
1093
|
-
suggestions: countries,
|
|
1094
|
-
onChange: onChange
|
|
1095
|
-
})), getByRole = _render36.getByRole, queryByRole = _render36.queryByRole;
|
|
1096
|
-
input = getByRole("combobox");
|
|
1097
|
-
|
|
1098
|
-
_react2.fireEvent.keyDown(input, {
|
|
1099
|
-
key: "ArrowUp",
|
|
1100
|
-
code: "ArrowUp",
|
|
1101
|
-
keyCode: 38,
|
|
1102
|
-
charCode: 38
|
|
1103
|
-
});
|
|
1104
|
-
|
|
1105
|
-
list = getByRole("listbox");
|
|
1106
|
-
expect(list).toBeTruthy();
|
|
1107
|
-
|
|
1108
|
-
_react2.fireEvent.keyDown(input, {
|
|
1109
|
-
key: "Enter",
|
|
1110
|
-
code: "Enter",
|
|
1111
|
-
keyCode: 13,
|
|
1112
|
-
charCode: 13
|
|
1113
|
-
});
|
|
1114
|
-
|
|
1115
|
-
expect(input.value).toBe("Djibouti");
|
|
1116
|
-
expect(queryByRole("list")).toBeFalsy();
|
|
1117
|
-
|
|
1118
|
-
case 9:
|
|
1119
|
-
case "end":
|
|
1120
|
-
return _context13.stop();
|
|
1121
|
-
}
|
|
1309
|
+
});
|
|
1310
|
+
expect(list).toBeTruthy();
|
|
1311
|
+
expect(getAllByText("/").length).toBe(1);
|
|
1312
|
+
_react2.fireEvent.change(input, {
|
|
1313
|
+
target: {
|
|
1314
|
+
value: "\\"
|
|
1122
1315
|
}
|
|
1123
|
-
}
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
while (1) {
|
|
1130
|
-
switch (_context14.prev = _context14.next) {
|
|
1131
|
-
case 0:
|
|
1132
|
-
onChange = jest.fn();
|
|
1133
|
-
_render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1134
|
-
label: "Autocomplete Countries",
|
|
1135
|
-
suggestions: countries,
|
|
1136
|
-
onChange: onChange
|
|
1137
|
-
})), getByRole = _render37.getByRole, queryByRole = _render37.queryByRole;
|
|
1138
|
-
input = getByRole("combobox");
|
|
1139
|
-
|
|
1140
|
-
_react2.fireEvent.focus(input);
|
|
1141
|
-
|
|
1142
|
-
_userEvent["default"].type(input, "Bangla");
|
|
1143
|
-
|
|
1144
|
-
list = getByRole("listbox");
|
|
1145
|
-
expect(list).toBeTruthy();
|
|
1146
|
-
|
|
1147
|
-
_react2.fireEvent.keyDown(input, {
|
|
1148
|
-
key: "Esc",
|
|
1149
|
-
code: "Esc",
|
|
1150
|
-
keyCode: 27,
|
|
1151
|
-
charCode: 27
|
|
1152
|
-
});
|
|
1153
|
-
|
|
1154
|
-
expect(input.value).toBe("");
|
|
1155
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
1156
|
-
|
|
1157
|
-
case 10:
|
|
1158
|
-
case "end":
|
|
1159
|
-
return _context14.stop();
|
|
1160
|
-
}
|
|
1316
|
+
});
|
|
1317
|
+
expect(list).toBeTruthy();
|
|
1318
|
+
expect(getAllByText("\\").length).toBe(1);
|
|
1319
|
+
_react2.fireEvent.change(input, {
|
|
1320
|
+
target: {
|
|
1321
|
+
value: "*"
|
|
1161
1322
|
}
|
|
1162
|
-
}
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
while (1) {
|
|
1169
|
-
switch (_context15.prev = _context15.next) {
|
|
1170
|
-
case 0:
|
|
1171
|
-
onChange = jest.fn();
|
|
1172
|
-
_render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1173
|
-
label: "Autocomplete Countries",
|
|
1174
|
-
suggestions: countries,
|
|
1175
|
-
onChange: onChange
|
|
1176
|
-
})), getByRole = _render38.getByRole, queryByRole = _render38.queryByRole;
|
|
1177
|
-
input = getByRole("combobox");
|
|
1178
|
-
|
|
1179
|
-
_react2.fireEvent.focus(input);
|
|
1180
|
-
|
|
1181
|
-
list = getByRole("listbox");
|
|
1182
|
-
expect(list).toBeTruthy();
|
|
1183
|
-
|
|
1184
|
-
_react2.fireEvent.keyDown(input, {
|
|
1185
|
-
key: "Enter",
|
|
1186
|
-
code: "Enter",
|
|
1187
|
-
keyCode: 27,
|
|
1188
|
-
charCode: 27
|
|
1189
|
-
});
|
|
1190
|
-
|
|
1191
|
-
expect(input.value).toBe("");
|
|
1192
|
-
expect(queryByRole("list")).toBeFalsy();
|
|
1193
|
-
|
|
1194
|
-
case 9:
|
|
1195
|
-
case "end":
|
|
1196
|
-
return _context15.stop();
|
|
1197
|
-
}
|
|
1323
|
+
});
|
|
1324
|
+
expect(list).toBeTruthy();
|
|
1325
|
+
expect(getAllByText("*").length).toBe(2);
|
|
1326
|
+
_react2.fireEvent.change(input, {
|
|
1327
|
+
target: {
|
|
1328
|
+
value: "("
|
|
1198
1329
|
}
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
while (1) {
|
|
1206
|
-
switch (_context16.prev = _context16.next) {
|
|
1207
|
-
case 0:
|
|
1208
|
-
onChange = jest.fn();
|
|
1209
|
-
_render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1210
|
-
label: "Autocomplete Countries",
|
|
1211
|
-
suggestions: countries,
|
|
1212
|
-
onChange: onChange
|
|
1213
|
-
})), getByRole = _render39.getByRole, queryByRole = _render39.queryByRole;
|
|
1214
|
-
input = getByRole("combobox");
|
|
1215
|
-
|
|
1216
|
-
_react2.fireEvent.focus(input);
|
|
1217
|
-
|
|
1218
|
-
_userEvent["default"].type(input, "Ba");
|
|
1219
|
-
|
|
1220
|
-
_react2.fireEvent.keyDown(input, {
|
|
1221
|
-
key: "ArrowUp",
|
|
1222
|
-
code: "ArrowUp",
|
|
1223
|
-
keyCode: 38,
|
|
1224
|
-
charCode: 38
|
|
1225
|
-
});
|
|
1226
|
-
|
|
1227
|
-
_react2.fireEvent.keyDown(input, {
|
|
1228
|
-
key: "ArrowUp",
|
|
1229
|
-
code: "ArrowUpp",
|
|
1230
|
-
keyCode: 38,
|
|
1231
|
-
charCode: 38
|
|
1232
|
-
});
|
|
1233
|
-
|
|
1234
|
-
_react2.fireEvent.keyDown(input, {
|
|
1235
|
-
key: "ArrowDown",
|
|
1236
|
-
code: "ArrowDown",
|
|
1237
|
-
keyCode: 40,
|
|
1238
|
-
charCode: 40
|
|
1239
|
-
});
|
|
1240
|
-
|
|
1241
|
-
_react2.fireEvent.keyDown(input, {
|
|
1242
|
-
key: "Enter",
|
|
1243
|
-
code: "Enter",
|
|
1244
|
-
keyCode: 13,
|
|
1245
|
-
charCode: 13
|
|
1246
|
-
});
|
|
1247
|
-
|
|
1248
|
-
expect(input.value).toBe("Barbados");
|
|
1249
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
1250
|
-
|
|
1251
|
-
_react2.fireEvent.keyDown(input, {
|
|
1252
|
-
key: "Esc",
|
|
1253
|
-
code: "Esp",
|
|
1254
|
-
keyCode: 27,
|
|
1255
|
-
charCode: 27
|
|
1256
|
-
});
|
|
1257
|
-
|
|
1258
|
-
expect(input.value).toBe("");
|
|
1259
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
1260
|
-
|
|
1261
|
-
case 14:
|
|
1262
|
-
case "end":
|
|
1263
|
-
return _context16.stop();
|
|
1264
|
-
}
|
|
1330
|
+
});
|
|
1331
|
+
expect(list).toBeTruthy();
|
|
1332
|
+
expect(getAllByText("(").length).toBe(1);
|
|
1333
|
+
_react2.fireEvent.change(input, {
|
|
1334
|
+
target: {
|
|
1335
|
+
value: ")"
|
|
1265
1336
|
}
|
|
1266
|
-
}
|
|
1267
|
-
|
|
1337
|
+
});
|
|
1338
|
+
expect(list).toBeTruthy();
|
|
1339
|
+
expect(getAllByText(")").length).toBe(1);
|
|
1340
|
+
_react2.fireEvent.change(input, {
|
|
1341
|
+
target: {
|
|
1342
|
+
value: "["
|
|
1343
|
+
}
|
|
1344
|
+
});
|
|
1345
|
+
expect(list).toBeTruthy();
|
|
1346
|
+
expect(getAllByText("[").length).toBe(1);
|
|
1347
|
+
_react2.fireEvent.change(input, {
|
|
1348
|
+
target: {
|
|
1349
|
+
value: "]"
|
|
1350
|
+
}
|
|
1351
|
+
});
|
|
1352
|
+
expect(list).toBeTruthy();
|
|
1353
|
+
expect(getAllByText("]").length).toBe(1);
|
|
1354
|
+
_react2.fireEvent.change(input, {
|
|
1355
|
+
target: {
|
|
1356
|
+
value: "+"
|
|
1357
|
+
}
|
|
1358
|
+
});
|
|
1359
|
+
expect(list).toBeTruthy();
|
|
1360
|
+
expect(getAllByText("+").length).toBe(1);
|
|
1361
|
+
_react2.fireEvent.change(input, {
|
|
1362
|
+
target: {
|
|
1363
|
+
value: "?"
|
|
1364
|
+
}
|
|
1365
|
+
});
|
|
1366
|
+
expect(list).toBeTruthy();
|
|
1367
|
+
expect(getAllByText("?").length).toBe(1);
|
|
1368
|
+
});
|
|
1268
1369
|
});
|
|
1269
1370
|
describe("TextInput component asynchronous autosuggest tests", function () {
|
|
1270
|
-
test("Autosuggest 'Searching...' message is shown", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
1271
|
-
var callbackFunc, onChange,
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
}) : countries);
|
|
1283
|
-
}, 100);
|
|
1284
|
-
});
|
|
1285
|
-
return result;
|
|
1286
|
-
});
|
|
1287
|
-
onChange = jest.fn();
|
|
1288
|
-
_render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1289
|
-
label: "Autosuggest Countries",
|
|
1290
|
-
suggestions: callbackFunc,
|
|
1291
|
-
onChange: onChange
|
|
1292
|
-
})), getByRole = _render40.getByRole, getByText = _render40.getByText;
|
|
1293
|
-
input = getByRole("combobox");
|
|
1294
|
-
|
|
1295
|
-
_react2.fireEvent.focus(input);
|
|
1296
|
-
|
|
1297
|
-
expect(getByRole("listbox")).toBeTruthy();
|
|
1298
|
-
_context17.next = 8;
|
|
1299
|
-
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1300
|
-
return getByText("Searching...");
|
|
1301
|
-
});
|
|
1302
|
-
|
|
1303
|
-
case 8:
|
|
1304
|
-
expect(getByText("Afghanistan")).toBeTruthy();
|
|
1305
|
-
expect(getByText("Albania")).toBeTruthy();
|
|
1306
|
-
expect(getByText("Algeria")).toBeTruthy();
|
|
1307
|
-
expect(getByText("Andorra")).toBeTruthy();
|
|
1308
|
-
|
|
1309
|
-
_userEvent["default"].type(input, "Ab");
|
|
1310
|
-
|
|
1311
|
-
_context17.next = 15;
|
|
1312
|
-
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1313
|
-
return getByText("Searching...");
|
|
1314
|
-
});
|
|
1315
|
-
|
|
1316
|
-
case 15:
|
|
1317
|
-
expect(getByText("Cabo Verde")).toBeTruthy();
|
|
1318
|
-
|
|
1319
|
-
_react2.fireEvent.keyDown(input, {
|
|
1320
|
-
key: "ArrowUp",
|
|
1321
|
-
code: "ArrowUp",
|
|
1322
|
-
keyCode: 38,
|
|
1323
|
-
charCode: 38
|
|
1371
|
+
test("Autosuggest 'Searching...' message is shown", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee27() {
|
|
1372
|
+
var callbackFunc, onChange, _render44, getByRole, getByText, input;
|
|
1373
|
+
return _regenerator["default"].wrap(function _callee27$(_context27) {
|
|
1374
|
+
while (1) switch (_context27.prev = _context27.next) {
|
|
1375
|
+
case 0:
|
|
1376
|
+
callbackFunc = jest.fn(function (newValue) {
|
|
1377
|
+
var result = new Promise(function (resolve) {
|
|
1378
|
+
return setTimeout(function () {
|
|
1379
|
+
resolve(newValue ? countries.filter(function (option) {
|
|
1380
|
+
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1381
|
+
}) : countries);
|
|
1382
|
+
}, 100);
|
|
1324
1383
|
});
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1384
|
+
return result;
|
|
1385
|
+
});
|
|
1386
|
+
onChange = jest.fn();
|
|
1387
|
+
_render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1388
|
+
label: "Autosuggest Countries",
|
|
1389
|
+
suggestions: callbackFunc,
|
|
1390
|
+
onChange: onChange
|
|
1391
|
+
})), getByRole = _render44.getByRole, getByText = _render44.getByText;
|
|
1392
|
+
input = getByRole("combobox");
|
|
1393
|
+
_react2.fireEvent.focus(input);
|
|
1394
|
+
expect(getByRole("listbox")).toBeTruthy();
|
|
1395
|
+
_context27.next = 8;
|
|
1396
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1397
|
+
return getByText("Searching...");
|
|
1398
|
+
});
|
|
1399
|
+
case 8:
|
|
1400
|
+
expect(getByText("Afghanistan")).toBeTruthy();
|
|
1401
|
+
expect(getByText("Albania")).toBeTruthy();
|
|
1402
|
+
expect(getByText("Algeria")).toBeTruthy();
|
|
1403
|
+
expect(getByText("Andorra")).toBeTruthy();
|
|
1404
|
+
_context27.next = 14;
|
|
1405
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee26() {
|
|
1406
|
+
return _regenerator["default"].wrap(function _callee26$(_context26) {
|
|
1407
|
+
while (1) switch (_context26.prev = _context26.next) {
|
|
1408
|
+
case 0:
|
|
1409
|
+
_userEvent["default"].type(input, "Ab");
|
|
1410
|
+
case 1:
|
|
1411
|
+
case "end":
|
|
1412
|
+
return _context26.stop();
|
|
1413
|
+
}
|
|
1414
|
+
}, _callee26);
|
|
1415
|
+
})));
|
|
1416
|
+
case 14:
|
|
1417
|
+
_context27.next = 16;
|
|
1418
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1419
|
+
return getByText("Searching...");
|
|
1420
|
+
});
|
|
1421
|
+
case 16:
|
|
1422
|
+
expect(getByText("Cabo Verde")).toBeTruthy();
|
|
1423
|
+
_react2.fireEvent.keyDown(input, {
|
|
1424
|
+
key: "ArrowUp",
|
|
1425
|
+
code: "ArrowUp",
|
|
1426
|
+
keyCode: 38,
|
|
1427
|
+
charCode: 38
|
|
1428
|
+
});
|
|
1429
|
+
_react2.fireEvent.keyDown(input, {
|
|
1430
|
+
key: "Enter",
|
|
1431
|
+
code: "Enter",
|
|
1432
|
+
keyCode: 13,
|
|
1433
|
+
charCode: 13
|
|
1434
|
+
});
|
|
1435
|
+
expect(input.value).toBe("Cabo Verde");
|
|
1436
|
+
case 20:
|
|
1437
|
+
case "end":
|
|
1438
|
+
return _context27.stop();
|
|
1339
1439
|
}
|
|
1340
|
-
},
|
|
1440
|
+
}, _callee27);
|
|
1341
1441
|
})));
|
|
1342
|
-
test("Autosuggest Esc key works while 'Searching...' message is shown",
|
|
1343
|
-
var callbackFunc
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
}
|
|
1389
|
-
}, _callee18);
|
|
1390
|
-
})));
|
|
1391
|
-
test("Autosuggest Esc + arrow down working while 'Searching...' message is shown", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee19() {
|
|
1392
|
-
var callbackFunc, onChange, _render42, getByRole, getByText, queryByText, queryByRole, input, list;
|
|
1393
|
-
|
|
1394
|
-
return _regenerator["default"].wrap(function _callee19$(_context19) {
|
|
1395
|
-
while (1) {
|
|
1396
|
-
switch (_context19.prev = _context19.next) {
|
|
1397
|
-
case 0:
|
|
1398
|
-
callbackFunc = jest.fn(function (newValue) {
|
|
1399
|
-
var result = new Promise(function (resolve) {
|
|
1400
|
-
return setTimeout(function () {
|
|
1401
|
-
resolve(newValue ? countries.filter(function (option) {
|
|
1402
|
-
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1403
|
-
}) : countries);
|
|
1404
|
-
}, 100);
|
|
1405
|
-
});
|
|
1406
|
-
return result;
|
|
1407
|
-
});
|
|
1408
|
-
onChange = jest.fn();
|
|
1409
|
-
_render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1410
|
-
label: "Autosuggest Countries",
|
|
1411
|
-
suggestions: callbackFunc,
|
|
1412
|
-
onChange: onChange
|
|
1413
|
-
})), getByRole = _render42.getByRole, getByText = _render42.getByText, queryByText = _render42.queryByText, queryByRole = _render42.queryByRole;
|
|
1414
|
-
input = getByRole("combobox");
|
|
1415
|
-
|
|
1416
|
-
_react2.fireEvent.focus(input);
|
|
1417
|
-
|
|
1418
|
-
list = getByRole("listbox");
|
|
1419
|
-
expect(list).toBeTruthy();
|
|
1420
|
-
|
|
1421
|
-
_userEvent["default"].type(input, "Ab");
|
|
1422
|
-
|
|
1423
|
-
_react2.fireEvent.keyDown(input, {
|
|
1424
|
-
key: "Esc",
|
|
1425
|
-
code: "Esc",
|
|
1426
|
-
keyCode: 27,
|
|
1427
|
-
charCode: 27
|
|
1428
|
-
});
|
|
1429
|
-
|
|
1430
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
1431
|
-
expect(queryByText("Searching...")).toBeFalsy();
|
|
1432
|
-
expect(input.value).toBe("");
|
|
1433
|
-
|
|
1434
|
-
_react2.fireEvent.keyDown(input, {
|
|
1435
|
-
key: "ArrowDown",
|
|
1436
|
-
code: "ArrowDown",
|
|
1437
|
-
keyCode: 40,
|
|
1438
|
-
charCode: 40
|
|
1439
|
-
});
|
|
1440
|
-
|
|
1441
|
-
expect(list).toBeTruthy();
|
|
1442
|
-
_context19.next = 16;
|
|
1443
|
-
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1444
|
-
return getByText("Searching...");
|
|
1442
|
+
test("Autosuggest Esc key works while 'Searching...' message is shown", function () {
|
|
1443
|
+
var callbackFunc = jest.fn(function (newValue) {
|
|
1444
|
+
var result = new Promise(function (resolve) {
|
|
1445
|
+
return setTimeout(function () {
|
|
1446
|
+
resolve(newValue ? countries.filter(function (option) {
|
|
1447
|
+
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1448
|
+
}) : countries);
|
|
1449
|
+
}, 100);
|
|
1450
|
+
});
|
|
1451
|
+
return result;
|
|
1452
|
+
});
|
|
1453
|
+
var onChange = jest.fn();
|
|
1454
|
+
var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1455
|
+
label: "Autosuggest Countries",
|
|
1456
|
+
suggestions: callbackFunc,
|
|
1457
|
+
onChange: onChange
|
|
1458
|
+
})),
|
|
1459
|
+
getByRole = _render45.getByRole,
|
|
1460
|
+
queryByText = _render45.queryByText,
|
|
1461
|
+
queryByRole = _render45.queryByRole;
|
|
1462
|
+
var input = getByRole("combobox");
|
|
1463
|
+
_react2.fireEvent.focus(input);
|
|
1464
|
+
expect(getByRole("listbox")).toBeTruthy();
|
|
1465
|
+
_userEvent["default"].type(input, "Ab");
|
|
1466
|
+
_react2.fireEvent.keyDown(input, {
|
|
1467
|
+
key: "Esc",
|
|
1468
|
+
code: "Esc",
|
|
1469
|
+
keyCode: 27,
|
|
1470
|
+
charCode: 27
|
|
1471
|
+
});
|
|
1472
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1473
|
+
expect(queryByText("Searching...")).toBeFalsy();
|
|
1474
|
+
expect(input.value).toBe("");
|
|
1475
|
+
});
|
|
1476
|
+
test("Autosuggest Esc + arrow down working while 'Searching...' message is shown", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee28() {
|
|
1477
|
+
var callbackFunc, onChange, _render46, getByRole, getByText, queryByText, queryByRole, input, list;
|
|
1478
|
+
return _regenerator["default"].wrap(function _callee28$(_context28) {
|
|
1479
|
+
while (1) switch (_context28.prev = _context28.next) {
|
|
1480
|
+
case 0:
|
|
1481
|
+
callbackFunc = jest.fn(function (newValue) {
|
|
1482
|
+
var result = new Promise(function (resolve) {
|
|
1483
|
+
return setTimeout(function () {
|
|
1484
|
+
resolve(newValue ? countries.filter(function (option) {
|
|
1485
|
+
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1486
|
+
}) : countries);
|
|
1487
|
+
}, 100);
|
|
1445
1488
|
});
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1489
|
+
return result;
|
|
1490
|
+
});
|
|
1491
|
+
onChange = jest.fn();
|
|
1492
|
+
_render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1493
|
+
label: "Autosuggest Countries",
|
|
1494
|
+
suggestions: callbackFunc,
|
|
1495
|
+
onChange: onChange
|
|
1496
|
+
})), getByRole = _render46.getByRole, getByText = _render46.getByText, queryByText = _render46.queryByText, queryByRole = _render46.queryByRole;
|
|
1497
|
+
input = getByRole("combobox");
|
|
1498
|
+
_react2.fireEvent.focus(input);
|
|
1499
|
+
list = getByRole("listbox");
|
|
1500
|
+
expect(list).toBeTruthy();
|
|
1501
|
+
_userEvent["default"].type(input, "Ab");
|
|
1502
|
+
_react2.fireEvent.keyDown(input, {
|
|
1503
|
+
key: "Esc",
|
|
1504
|
+
code: "Esc",
|
|
1505
|
+
keyCode: 27,
|
|
1506
|
+
charCode: 27
|
|
1507
|
+
});
|
|
1508
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1509
|
+
expect(queryByText("Searching...")).toBeFalsy();
|
|
1510
|
+
expect(input.value).toBe("");
|
|
1511
|
+
_react2.fireEvent.keyDown(input, {
|
|
1512
|
+
key: "ArrowDown",
|
|
1513
|
+
code: "ArrowDown",
|
|
1514
|
+
keyCode: 40,
|
|
1515
|
+
charCode: 40
|
|
1516
|
+
});
|
|
1517
|
+
expect(list).toBeTruthy();
|
|
1518
|
+
_context28.next = 16;
|
|
1519
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1520
|
+
return getByText("Searching...");
|
|
1521
|
+
});
|
|
1522
|
+
case 16:
|
|
1523
|
+
expect(getByText("Afghanistan")).toBeTruthy();
|
|
1524
|
+
expect(getByText("Albania")).toBeTruthy();
|
|
1525
|
+
expect(getByText("Algeria")).toBeTruthy();
|
|
1526
|
+
expect(getByText("Andorra")).toBeTruthy();
|
|
1527
|
+
case 20:
|
|
1528
|
+
case "end":
|
|
1529
|
+
return _context28.stop();
|
|
1457
1530
|
}
|
|
1458
|
-
},
|
|
1531
|
+
}, _callee28);
|
|
1459
1532
|
})));
|
|
1460
|
-
test("Asynchronous uncontrolled autosuggest test", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
1461
|
-
var callbackFunc, onChange,
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
}) : countries);
|
|
1473
|
-
}, 100);
|
|
1474
|
-
});
|
|
1475
|
-
return result;
|
|
1476
|
-
});
|
|
1477
|
-
onChange = jest.fn();
|
|
1478
|
-
_render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1479
|
-
label: "Autosuggest Countries",
|
|
1480
|
-
onChange: onChange,
|
|
1481
|
-
suggestions: callbackFunc
|
|
1482
|
-
})), getByRole = _render43.getByRole, getByText = _render43.getByText;
|
|
1483
|
-
input = getByRole("combobox");
|
|
1484
|
-
|
|
1485
|
-
_react2.fireEvent.focus(input);
|
|
1486
|
-
|
|
1487
|
-
_userEvent["default"].type(input, "Den");
|
|
1488
|
-
|
|
1489
|
-
_context20.next = 8;
|
|
1490
|
-
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1491
|
-
return getByText("Searching...");
|
|
1533
|
+
test("Asynchronous uncontrolled autosuggest test", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee29() {
|
|
1534
|
+
var callbackFunc, onChange, _render47, getByRole, getByText, input;
|
|
1535
|
+
return _regenerator["default"].wrap(function _callee29$(_context29) {
|
|
1536
|
+
while (1) switch (_context29.prev = _context29.next) {
|
|
1537
|
+
case 0:
|
|
1538
|
+
callbackFunc = jest.fn(function (newValue) {
|
|
1539
|
+
var result = new Promise(function (resolve) {
|
|
1540
|
+
return setTimeout(function () {
|
|
1541
|
+
resolve(newValue ? countries.filter(function (option) {
|
|
1542
|
+
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1543
|
+
}) : countries);
|
|
1544
|
+
}, 100);
|
|
1492
1545
|
});
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
return
|
|
1507
|
-
|
|
1546
|
+
return result;
|
|
1547
|
+
});
|
|
1548
|
+
onChange = jest.fn();
|
|
1549
|
+
_render47 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1550
|
+
label: "Autosuggest Countries",
|
|
1551
|
+
onChange: onChange,
|
|
1552
|
+
suggestions: callbackFunc
|
|
1553
|
+
})), getByRole = _render47.getByRole, getByText = _render47.getByText;
|
|
1554
|
+
input = getByRole("combobox");
|
|
1555
|
+
_react2.fireEvent.focus(input);
|
|
1556
|
+
_userEvent["default"].type(input, "Den");
|
|
1557
|
+
_context29.next = 8;
|
|
1558
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1559
|
+
return getByText("Searching...");
|
|
1560
|
+
});
|
|
1561
|
+
case 8:
|
|
1562
|
+
expect(getByText("Denmark")).toBeTruthy();
|
|
1563
|
+
_context29.next = 11;
|
|
1564
|
+
return _userEvent["default"].click(getByRole("option"));
|
|
1565
|
+
case 11:
|
|
1566
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
1567
|
+
value: "Denmark"
|
|
1568
|
+
});
|
|
1569
|
+
expect(input.value).toBe("Denmark");
|
|
1570
|
+
case 13:
|
|
1571
|
+
case "end":
|
|
1572
|
+
return _context29.stop();
|
|
1508
1573
|
}
|
|
1509
|
-
},
|
|
1574
|
+
}, _callee29);
|
|
1510
1575
|
})));
|
|
1511
|
-
test("Asynchronous controlled autosuggest test", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
1512
|
-
var callbackFunc, onChange,
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
}) : countries);
|
|
1524
|
-
}, 100);
|
|
1525
|
-
});
|
|
1526
|
-
return result;
|
|
1527
|
-
});
|
|
1528
|
-
onChange = jest.fn();
|
|
1529
|
-
_render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1530
|
-
label: "Autosuggest Countries",
|
|
1531
|
-
value: "Denm",
|
|
1532
|
-
onChange: onChange,
|
|
1533
|
-
suggestions: callbackFunc
|
|
1534
|
-
})), getByRole = _render44.getByRole, getByText = _render44.getByText, queryByRole = _render44.queryByRole;
|
|
1535
|
-
input = getByRole("combobox");
|
|
1536
|
-
|
|
1537
|
-
_react2.fireEvent.focus(input);
|
|
1538
|
-
|
|
1539
|
-
_context21.next = 7;
|
|
1540
|
-
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1541
|
-
return getByText("Searching...");
|
|
1576
|
+
test("Asynchronous controlled autosuggest test", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee30() {
|
|
1577
|
+
var callbackFunc, onChange, _render48, getByRole, getByText, queryByRole, input;
|
|
1578
|
+
return _regenerator["default"].wrap(function _callee30$(_context30) {
|
|
1579
|
+
while (1) switch (_context30.prev = _context30.next) {
|
|
1580
|
+
case 0:
|
|
1581
|
+
callbackFunc = jest.fn(function (newValue) {
|
|
1582
|
+
var result = new Promise(function (resolve) {
|
|
1583
|
+
return setTimeout(function () {
|
|
1584
|
+
resolve(newValue ? countries.filter(function (option) {
|
|
1585
|
+
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1586
|
+
}) : countries);
|
|
1587
|
+
}, 100);
|
|
1542
1588
|
});
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1589
|
+
return result;
|
|
1590
|
+
});
|
|
1591
|
+
onChange = jest.fn();
|
|
1592
|
+
_render48 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1593
|
+
label: "Autosuggest Countries",
|
|
1594
|
+
value: "Denm",
|
|
1595
|
+
onChange: onChange,
|
|
1596
|
+
suggestions: callbackFunc
|
|
1597
|
+
})), getByRole = _render48.getByRole, getByText = _render48.getByText, queryByRole = _render48.queryByRole;
|
|
1598
|
+
input = getByRole("combobox");
|
|
1599
|
+
expect(input.value).toBe("Denm");
|
|
1600
|
+
_context30.next = 7;
|
|
1601
|
+
return _userEvent["default"].click(getByText("Autosuggest Countries"));
|
|
1602
|
+
case 7:
|
|
1603
|
+
_context30.next = 9;
|
|
1604
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1605
|
+
return getByText("Searching...");
|
|
1606
|
+
});
|
|
1607
|
+
case 9:
|
|
1608
|
+
expect(getByText("Denmark")).toBeTruthy();
|
|
1609
|
+
_react2.fireEvent.focus(getByRole("option"));
|
|
1610
|
+
_context30.next = 13;
|
|
1611
|
+
return _userEvent["default"].click(getByText("Denmark"));
|
|
1612
|
+
case 13:
|
|
1613
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
1614
|
+
value: "Denmark"
|
|
1615
|
+
});
|
|
1616
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1617
|
+
case 15:
|
|
1618
|
+
case "end":
|
|
1619
|
+
return _context30.stop();
|
|
1559
1620
|
}
|
|
1560
|
-
},
|
|
1621
|
+
}, _callee30);
|
|
1561
1622
|
})));
|
|
1562
|
-
test("Asynchronous autosuggest closes the listbox after finishing no matches search", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
1563
|
-
var callbackFunc, onChange,
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
}) : countries);
|
|
1575
|
-
}, 100);
|
|
1576
|
-
});
|
|
1577
|
-
return result;
|
|
1578
|
-
});
|
|
1579
|
-
onChange = jest.fn();
|
|
1580
|
-
_render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1581
|
-
label: "Autosuggest Countries",
|
|
1582
|
-
onChange: onChange,
|
|
1583
|
-
suggestions: callbackFunc
|
|
1584
|
-
})), getByText = _render45.getByText, getByRole = _render45.getByRole, queryByRole = _render45.queryByRole;
|
|
1585
|
-
input = getByRole("combobox");
|
|
1586
|
-
|
|
1587
|
-
_react2.fireEvent.focus(input);
|
|
1588
|
-
|
|
1589
|
-
_userEvent["default"].type(input, "Example text");
|
|
1590
|
-
|
|
1591
|
-
_context22.next = 8;
|
|
1592
|
-
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1593
|
-
return getByText("Searching...");
|
|
1623
|
+
test("Asynchronous autosuggest closes the listbox after finishing no matches search", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee32() {
|
|
1624
|
+
var callbackFunc, onChange, _render49, getByText, getByRole, queryByRole, input;
|
|
1625
|
+
return _regenerator["default"].wrap(function _callee32$(_context32) {
|
|
1626
|
+
while (1) switch (_context32.prev = _context32.next) {
|
|
1627
|
+
case 0:
|
|
1628
|
+
callbackFunc = jest.fn(function (newValue) {
|
|
1629
|
+
var result = new Promise(function (resolve) {
|
|
1630
|
+
return setTimeout(function () {
|
|
1631
|
+
resolve(newValue ? countries.filter(function (option) {
|
|
1632
|
+
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1633
|
+
}) : countries);
|
|
1634
|
+
}, 100);
|
|
1594
1635
|
});
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1636
|
+
return result;
|
|
1637
|
+
});
|
|
1638
|
+
onChange = jest.fn();
|
|
1639
|
+
_render49 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1640
|
+
label: "Autosuggest Countries",
|
|
1641
|
+
onChange: onChange,
|
|
1642
|
+
suggestions: callbackFunc
|
|
1643
|
+
})), getByText = _render49.getByText, getByRole = _render49.getByRole, queryByRole = _render49.queryByRole;
|
|
1644
|
+
input = getByRole("combobox");
|
|
1645
|
+
_react2.fireEvent.focus(input);
|
|
1646
|
+
_context32.next = 7;
|
|
1647
|
+
return (0, _react2.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee31() {
|
|
1648
|
+
return _regenerator["default"].wrap(function _callee31$(_context31) {
|
|
1649
|
+
while (1) switch (_context31.prev = _context31.next) {
|
|
1650
|
+
case 0:
|
|
1651
|
+
_userEvent["default"].type(input, "Example text");
|
|
1652
|
+
case 1:
|
|
1653
|
+
case "end":
|
|
1654
|
+
return _context31.stop();
|
|
1655
|
+
}
|
|
1656
|
+
}, _callee31);
|
|
1657
|
+
})));
|
|
1658
|
+
case 7:
|
|
1659
|
+
_context32.next = 9;
|
|
1660
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1661
|
+
return getByText("Searching...");
|
|
1662
|
+
});
|
|
1663
|
+
case 9:
|
|
1664
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1665
|
+
case 10:
|
|
1666
|
+
case "end":
|
|
1667
|
+
return _context32.stop();
|
|
1603
1668
|
}
|
|
1604
|
-
},
|
|
1669
|
+
}, _callee32);
|
|
1605
1670
|
})));
|
|
1606
|
-
test("Asynchronous autosuggest with no matches founded doesn't let the listbox to be opened", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
1607
|
-
var callbackFunc, onChange,
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
}) : countries);
|
|
1619
|
-
}, 100);
|
|
1620
|
-
});
|
|
1621
|
-
return result;
|
|
1622
|
-
});
|
|
1623
|
-
onChange = jest.fn();
|
|
1624
|
-
_render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1625
|
-
label: "Autosuggest Countries",
|
|
1626
|
-
onChange: onChange,
|
|
1627
|
-
suggestions: callbackFunc
|
|
1628
|
-
})), getByText = _render46.getByText, getByRole = _render46.getByRole, queryByRole = _render46.queryByRole;
|
|
1629
|
-
input = getByRole("combobox");
|
|
1630
|
-
|
|
1631
|
-
_react2.fireEvent.focus(input);
|
|
1632
|
-
|
|
1633
|
-
_userEvent["default"].type(input, "wrong");
|
|
1634
|
-
|
|
1635
|
-
_context23.next = 8;
|
|
1636
|
-
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1637
|
-
return getByText("Searching...");
|
|
1638
|
-
});
|
|
1639
|
-
|
|
1640
|
-
case 8:
|
|
1641
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
1642
|
-
|
|
1643
|
-
_react2.fireEvent.focus(input);
|
|
1644
|
-
|
|
1645
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
1646
|
-
|
|
1647
|
-
_react2.fireEvent.keyDown(input, {
|
|
1648
|
-
key: "ArrowUp",
|
|
1649
|
-
code: "ArrowUp",
|
|
1650
|
-
keyCode: 38,
|
|
1651
|
-
charCode: 38
|
|
1652
|
-
});
|
|
1653
|
-
|
|
1654
|
-
expect(queryByRole("listbox")).toBeFalsy();
|
|
1655
|
-
|
|
1656
|
-
_react2.fireEvent.keyDown(input, {
|
|
1657
|
-
key: "ArrowDown",
|
|
1658
|
-
code: "ArrowDown",
|
|
1659
|
-
keyCode: 40,
|
|
1660
|
-
charCode: 40
|
|
1671
|
+
test("Asynchronous autosuggest with no matches founded doesn't let the listbox to be opened", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee33() {
|
|
1672
|
+
var callbackFunc, onChange, _render50, getByText, getByRole, queryByRole, input;
|
|
1673
|
+
return _regenerator["default"].wrap(function _callee33$(_context33) {
|
|
1674
|
+
while (1) switch (_context33.prev = _context33.next) {
|
|
1675
|
+
case 0:
|
|
1676
|
+
callbackFunc = jest.fn(function (newValue) {
|
|
1677
|
+
var result = new Promise(function (resolve) {
|
|
1678
|
+
return setTimeout(function () {
|
|
1679
|
+
resolve(newValue ? countries.filter(function (option) {
|
|
1680
|
+
return option.toUpperCase().includes(newValue.toUpperCase());
|
|
1681
|
+
}) : countries);
|
|
1682
|
+
}, 100);
|
|
1661
1683
|
});
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1684
|
+
return result;
|
|
1685
|
+
});
|
|
1686
|
+
onChange = jest.fn();
|
|
1687
|
+
_render50 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1688
|
+
label: "Autosuggest Countries",
|
|
1689
|
+
onChange: onChange,
|
|
1690
|
+
suggestions: callbackFunc
|
|
1691
|
+
})), getByText = _render50.getByText, getByRole = _render50.getByRole, queryByRole = _render50.queryByRole;
|
|
1692
|
+
input = getByRole("combobox");
|
|
1693
|
+
_react2.fireEvent.focus(input);
|
|
1694
|
+
_userEvent["default"].type(input, "wrong");
|
|
1695
|
+
_context33.next = 8;
|
|
1696
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1697
|
+
return getByText("Searching...");
|
|
1698
|
+
});
|
|
1699
|
+
case 8:
|
|
1700
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1701
|
+
_react2.fireEvent.focus(input);
|
|
1702
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1703
|
+
_react2.fireEvent.keyDown(input, {
|
|
1704
|
+
key: "ArrowUp",
|
|
1705
|
+
code: "ArrowUp",
|
|
1706
|
+
keyCode: 38,
|
|
1707
|
+
charCode: 38
|
|
1708
|
+
});
|
|
1709
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1710
|
+
_react2.fireEvent.keyDown(input, {
|
|
1711
|
+
key: "ArrowDown",
|
|
1712
|
+
code: "ArrowDown",
|
|
1713
|
+
keyCode: 40,
|
|
1714
|
+
charCode: 40
|
|
1715
|
+
});
|
|
1716
|
+
expect(queryByRole("listbox")).toBeFalsy();
|
|
1717
|
+
case 15:
|
|
1718
|
+
case "end":
|
|
1719
|
+
return _context33.stop();
|
|
1669
1720
|
}
|
|
1670
|
-
},
|
|
1721
|
+
}, _callee33);
|
|
1671
1722
|
})));
|
|
1672
|
-
test("Asynchronous autosuggest request failed, shows 'Error fetching data' message", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
1673
|
-
var errorCallbackFunc, onChange,
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
reject("err");
|
|
1683
|
-
}, 100);
|
|
1684
|
-
});
|
|
1685
|
-
return result;
|
|
1723
|
+
test("Asynchronous autosuggest request failed, shows 'Error fetching data' message", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee34() {
|
|
1724
|
+
var errorCallbackFunc, onChange, _render51, getByRole, getByText, input;
|
|
1725
|
+
return _regenerator["default"].wrap(function _callee34$(_context34) {
|
|
1726
|
+
while (1) switch (_context34.prev = _context34.next) {
|
|
1727
|
+
case 0:
|
|
1728
|
+
errorCallbackFunc = jest.fn(function () {
|
|
1729
|
+
var result = new Promise(function (resolve, reject) {
|
|
1730
|
+
return setTimeout(function () {
|
|
1731
|
+
reject("err");
|
|
1732
|
+
}, 100);
|
|
1686
1733
|
});
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
case "end":
|
|
1707
|
-
return _context24.stop();
|
|
1708
|
-
}
|
|
1734
|
+
return result;
|
|
1735
|
+
});
|
|
1736
|
+
onChange = jest.fn();
|
|
1737
|
+
_render51 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
1738
|
+
label: "Autosuggest Countries",
|
|
1739
|
+
onChange: onChange,
|
|
1740
|
+
suggestions: errorCallbackFunc
|
|
1741
|
+
})), getByRole = _render51.getByRole, getByText = _render51.getByText;
|
|
1742
|
+
input = getByRole("combobox");
|
|
1743
|
+
_react2.fireEvent.focus(input);
|
|
1744
|
+
_context34.next = 7;
|
|
1745
|
+
return (0, _react2.waitForElementToBeRemoved)(function () {
|
|
1746
|
+
return getByText("Searching...");
|
|
1747
|
+
});
|
|
1748
|
+
case 7:
|
|
1749
|
+
expect(getByText("Error fetching data")).toBeTruthy();
|
|
1750
|
+
case 8:
|
|
1751
|
+
case "end":
|
|
1752
|
+
return _context34.stop();
|
|
1709
1753
|
}
|
|
1710
|
-
},
|
|
1754
|
+
}, _callee34);
|
|
1711
1755
|
})));
|
|
1712
1756
|
});
|