@dxc-technology/halstack-react 0.0.0-4dc6bb3 → 0.0.0-4e1277a

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