@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c2b6ec9

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