@dxc-technology/halstack-react 0.0.0-b41d935 → 0.0.0-b4aec06

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