@dxc-technology/halstack-react 0.0.0-f54247d → 0.0.0-f6290b3

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 (304) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -6
  4. package/HalstackContext.js +121 -105
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +37 -100
  8. package/accordion/Accordion.stories.tsx +101 -124
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +141 -43
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +18 -59
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -15
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +69 -105
  45. package/button/Button.stories.tsx +152 -91
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -12
  53. package/checkbox/Checkbox.js +87 -122
  54. package/checkbox/Checkbox.stories.tsx +68 -54
  55. package/checkbox/Checkbox.test.js +108 -64
  56. package/checkbox/types.d.ts +8 -4
  57. package/chip/Chip.js +39 -79
  58. package/chip/Chip.stories.tsx +121 -26
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  61. package/common/OpenSans.css +68 -80
  62. package/common/coreTokens.d.ts +237 -0
  63. package/common/coreTokens.js +184 -0
  64. package/common/utils.d.ts +1 -0
  65. package/common/utils.js +6 -12
  66. package/common/variables.d.ts +1395 -0
  67. package/common/variables.js +910 -1155
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +194 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/contextual-menu/ContextualMenu.d.ts +7 -0
  73. package/contextual-menu/ContextualMenu.js +71 -0
  74. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  75. package/contextual-menu/ContextualMenu.test.js +71 -0
  76. package/contextual-menu/MenuItemAction.d.ts +4 -0
  77. package/contextual-menu/MenuItemAction.js +46 -0
  78. package/contextual-menu/types.d.ts +22 -0
  79. package/date-input/Calendar.d.ts +1 -1
  80. package/date-input/Calendar.js +52 -96
  81. package/date-input/DateInput.js +103 -107
  82. package/date-input/DateInput.stories.tsx +194 -60
  83. package/date-input/DateInput.test.js +676 -620
  84. package/date-input/DatePicker.js +47 -92
  85. package/date-input/Icons.d.ts +6 -0
  86. package/date-input/Icons.js +58 -0
  87. package/date-input/YearPicker.d.ts +1 -1
  88. package/date-input/YearPicker.js +29 -44
  89. package/date-input/types.d.ts +32 -28
  90. package/dialog/Dialog.d.ts +1 -1
  91. package/dialog/Dialog.js +61 -119
  92. package/dialog/Dialog.stories.tsx +310 -212
  93. package/dialog/Dialog.test.js +269 -32
  94. package/dialog/types.d.ts +18 -26
  95. package/divider/Divider.d.ts +4 -0
  96. package/divider/Divider.js +36 -0
  97. package/divider/Divider.stories.tsx +223 -0
  98. package/divider/Divider.test.js +38 -0
  99. package/divider/types.d.ts +19 -0
  100. package/divider/types.js +5 -0
  101. package/dropdown/Dropdown.js +53 -108
  102. package/dropdown/Dropdown.stories.tsx +210 -84
  103. package/dropdown/Dropdown.test.js +393 -379
  104. package/dropdown/DropdownMenu.js +20 -37
  105. package/dropdown/DropdownMenuItem.js +9 -34
  106. package/dropdown/types.d.ts +18 -20
  107. package/file-input/FileInput.js +184 -256
  108. package/file-input/FileInput.stories.tsx +86 -3
  109. package/file-input/FileInput.test.js +356 -395
  110. package/file-input/FileItem.js +15 -41
  111. package/file-input/types.d.ts +10 -10
  112. package/flex/Flex.js +27 -39
  113. package/flex/Flex.stories.tsx +35 -26
  114. package/flex/types.d.ts +74 -9
  115. package/footer/Footer.d.ts +1 -1
  116. package/footer/Footer.js +70 -117
  117. package/footer/Footer.stories.tsx +55 -21
  118. package/footer/Footer.test.js +33 -57
  119. package/footer/Icons.d.ts +3 -2
  120. package/footer/Icons.js +66 -7
  121. package/footer/types.d.ts +25 -27
  122. package/grid/Grid.d.ts +7 -0
  123. package/grid/Grid.js +76 -0
  124. package/grid/Grid.stories.tsx +219 -0
  125. package/grid/types.d.ts +115 -0
  126. package/grid/types.js +5 -0
  127. package/header/Header.d.ts +4 -3
  128. package/header/Header.js +48 -133
  129. package/header/Header.stories.tsx +115 -36
  130. package/header/Header.test.js +13 -26
  131. package/header/Icons.d.ts +2 -2
  132. package/header/Icons.js +2 -7
  133. package/header/types.d.ts +7 -22
  134. package/heading/Heading.js +10 -32
  135. package/heading/Heading.test.js +71 -88
  136. package/heading/types.d.ts +7 -7
  137. package/image/Image.d.ts +4 -0
  138. package/image/Image.js +70 -0
  139. package/image/Image.stories.tsx +129 -0
  140. package/image/types.d.ts +72 -0
  141. package/image/types.js +5 -0
  142. package/inset/Inset.js +13 -21
  143. package/inset/Inset.stories.tsx +2 -1
  144. package/inset/types.d.ts +2 -2
  145. package/layout/ApplicationLayout.d.ts +5 -5
  146. package/layout/ApplicationLayout.js +29 -66
  147. package/layout/ApplicationLayout.stories.tsx +1 -1
  148. package/layout/Icons.d.ts +8 -5
  149. package/layout/Icons.js +51 -59
  150. package/layout/SidenavContext.d.ts +1 -1
  151. package/layout/SidenavContext.js +3 -9
  152. package/layout/types.d.ts +5 -6
  153. package/link/Link.js +24 -45
  154. package/link/Link.stories.tsx +60 -0
  155. package/link/Link.test.js +24 -44
  156. package/link/types.d.ts +14 -14
  157. package/main.d.ts +9 -5
  158. package/main.js +40 -59
  159. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  160. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  161. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  162. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  163. package/nav-tabs/Tab.js +118 -0
  164. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  165. package/nav-tabs/types.js +5 -0
  166. package/number-input/NumberInput.d.ts +7 -0
  167. package/number-input/NumberInput.js +47 -37
  168. package/number-input/NumberInput.stories.tsx +42 -26
  169. package/number-input/NumberInput.test.js +860 -413
  170. package/number-input/types.d.ts +11 -5
  171. package/package.json +31 -29
  172. package/paginator/Icons.d.ts +5 -0
  173. package/paginator/Icons.js +21 -47
  174. package/paginator/Paginator.js +22 -58
  175. package/paginator/Paginator.stories.tsx +24 -0
  176. package/paginator/Paginator.test.js +252 -225
  177. package/paginator/types.d.ts +3 -3
  178. package/paragraph/Paragraph.d.ts +3 -4
  179. package/paragraph/Paragraph.js +6 -22
  180. package/paragraph/Paragraph.stories.tsx +0 -17
  181. package/password-input/Icons.d.ts +6 -0
  182. package/password-input/Icons.js +35 -0
  183. package/password-input/PasswordInput.js +57 -126
  184. package/password-input/PasswordInput.stories.tsx +1 -33
  185. package/password-input/PasswordInput.test.js +158 -141
  186. package/password-input/types.d.ts +8 -7
  187. package/progress-bar/ProgressBar.d.ts +2 -2
  188. package/progress-bar/ProgressBar.js +23 -55
  189. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  190. package/progress-bar/ProgressBar.test.js +36 -53
  191. package/progress-bar/types.d.ts +4 -3
  192. package/quick-nav/QuickNav.js +4 -27
  193. package/quick-nav/QuickNav.stories.tsx +15 -1
  194. package/quick-nav/types.d.ts +10 -10
  195. package/radio-group/Radio.d.ts +1 -1
  196. package/radio-group/Radio.js +31 -63
  197. package/radio-group/RadioGroup.js +45 -93
  198. package/radio-group/RadioGroup.stories.tsx +131 -18
  199. package/radio-group/RadioGroup.test.js +505 -471
  200. package/radio-group/types.d.ts +8 -8
  201. package/resultset-table/Icons.d.ts +7 -0
  202. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  203. package/resultset-table/ResultsetTable.d.ts +7 -0
  204. package/{resultsetTable → resultset-table}/ResultsetTable.js +37 -66
  205. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +102 -5
  206. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +155 -114
  207. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  208. package/resultset-table/types.js +5 -0
  209. package/select/Icons.d.ts +7 -7
  210. package/select/Icons.js +1 -5
  211. package/select/Listbox.d.ts +1 -1
  212. package/select/Listbox.js +17 -72
  213. package/select/Option.js +27 -50
  214. package/select/Select.js +120 -175
  215. package/select/Select.stories.tsx +495 -148
  216. package/select/Select.test.js +1974 -1837
  217. package/select/types.d.ts +16 -17
  218. package/sidenav/Icons.d.ts +7 -0
  219. package/sidenav/Icons.js +47 -0
  220. package/sidenav/Sidenav.d.ts +2 -2
  221. package/sidenav/Sidenav.js +82 -153
  222. package/sidenav/Sidenav.stories.tsx +165 -63
  223. package/sidenav/Sidenav.test.js +3 -10
  224. package/sidenav/types.d.ts +31 -28
  225. package/slider/Slider.js +73 -131
  226. package/slider/Slider.test.js +108 -104
  227. package/slider/types.d.ts +4 -4
  228. package/spinner/Spinner.js +31 -75
  229. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  230. package/spinner/Spinner.test.js +26 -35
  231. package/spinner/types.d.ts +3 -3
  232. package/status-light/StatusLight.d.ts +4 -0
  233. package/status-light/StatusLight.js +51 -0
  234. package/status-light/StatusLight.stories.tsx +74 -0
  235. package/status-light/StatusLight.test.js +25 -0
  236. package/status-light/types.d.ts +17 -0
  237. package/status-light/types.js +5 -0
  238. package/switch/Switch.js +52 -100
  239. package/switch/Switch.stories.tsx +33 -34
  240. package/switch/Switch.test.js +52 -97
  241. package/switch/types.d.ts +4 -4
  242. package/table/DropdownTheme.js +62 -0
  243. package/table/Table.d.ts +6 -2
  244. package/table/Table.js +87 -35
  245. package/table/Table.stories.tsx +658 -0
  246. package/table/Table.test.js +94 -7
  247. package/table/types.d.ts +48 -6
  248. package/tabs/Tab.js +26 -45
  249. package/tabs/Tabs.js +62 -145
  250. package/tabs/Tabs.stories.tsx +46 -6
  251. package/tabs/Tabs.test.js +66 -123
  252. package/tabs/types.d.ts +19 -19
  253. package/tag/Tag.js +28 -60
  254. package/tag/Tag.stories.tsx +14 -1
  255. package/tag/Tag.test.js +20 -31
  256. package/tag/types.d.ts +7 -7
  257. package/text-input/Icons.d.ts +5 -5
  258. package/text-input/Icons.js +1 -5
  259. package/text-input/Suggestion.js +35 -25
  260. package/text-input/Suggestions.d.ts +1 -1
  261. package/text-input/Suggestions.js +15 -65
  262. package/text-input/TextInput.js +220 -332
  263. package/text-input/TextInput.stories.tsx +139 -155
  264. package/text-input/TextInput.test.js +1289 -1157
  265. package/text-input/types.d.ts +25 -17
  266. package/textarea/Textarea.js +70 -113
  267. package/textarea/Textarea.stories.tsx +174 -0
  268. package/textarea/Textarea.test.js +152 -183
  269. package/textarea/types.d.ts +9 -5
  270. package/toggle-group/ToggleGroup.d.ts +2 -2
  271. package/toggle-group/ToggleGroup.js +92 -106
  272. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  273. package/toggle-group/ToggleGroup.test.js +69 -88
  274. package/toggle-group/types.d.ts +26 -17
  275. package/typography/Typography.d.ts +2 -2
  276. package/typography/Typography.js +15 -123
  277. package/typography/Typography.stories.tsx +1 -1
  278. package/typography/types.d.ts +1 -1
  279. package/useTheme.d.ts +1147 -1
  280. package/useTheme.js +2 -9
  281. package/useTranslatedLabels.d.ts +84 -1
  282. package/useTranslatedLabels.js +1 -7
  283. package/utils/BaseTypography.d.ts +21 -0
  284. package/utils/BaseTypography.js +94 -0
  285. package/utils/FocusLock.d.ts +13 -0
  286. package/utils/FocusLock.js +124 -0
  287. package/wizard/Wizard.js +16 -51
  288. package/wizard/Wizard.stories.tsx +20 -0
  289. package/wizard/Wizard.test.js +54 -81
  290. package/wizard/types.d.ts +9 -10
  291. package/card/ice-cream.jpg +0 -0
  292. package/number-input/NumberInputContext.d.ts +0 -4
  293. package/number-input/NumberInputContext.js +0 -19
  294. package/number-input/numberInputContextTypes.d.ts +0 -19
  295. package/resultsetTable/Icons.d.ts +0 -7
  296. package/resultsetTable/ResultsetTable.d.ts +0 -4
  297. package/slider/Slider.stories.tsx +0 -183
  298. package/table/Table.stories.jsx +0 -277
  299. package/tabs-nav/Tab.js +0 -130
  300. package/textarea/Textarea.stories.jsx +0 -157
  301. /package/{resultsetTable → action-icon}/types.js +0 -0
  302. /package/{tabs-nav → container}/types.js +0 -0
  303. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  304. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
5
6
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
-
7
7
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
-
9
8
  var _react = _interopRequireDefault(require("react"));
10
-
11
9
  var _react2 = require("@testing-library/react");
12
-
13
- var _Dropdown = _interopRequireDefault(require("./Dropdown"));
14
-
15
10
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
16
-
11
+ var _Dropdown = _interopRequireDefault(require("./Dropdown.tsx"));
12
+ // Mocking DOMRect for Radix Primitive Popover
17
13
  global.globalThis = global;
18
14
  global.DOMRect = {
19
15
  fromRect: function fromRect() {
@@ -27,12 +23,10 @@ global.DOMRect = {
27
23
  };
28
24
  }
29
25
  };
30
-
31
26
  global.ResizeObserver = /*#__PURE__*/function () {
32
27
  function ResizeObserver() {
33
28
  (0, _classCallCheck2["default"])(this, ResizeObserver);
34
29
  }
35
-
36
30
  (0, _createClass2["default"])(ResizeObserver, [{
37
31
  key: "observe",
38
32
  value: function observe() {}
@@ -45,7 +39,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
45
39
  }]);
46
40
  return ResizeObserver;
47
41
  }();
48
-
49
42
  var options = [{
50
43
  value: "1",
51
44
  label: "Amazon"
@@ -60,150 +53,170 @@ var options = [{
60
53
  label: "Aliexpress"
61
54
  }];
62
55
  describe("Dropdown component tests", function () {
63
- test("Renders with correct aria attributes", function () {
64
- var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
65
- options: options,
66
- label: "dropdown-test"
67
- })),
68
- getAllByRole = _render.getAllByRole,
69
- getByRole = _render.getByRole;
70
-
71
- var dropdown = getByRole("button");
72
- expect(dropdown.getAttribute("aria-haspopup")).toBe("true");
73
- expect(dropdown.getAttribute("aria-expanded")).toBeNull();
74
- expect(dropdown.getAttribute("aria-activedescendant")).toBeNull();
75
-
76
- _userEvent["default"].click(dropdown);
77
-
78
- var menu = getByRole("menu");
79
- expect(dropdown.getAttribute("aria-controls")).toBe(menu.id);
80
- expect(dropdown.getAttribute("aria-expanded")).toBe("true");
81
- expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
82
- expect(menu.getAttribute("aria-orientation")).toBe("vertical");
83
- expect(menu.getAttribute("aria-labelledby")).toBe(dropdown.id);
84
- expect(getAllByRole("menuitem").length).toBe(4);
85
- });
86
- test("Button trigger opens and closes the menu options when clicked", function () {
87
- var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
88
- options: options,
89
- label: "dropdown-test"
90
- })),
91
- getByRole = _render2.getByRole,
92
- queryByRole = _render2.queryByRole,
93
- getByText = _render2.getByText;
94
-
95
- var dropdown = getByRole("button");
96
- expect(queryByRole("menu")).toBeFalsy();
97
-
98
- _userEvent["default"].click(dropdown);
99
-
100
- expect(queryByRole("menu")).toBeTruthy();
101
- expect(getByText("Amazon")).toBeTruthy();
102
- expect(getByText("Ebay")).toBeTruthy();
103
- expect(getByText("Wallapop")).toBeTruthy();
104
- expect(getByText("Aliexpress")).toBeTruthy();
105
-
106
- _userEvent["default"].click(dropdown);
107
-
108
- expect(queryByRole("menu")).toBeFalsy();
109
- });
110
- test("Button trigger is not interactable when disabled", function () {
111
- var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
112
- disabled: true,
113
- options: options,
114
- label: "dropdown-test"
115
- })),
116
- getByRole = _render3.getByRole,
117
- queryByRole = _render3.queryByRole,
118
- queryByText = _render3.queryByText;
119
-
120
- var dropdown = getByRole("button");
121
- expect(queryByRole("menu")).toBeFalsy();
122
-
123
- _userEvent["default"].click(dropdown);
124
-
125
- expect(queryByRole("menu")).toBeFalsy();
126
- expect(queryByText("Amazon")).toBeFalsy();
127
-
128
- _userEvent["default"].click(dropdown);
129
-
130
- expect(queryByRole("menu")).toBeFalsy();
131
- expect(dropdown.getAttribute("aria-expanded")).toBeNull();
132
- });
133
- test("onSelectOption function is called correctly when an option is clicked", function () {
134
- var onSelectOption = jest.fn();
135
-
136
- var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
137
- options: options,
138
- onSelectOption: onSelectOption,
139
- label: "dropdown-test"
140
- })),
141
- getByText = _render4.getByText;
142
-
143
- var dropdown = getByText("dropdown-test");
144
-
145
- _userEvent["default"].click(dropdown);
146
-
147
- var option = getByText("Aliexpress");
148
-
149
- _userEvent["default"].click(option);
150
-
151
- expect(onSelectOption).toHaveBeenCalledWith("4");
152
- });
56
+ test("Renders with correct aria attributes", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
57
+ var _render, getAllByRole, getByRole, dropdown, menu;
58
+ return _regenerator["default"].wrap(function _callee$(_context) {
59
+ while (1) switch (_context.prev = _context.next) {
60
+ case 0:
61
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
62
+ options: options,
63
+ label: "dropdown-test"
64
+ })), getAllByRole = _render.getAllByRole, getByRole = _render.getByRole;
65
+ dropdown = getByRole("button");
66
+ expect(dropdown.getAttribute("aria-haspopup")).toBe("true");
67
+ expect(dropdown.getAttribute("aria-expanded")).toBeNull();
68
+ expect(dropdown.getAttribute("aria-activedescendant")).toBeNull();
69
+ _context.next = 7;
70
+ return _userEvent["default"].click(dropdown);
71
+ case 7:
72
+ menu = getByRole("menu");
73
+ expect(dropdown.getAttribute("aria-controls")).toBe(menu.id);
74
+ expect(dropdown.getAttribute("aria-expanded")).toBe("true");
75
+ expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
76
+ expect(menu.getAttribute("aria-orientation")).toBe("vertical");
77
+ expect(menu.getAttribute("aria-labelledby")).toBe(dropdown.id);
78
+ expect(getAllByRole("menuitem").length).toBe(4);
79
+ case 14:
80
+ case "end":
81
+ return _context.stop();
82
+ }
83
+ }, _callee);
84
+ })));
85
+ test("Button trigger opens and closes the menu options when clicked", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
86
+ var _render2, getByRole, queryByRole, getByText, dropdown;
87
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
88
+ while (1) switch (_context2.prev = _context2.next) {
89
+ case 0:
90
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
91
+ options: options,
92
+ label: "dropdown-test"
93
+ })), getByRole = _render2.getByRole, queryByRole = _render2.queryByRole, getByText = _render2.getByText;
94
+ dropdown = getByRole("button");
95
+ expect(queryByRole("menu")).toBeFalsy();
96
+ _context2.next = 5;
97
+ return _userEvent["default"].click(dropdown);
98
+ case 5:
99
+ expect(queryByRole("menu")).toBeTruthy();
100
+ expect(getByText("Amazon")).toBeTruthy();
101
+ expect(getByText("Ebay")).toBeTruthy();
102
+ expect(getByText("Wallapop")).toBeTruthy();
103
+ expect(getByText("Aliexpress")).toBeTruthy();
104
+ _context2.next = 12;
105
+ return _userEvent["default"].click(dropdown);
106
+ case 12:
107
+ expect(queryByRole("menu")).toBeFalsy();
108
+ case 13:
109
+ case "end":
110
+ return _context2.stop();
111
+ }
112
+ }, _callee2);
113
+ })));
114
+ test("Button trigger is not interactive when disabled", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
115
+ var _render3, getByRole, queryByRole, queryByText, dropdown;
116
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
117
+ while (1) switch (_context3.prev = _context3.next) {
118
+ case 0:
119
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
120
+ disabled: true,
121
+ options: options,
122
+ label: "dropdown-test"
123
+ })), getByRole = _render3.getByRole, queryByRole = _render3.queryByRole, queryByText = _render3.queryByText;
124
+ dropdown = getByRole("button");
125
+ expect(queryByRole("menu")).toBeFalsy();
126
+ _context3.next = 5;
127
+ return _userEvent["default"].click(dropdown);
128
+ case 5:
129
+ expect(queryByRole("menu")).toBeFalsy();
130
+ expect(queryByText("Amazon")).toBeFalsy();
131
+ _context3.next = 9;
132
+ return _userEvent["default"].click(dropdown);
133
+ case 9:
134
+ expect(queryByRole("menu")).toBeFalsy();
135
+ expect(dropdown.getAttribute("aria-expanded")).toBeNull();
136
+ case 11:
137
+ case "end":
138
+ return _context3.stop();
139
+ }
140
+ }, _callee3);
141
+ })));
142
+ test("onSelectOption function is called correctly when an option is clicked", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
143
+ var onSelectOption, _render4, getByText, dropdown, option;
144
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
145
+ while (1) switch (_context4.prev = _context4.next) {
146
+ case 0:
147
+ onSelectOption = jest.fn();
148
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
149
+ options: options,
150
+ onSelectOption: onSelectOption,
151
+ label: "dropdown-test"
152
+ })), getByText = _render4.getByText;
153
+ dropdown = getByText("dropdown-test");
154
+ _context4.next = 5;
155
+ return _userEvent["default"].click(dropdown);
156
+ case 5:
157
+ option = getByText("Aliexpress");
158
+ _context4.next = 8;
159
+ return _userEvent["default"].click(option);
160
+ case 8:
161
+ expect(onSelectOption).toHaveBeenCalledWith("4");
162
+ case 9:
163
+ case "end":
164
+ return _context4.stop();
165
+ }
166
+ }, _callee4);
167
+ })));
153
168
  test("When expandOnHover is true, the dropdown trigger shows and hides the menu when it is hovered", function () {
154
169
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
155
- options: options,
156
- expandOnHover: true,
157
- label: "dropdown-test"
158
- })),
159
- queryByText = _render5.queryByText,
160
- getByRole = _render5.getByRole,
161
- queryByRole = _render5.queryByRole;
162
-
170
+ options: options,
171
+ expandOnHover: true,
172
+ label: "dropdown-test"
173
+ })),
174
+ queryByText = _render5.queryByText,
175
+ getByRole = _render5.getByRole,
176
+ queryByRole = _render5.queryByRole;
163
177
  expect(queryByText("option-test")).toBeFalsy();
164
178
  expect(queryByRole("menu")).toBeFalsy();
165
-
166
179
  _react2.fireEvent.mouseOver(getByRole("button"));
167
-
168
180
  var menu = getByRole("menu");
169
181
  expect(menu).toBeTruthy();
170
182
  expect(document.activeElement === menu).toBeTruthy();
171
183
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
172
184
  });
173
- test("The menu is closed when the dropdown loses the focus (blur)", function () {
174
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
175
- options: options,
176
- label: "dropdown-test"
177
- })),
178
- getByRole = _render6.getByRole,
179
- queryByRole = _render6.queryByRole;
180
-
181
- var dropdown = getByRole("button");
182
-
183
- _userEvent["default"].click(dropdown);
184
-
185
- expect(getByRole("menu")).toBeTruthy();
186
-
187
- _react2.fireEvent.blur(getByRole("menu"));
188
-
189
- expect(queryByRole("menu")).toBeFalsy();
190
- });
185
+ test("The menu is closed when the dropdown loses the focus (blur)", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
186
+ var _render6, getByRole, queryByRole, dropdown;
187
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
188
+ while (1) switch (_context5.prev = _context5.next) {
189
+ case 0:
190
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
191
+ options: options,
192
+ label: "dropdown-test"
193
+ })), getByRole = _render6.getByRole, queryByRole = _render6.queryByRole;
194
+ dropdown = getByRole("button");
195
+ _context5.next = 4;
196
+ return _userEvent["default"].click(dropdown);
197
+ case 4:
198
+ expect(getByRole("menu")).toBeTruthy();
199
+ _react2.fireEvent.blur(getByRole("menu"));
200
+ expect(queryByRole("menu")).toBeFalsy();
201
+ case 7:
202
+ case "end":
203
+ return _context5.stop();
204
+ }
205
+ }, _callee5);
206
+ })));
191
207
  test("Menu button key events - Arrow up opens the list and moves the focus to the last menu item", function () {
192
208
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
193
- options: options,
194
- label: "dropdown-test"
195
- })),
196
- getByRole = _render7.getByRole;
197
-
209
+ options: options,
210
+ label: "dropdown-test"
211
+ })),
212
+ getByRole = _render7.getByRole;
198
213
  var dropdown = getByRole("button");
199
-
200
214
  _react2.fireEvent.keyDown(dropdown, {
201
215
  key: "ArrowUp",
202
216
  code: "ArrowUp",
203
217
  keyCode: 38,
204
218
  charCode: 38
205
219
  });
206
-
207
220
  var menu = getByRole("menu");
208
221
  expect(menu).toBeTruthy();
209
222
  expect(document.activeElement === menu).toBeTruthy();
@@ -211,20 +224,17 @@ describe("Dropdown component tests", function () {
211
224
  });
212
225
  test("Menu button key events - Arrow down opens the list and moves the focus to the first menu item", function () {
213
226
  var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
214
- options: options,
215
- label: "dropdown-test"
216
- })),
217
- getByRole = _render8.getByRole;
218
-
227
+ options: options,
228
+ label: "dropdown-test"
229
+ })),
230
+ getByRole = _render8.getByRole;
219
231
  var dropdown = getByRole("button");
220
-
221
232
  _react2.fireEvent.keyDown(dropdown, {
222
233
  key: "ArrowDown",
223
234
  code: "ArrowDown",
224
235
  keyCode: 40,
225
236
  charCode: 40
226
237
  });
227
-
228
238
  var menu = getByRole("menu");
229
239
  expect(menu).toBeTruthy();
230
240
  expect(document.activeElement === menu).toBeTruthy();
@@ -232,20 +242,17 @@ describe("Dropdown component tests", function () {
232
242
  });
233
243
  test("Menu button key events - Enter opens the list and moves the focus to the first menu item", function () {
234
244
  var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
235
- options: options,
236
- label: "dropdown-test"
237
- })),
238
- getByRole = _render9.getByRole;
239
-
245
+ options: options,
246
+ label: "dropdown-test"
247
+ })),
248
+ getByRole = _render9.getByRole;
240
249
  var dropdown = getByRole("button");
241
-
242
250
  _react2.fireEvent.keyDown(dropdown, {
243
251
  key: "Enter",
244
252
  code: "Enter",
245
253
  keyCode: 13,
246
254
  charCode: 13
247
255
  });
248
-
249
256
  var menu = getByRole("menu");
250
257
  expect(menu).toBeTruthy();
251
258
  expect(document.activeElement === menu).toBeTruthy();
@@ -253,20 +260,17 @@ describe("Dropdown component tests", function () {
253
260
  });
254
261
  test("Menu button key events - Space opens the list and moves the focus to the first menu item", function () {
255
262
  var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
256
- options: options,
257
- label: "dropdown-test"
258
- })),
259
- getByRole = _render10.getByRole;
260
-
263
+ options: options,
264
+ label: "dropdown-test"
265
+ })),
266
+ getByRole = _render10.getByRole;
261
267
  var dropdown = getByRole("button");
262
-
263
268
  _react2.fireEvent.keyDown(dropdown, {
264
269
  key: " ",
265
270
  code: "Space",
266
271
  keyCode: 32,
267
272
  charCode: 32
268
273
  });
269
-
270
274
  var menu = getByRole("menu");
271
275
  expect(menu).toBeTruthy();
272
276
  expect(document.activeElement === menu).toBeTruthy();
@@ -274,312 +278,322 @@ describe("Dropdown component tests", function () {
274
278
  });
275
279
  test("Menu key events - Arrow up moves the focus to the previous menu item", function () {
276
280
  var onSelectOption = jest.fn();
277
-
278
281
  var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
279
- onSelectOption: onSelectOption,
280
- options: options,
281
- label: "dropdown-test"
282
- })),
283
- getByRole = _render11.getByRole;
284
-
282
+ onSelectOption: onSelectOption,
283
+ options: options,
284
+ label: "dropdown-test"
285
+ })),
286
+ getByRole = _render11.getByRole;
285
287
  _react2.fireEvent.keyDown(getByRole("button"), {
286
288
  key: "ArrowUp",
287
289
  code: "ArrowUp",
288
290
  keyCode: 38,
289
291
  charCode: 38
290
292
  });
291
-
292
293
  var menu = getByRole("menu");
293
-
294
294
  _react2.fireEvent.keyDown(menu, {
295
295
  key: "ArrowUp",
296
296
  code: "ArrowUp",
297
297
  keyCode: 38,
298
298
  charCode: 38
299
299
  });
300
-
301
300
  expect(document.activeElement === menu).toBeTruthy();
302
301
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-2");
303
-
304
302
  _react2.fireEvent.keyDown(menu, {
305
303
  key: "Enter",
306
304
  code: "Enter",
307
305
  keyCode: 13,
308
306
  charCode: 13
309
307
  });
310
-
311
- expect(onSelectOption).toHaveBeenCalledWith("3");
312
- });
313
- test("Menu key events - Arrow up, if focus is on the first menu item, moves focus to the last menu item.", function () {
314
- var onSelectOption = jest.fn();
315
-
316
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
317
- onSelectOption: onSelectOption,
318
- options: options,
319
- label: "dropdown-test"
320
- })),
321
- getByRole = _render12.getByRole;
322
-
323
- _userEvent["default"].click(getByRole("button"));
324
-
325
- var menu = getByRole("menu");
326
-
327
- _react2.fireEvent.keyDown(menu, {
328
- key: "ArrowUp",
329
- code: "ArrowUp",
330
- keyCode: 38,
331
- charCode: 38
332
- });
333
-
334
- expect(document.activeElement === menu).toBeTruthy();
335
- expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
336
-
337
- _react2.fireEvent.keyDown(menu, {
338
- key: "Enter",
339
- code: "Enter",
340
- keyCode: 13,
341
- charCode: 13
342
- });
343
-
344
- expect(onSelectOption).toHaveBeenCalledWith("4");
345
- });
346
- test("Menu key events - Arrow down moves the focus to the next menu item", function () {
347
- var onSelectOption = jest.fn();
348
-
349
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
350
- onSelectOption: onSelectOption,
351
- options: options,
352
- label: "dropdown-test"
353
- })),
354
- getByRole = _render13.getByRole;
355
-
356
- _userEvent["default"].click(getByRole("button"));
357
-
358
- var menu = getByRole("menu");
359
-
360
- _react2.fireEvent.keyDown(menu, {
361
- key: "ArrowDown",
362
- code: "ArrowDown",
363
- keyCode: 40,
364
- charCode: 40
365
- });
366
-
367
- _react2.fireEvent.keyDown(menu, {
368
- key: "ArrowDown",
369
- code: "ArrowDown",
370
- keyCode: 40,
371
- charCode: 40
372
- });
373
-
374
- expect(document.activeElement === menu).toBeTruthy();
375
- expect(menu.getAttribute("aria-activedescendant")).toBe("option-2");
376
-
377
- _react2.fireEvent.keyDown(menu, {
378
- key: "Enter",
379
- code: "Enter",
380
- keyCode: 13,
381
- charCode: 13
382
- });
383
-
384
308
  expect(onSelectOption).toHaveBeenCalledWith("3");
385
309
  });
310
+ test("Menu key events - Arrow up, if focus is on the first menu item, moves focus to the last menu item.", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
311
+ var onSelectOption, _render12, getByRole, menu;
312
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
313
+ while (1) switch (_context6.prev = _context6.next) {
314
+ case 0:
315
+ onSelectOption = jest.fn();
316
+ _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
317
+ onSelectOption: onSelectOption,
318
+ options: options,
319
+ label: "dropdown-test"
320
+ })), getByRole = _render12.getByRole;
321
+ _context6.next = 4;
322
+ return _userEvent["default"].click(getByRole("button"));
323
+ case 4:
324
+ menu = getByRole("menu");
325
+ _react2.fireEvent.keyDown(menu, {
326
+ key: "ArrowUp",
327
+ code: "ArrowUp",
328
+ keyCode: 38,
329
+ charCode: 38
330
+ });
331
+ expect(document.activeElement === menu).toBeTruthy();
332
+ expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
333
+ _react2.fireEvent.keyDown(menu, {
334
+ key: "Enter",
335
+ code: "Enter",
336
+ keyCode: 13,
337
+ charCode: 13
338
+ });
339
+ expect(onSelectOption).toHaveBeenCalledWith("4");
340
+ case 10:
341
+ case "end":
342
+ return _context6.stop();
343
+ }
344
+ }, _callee6);
345
+ })));
346
+ test("Menu key events - Arrow down moves the focus to the next menu item", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
347
+ var onSelectOption, _render13, getByRole, menu;
348
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
349
+ while (1) switch (_context7.prev = _context7.next) {
350
+ case 0:
351
+ onSelectOption = jest.fn();
352
+ _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
353
+ onSelectOption: onSelectOption,
354
+ options: options,
355
+ label: "dropdown-test"
356
+ })), getByRole = _render13.getByRole;
357
+ _context7.next = 4;
358
+ return _userEvent["default"].click(getByRole("button"));
359
+ case 4:
360
+ menu = getByRole("menu");
361
+ _react2.fireEvent.keyDown(menu, {
362
+ key: "ArrowDown",
363
+ code: "ArrowDown",
364
+ keyCode: 40,
365
+ charCode: 40
366
+ });
367
+ _react2.fireEvent.keyDown(menu, {
368
+ key: "ArrowDown",
369
+ code: "ArrowDown",
370
+ keyCode: 40,
371
+ charCode: 40
372
+ });
373
+ expect(document.activeElement === menu).toBeTruthy();
374
+ expect(menu.getAttribute("aria-activedescendant")).toBe("option-2");
375
+ _react2.fireEvent.keyDown(menu, {
376
+ key: "Enter",
377
+ code: "Enter",
378
+ keyCode: 13,
379
+ charCode: 13
380
+ });
381
+ expect(onSelectOption).toHaveBeenCalledWith("3");
382
+ case 11:
383
+ case "end":
384
+ return _context7.stop();
385
+ }
386
+ }, _callee7);
387
+ })));
386
388
  test("Menu key events - Arrow down, if focus is on the last menu item, moves focus to the first menu item. ", function () {
387
389
  var onSelectOption = jest.fn();
388
-
389
390
  var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
390
- onSelectOption: onSelectOption,
391
- options: options,
392
- label: "dropdown-test"
393
- })),
394
- getByRole = _render14.getByRole;
395
-
391
+ onSelectOption: onSelectOption,
392
+ options: options,
393
+ label: "dropdown-test"
394
+ })),
395
+ getByRole = _render14.getByRole;
396
396
  _react2.fireEvent.keyDown(getByRole("button"), {
397
397
  key: "ArrowUp",
398
398
  code: "ArrowUp",
399
399
  keyCode: 38,
400
400
  charCode: 38
401
401
  });
402
-
403
402
  var menu = getByRole("menu");
404
-
405
403
  _react2.fireEvent.keyDown(menu, {
406
404
  key: "ArrowDown",
407
405
  code: "ArrowDown",
408
406
  keyCode: 40,
409
407
  charCode: 40
410
408
  });
411
-
412
409
  expect(document.activeElement === menu).toBeTruthy();
413
410
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
414
-
415
411
  _react2.fireEvent.keyDown(menu, {
416
412
  key: "Enter",
417
413
  code: "Enter",
418
414
  keyCode: 13,
419
415
  charCode: 13
420
416
  });
421
-
422
- expect(onSelectOption).toHaveBeenCalledWith("1");
423
- });
424
- test("Menu key events - Enter key selects the current focused item and closes the menu", function () {
425
- var onSelectOption = jest.fn();
426
-
427
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
428
- onSelectOption: onSelectOption,
429
- options: options,
430
- label: "dropdown-test"
431
- })),
432
- getByRole = _render15.getByRole,
433
- queryByRole = _render15.queryByRole;
434
-
435
- _userEvent["default"].click(getByRole("button"));
436
-
437
- _react2.fireEvent.keyDown(getByRole("menu"), {
438
- key: "Enter",
439
- code: "Enter",
440
- keyCode: 13,
441
- charCode: 13
442
- });
443
-
444
417
  expect(onSelectOption).toHaveBeenCalledWith("1");
445
- expect(queryByRole("menu")).toBeFalsy();
446
- expect(document.activeElement === getByRole("button")).toBeTruthy();
447
- });
448
- test("Menu key events - Esc closes the menu and sets focus on the menu button", function () {
449
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
450
- options: options,
451
- label: "dropdown-test"
452
- })),
453
- getByRole = _render16.getByRole,
454
- queryByRole = _render16.queryByRole;
455
-
456
- _userEvent["default"].click(getByRole("button"));
457
-
458
- _react2.fireEvent.keyDown(getByRole("menu"), {
459
- key: "Esc",
460
- code: "Esc",
461
- keyCode: 27,
462
- charCode: 27
463
- });
464
-
465
- expect(queryByRole("menu")).toBeFalsy();
466
- expect(document.activeElement === getByRole("button")).toBeTruthy();
467
418
  });
419
+ test("Menu key events - Enter key selects the current focused item and closes the menu", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
420
+ var onSelectOption, _render15, getByRole, queryByRole;
421
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
422
+ while (1) switch (_context8.prev = _context8.next) {
423
+ case 0:
424
+ onSelectOption = jest.fn();
425
+ _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
426
+ onSelectOption: onSelectOption,
427
+ options: options,
428
+ label: "dropdown-test"
429
+ })), getByRole = _render15.getByRole, queryByRole = _render15.queryByRole;
430
+ _context8.next = 4;
431
+ return _userEvent["default"].click(getByRole("button"));
432
+ case 4:
433
+ _react2.fireEvent.keyDown(getByRole("menu"), {
434
+ key: "Enter",
435
+ code: "Enter",
436
+ keyCode: 13,
437
+ charCode: 13
438
+ });
439
+ expect(onSelectOption).toHaveBeenCalledWith("1");
440
+ expect(queryByRole("menu")).toBeFalsy();
441
+ expect(document.activeElement === getByRole("button")).toBeTruthy();
442
+ case 8:
443
+ case "end":
444
+ return _context8.stop();
445
+ }
446
+ }, _callee8);
447
+ })));
448
+ test("Menu key events - Esc closes the menu and sets focus on the menu button", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
449
+ var _render16, getByRole, queryByRole;
450
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
451
+ while (1) switch (_context9.prev = _context9.next) {
452
+ case 0:
453
+ _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
454
+ options: options,
455
+ label: "dropdown-test"
456
+ })), getByRole = _render16.getByRole, queryByRole = _render16.queryByRole;
457
+ _context9.next = 3;
458
+ return _userEvent["default"].click(getByRole("button"));
459
+ case 3:
460
+ _react2.fireEvent.keyDown(getByRole("menu"), {
461
+ key: "Esc",
462
+ code: "Esc",
463
+ keyCode: 27,
464
+ charCode: 27
465
+ });
466
+ expect(queryByRole("menu")).toBeFalsy();
467
+ expect(document.activeElement === getByRole("button")).toBeTruthy();
468
+ case 6:
469
+ case "end":
470
+ return _context9.stop();
471
+ }
472
+ }, _callee9);
473
+ })));
468
474
  test("Menu key events - Home moves the focus to the first menu item", function () {
469
475
  var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
470
- options: options,
471
- label: "dropdown-test-1"
472
- })),
473
- getByRole = _render17.getByRole;
474
-
476
+ options: options,
477
+ label: "dropdown-test-1"
478
+ })),
479
+ getByRole = _render17.getByRole;
475
480
  _react2.fireEvent.keyDown(getByRole("button"), {
476
481
  key: "ArrowUp",
477
482
  code: "ArrowUp",
478
483
  keyCode: 38,
479
484
  charCode: 38
480
485
  });
481
-
482
486
  var menu = getByRole("menu");
483
487
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
484
-
485
488
  _react2.fireEvent.keyDown(menu, {
486
489
  key: "Home",
487
490
  code: "Home",
488
491
  keyCode: 36,
489
492
  charCode: 36
490
493
  });
491
-
492
- expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
493
- });
494
- test("Menu key events - End moves the focus to the last menu item", function () {
495
- var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
496
- options: options,
497
- label: "dropdown-test-1"
498
- })),
499
- getByRole = _render18.getByRole;
500
-
501
- _userEvent["default"].click(getByRole("button"));
502
-
503
- var menu = getByRole("menu");
504
494
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
505
-
506
- _react2.fireEvent.keyDown(menu, {
507
- key: "End",
508
- code: "End",
509
- keyCode: 35,
510
- charCode: 35
511
- });
512
-
513
- expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
514
495
  });
496
+ test("Menu key events - End moves the focus to the last menu item", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
497
+ var _render18, getByRole, menu;
498
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
499
+ while (1) switch (_context10.prev = _context10.next) {
500
+ case 0:
501
+ _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
502
+ options: options,
503
+ label: "dropdown-test-1"
504
+ })), getByRole = _render18.getByRole;
505
+ _context10.next = 3;
506
+ return _userEvent["default"].click(getByRole("button"));
507
+ case 3:
508
+ menu = getByRole("menu");
509
+ expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
510
+ _react2.fireEvent.keyDown(menu, {
511
+ key: "End",
512
+ code: "End",
513
+ keyCode: 35,
514
+ charCode: 35
515
+ });
516
+ expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
517
+ case 7:
518
+ case "end":
519
+ return _context10.stop();
520
+ }
521
+ }, _callee10);
522
+ })));
515
523
  test("Menu key events - PageUp moves the focus to the first menu item", function () {
516
524
  var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
517
- options: options,
518
- label: "dropdown-test-1"
519
- })),
520
- getByRole = _render19.getByRole;
521
-
525
+ options: options,
526
+ label: "dropdown-test-1"
527
+ })),
528
+ getByRole = _render19.getByRole;
522
529
  _react2.fireEvent.keyDown(getByRole("button"), {
523
530
  key: "ArrowUp",
524
531
  code: "ArrowUp",
525
532
  keyCode: 38,
526
533
  charCode: 38
527
534
  });
528
-
529
535
  var menu = getByRole("menu");
530
536
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
531
-
532
537
  _react2.fireEvent.keyDown(menu, {
533
538
  key: "PageUp",
534
539
  code: "PageUp",
535
540
  keyCode: 33,
536
541
  charCode: 33
537
542
  });
538
-
539
- expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
540
- });
541
- test("Menu key events - PageDown moves the focus to the last menu item", function () {
542
- var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
543
- options: options,
544
- label: "dropdown-test-1"
545
- })),
546
- getByRole = _render20.getByRole;
547
-
548
- _userEvent["default"].click(getByRole("button"));
549
-
550
- var menu = getByRole("menu");
551
543
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
552
-
553
- _react2.fireEvent.keyDown(menu, {
554
- key: "PageDown",
555
- code: "PageDown",
556
- keyCode: 34,
557
- charCode: 34
558
- });
559
-
560
- expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
561
- });
562
- test("Menu key events - Tab closes the menu and sets focus to the next element", function () {
563
- var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
564
- options: options,
565
- label: "dropdown-test-1"
566
- })),
567
- getByRole = _render21.getByRole,
568
- queryByRole = _render21.queryByRole;
569
-
570
- var dropdown = getByRole("button");
571
-
572
- _userEvent["default"].click(dropdown);
573
-
574
- expect(getByRole("menu")).toBeTruthy();
575
-
576
- _react2.fireEvent.keyDown(getByRole("menu"), {
577
- key: "Tab",
578
- code: "Tab",
579
- keyCode: 9,
580
- charCode: 9
581
- });
582
-
583
- expect(queryByRole("menu")).toBeFalsy();
584
544
  });
545
+ test("Menu key events - PageDown moves the focus to the last menu item", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
546
+ var _render20, getByRole, menu;
547
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
548
+ while (1) switch (_context11.prev = _context11.next) {
549
+ case 0:
550
+ _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
551
+ options: options,
552
+ label: "dropdown-test-1"
553
+ })), getByRole = _render20.getByRole;
554
+ _context11.next = 3;
555
+ return _userEvent["default"].click(getByRole("button"));
556
+ case 3:
557
+ menu = getByRole("menu");
558
+ expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
559
+ _react2.fireEvent.keyDown(menu, {
560
+ key: "PageDown",
561
+ code: "PageDown",
562
+ keyCode: 34,
563
+ charCode: 34
564
+ });
565
+ expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
566
+ case 7:
567
+ case "end":
568
+ return _context11.stop();
569
+ }
570
+ }, _callee11);
571
+ })));
572
+ test("Menu key events - Tab closes the menu and sets focus to the next element", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
573
+ var _render21, getByRole, queryByRole, dropdown;
574
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
575
+ while (1) switch (_context12.prev = _context12.next) {
576
+ case 0:
577
+ _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
578
+ options: options,
579
+ label: "dropdown-test-1"
580
+ })), getByRole = _render21.getByRole, queryByRole = _render21.queryByRole;
581
+ dropdown = getByRole("button");
582
+ _context12.next = 4;
583
+ return _userEvent["default"].click(dropdown);
584
+ case 4:
585
+ expect(getByRole("menu")).toBeTruthy();
586
+ _react2.fireEvent.keyDown(getByRole("menu"), {
587
+ key: "Tab",
588
+ code: "Tab",
589
+ keyCode: 9,
590
+ charCode: 9
591
+ });
592
+ expect(queryByRole("menu")).toBeFalsy();
593
+ case 7:
594
+ case "end":
595
+ return _context12.stop();
596
+ }
597
+ }, _callee12);
598
+ })));
585
599
  });