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