@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3ac293

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