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