@dxc-technology/halstack-react 12.0.0 → 12.0.1
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/HalstackContext.d.ts +0 -3
- package/HalstackContext.js +2 -6
- package/accordion/Accordion.accessibility.test.d.ts +1 -0
- package/accordion/Accordion.accessibility.test.js +1 -1
- package/accordion/Accordion.js +5 -8
- package/accordion/Accordion.test.d.ts +1 -0
- package/accordion/Accordion.test.js +3 -3
- package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.accessibility.test.js +8 -14
- package/accordion-group/AccordionGroup.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.test.js +5 -9
- package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
- package/action-icon/ActionIcon.accessibility.test.js +1 -1
- package/action-icon/ActionIcon.test.d.ts +1 -0
- package/action-icon/ActionIcon.test.js +1 -1
- package/alert/Alert.accessibility.test.d.ts +1 -0
- package/alert/Alert.accessibility.test.js +1 -1
- package/alert/Alert.test.d.ts +1 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.accessibility.test.d.ts +1 -0
- package/badge/Badge.accessibility.test.js +2 -2
- package/badge/Badge.test.d.ts +1 -0
- package/badge/Badge.test.js +2 -2
- package/box/Box.accessibility.test.d.ts +1 -0
- package/box/Box.accessibility.test.js +1 -1
- package/box/Box.test.d.ts +1 -0
- package/box/Box.test.js +1 -1
- package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.js +1 -1
- package/button/Button.test.d.ts +1 -0
- package/button/Button.test.js +1 -1
- package/card/Card.accessibility.test.d.ts +1 -0
- package/card/Card.accessibility.test.js +1 -1
- package/card/Card.test.d.ts +1 -0
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
- package/checkbox/Checkbox.accessibility.test.js +1 -1
- package/checkbox/Checkbox.js +5 -8
- package/checkbox/Checkbox.test.d.ts +1 -0
- package/checkbox/Checkbox.test.js +1 -1
- package/chip/Chip.accessibility.test.d.ts +1 -0
- package/chip/Chip.accessibility.test.js +3 -1
- package/chip/Chip.js +10 -21
- package/chip/Chip.stories.tsx +78 -46
- package/chip/Chip.test.d.ts +1 -0
- package/chip/Chip.test.js +1 -1
- package/chip/types.d.ts +35 -12
- package/common/fonts.css +2 -0
- package/common/variables.d.ts +0 -3
- package/common/variables.js +1 -4
- package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +2 -1
- package/contextual-menu/ContextualMenu.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.test.js +1 -1
- package/date-input/DateInput.accessibility.test.d.ts +1 -0
- package/date-input/DateInput.accessibility.test.js +4 -2
- package/date-input/DateInput.js +15 -15
- package/date-input/DateInput.test.d.ts +1 -0
- package/date-input/DateInput.test.js +9 -8
- package/dialog/Dialog.accessibility.test.d.ts +1 -0
- package/dialog/Dialog.accessibility.test.js +1 -1
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.d.ts +1 -0
- package/dialog/Dialog.test.js +112 -48
- package/divider/Divider.accessibility.test.d.ts +1 -0
- package/divider/Divider.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.js +6 -2
- package/dropdown/Dropdown.js +11 -12
- package/dropdown/Dropdown.test.d.ts +1 -0
- package/dropdown/Dropdown.test.js +82 -52
- package/file-input/FileInput.accessibility.test.d.ts +1 -0
- package/file-input/FileInput.accessibility.test.js +25 -18
- package/file-input/FileInput.js +1 -4
- package/file-input/FileInput.test.d.ts +1 -0
- package/file-input/FileInput.test.js +44 -22
- package/footer/Footer.accessibility.test.d.ts +1 -0
- package/footer/Footer.accessibility.test.js +1 -1
- package/footer/Footer.test.d.ts +1 -0
- package/footer/Footer.test.js +1 -1
- package/header/Header.accessibility.test.d.ts +1 -0
- package/header/Header.accessibility.test.js +5 -4
- package/header/Header.test.d.ts +1 -0
- package/header/Header.test.js +1 -1
- package/heading/Heading.accessibility.test.d.ts +1 -0
- package/heading/Heading.accessibility.test.js +1 -1
- package/heading/Heading.test.d.ts +1 -0
- package/heading/Heading.test.js +1 -14
- package/icon/Icon.accessibility.test.d.ts +1 -0
- package/image/Image.accessibility.test.d.ts +1 -0
- package/link/Link.accessibility.test.d.ts +1 -0
- package/link/Link.accessibility.test.js +2 -2
- package/link/Link.test.d.ts +1 -0
- package/link/Link.test.js +1 -1
- package/main.d.ts +1 -0
- package/main.js +1 -0
- package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
- package/nav-tabs/NavTabs.accessibility.test.js +1 -1
- package/nav-tabs/NavTabs.js +18 -3
- package/nav-tabs/NavTabs.stories.tsx +18 -3
- package/nav-tabs/NavTabs.test.d.ts +1 -0
- package/nav-tabs/NavTabs.test.js +1 -1
- package/nav-tabs/Tab.js +1 -1
- package/number-input/NumberInput.accessibility.test.d.ts +1 -0
- package/number-input/NumberInput.accessibility.test.js +1 -1
- package/number-input/NumberInput.test.d.ts +1 -0
- package/number-input/NumberInput.test.js +5 -5
- package/package.json +6 -6
- package/paginator/Paginator.accessibility.test.d.ts +1 -0
- package/paginator/Paginator.accessibility.test.js +1 -1
- package/paginator/Paginator.test.d.ts +1 -0
- package/paginator/Paginator.test.js +1 -1
- package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.js +1 -1
- package/password-input/PasswordInput.test.d.ts +1 -0
- package/password-input/PasswordInput.test.js +1 -1
- package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
- package/progress-bar/ProgressBar.accessibility.test.js +1 -1
- package/progress-bar/ProgressBar.test.d.ts +1 -0
- package/progress-bar/ProgressBar.test.js +1 -1
- package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
- package/radio-group/Radio.js +5 -8
- package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
- package/radio-group/RadioGroup.accessibility.test.js +1 -1
- package/radio-group/RadioGroup.js +12 -15
- package/radio-group/RadioGroup.test.d.ts +1 -0
- package/radio-group/RadioGroup.test.js +3 -5
- package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +1 -1
- package/resultset-table/ResultsetTable.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.test.js +1 -2
- package/select/Listbox.js +6 -10
- package/select/Select.accessibility.test.d.ts +1 -0
- package/select/Select.accessibility.test.js +3 -3
- package/select/Select.js +15 -17
- package/select/Select.test.d.ts +1 -0
- package/select/Select.test.js +6 -3
- package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
- package/sidenav/Sidenav.accessibility.test.js +1 -1
- package/sidenav/Sidenav.test.d.ts +1 -0
- package/sidenav/Sidenav.test.js +1 -1
- package/slider/Slider.accessibility.test.d.ts +1 -0
- package/slider/Slider.accessibility.test.js +1 -1
- package/slider/Slider.js +8 -11
- package/slider/Slider.stories.tsx +180 -0
- package/slider/Slider.test.d.ts +1 -0
- package/slider/Slider.test.js +12 -9
- package/spinner/Spinner.accessibility.test.d.ts +1 -0
- package/spinner/Spinner.accessibility.test.js +2 -2
- package/spinner/Spinner.test.d.ts +1 -0
- package/spinner/Spinner.test.js +1 -1
- package/status-light/StatusLight.accessibility.test.d.ts +1 -0
- package/status-light/StatusLight.accessibility.test.js +2 -2
- package/status-light/StatusLight.test.d.ts +1 -0
- package/status-light/StatusLight.test.js +1 -1
- package/switch/Switch.accessibility.test.d.ts +1 -0
- package/switch/Switch.accessibility.test.js +1 -1
- package/switch/Switch.js +5 -8
- package/switch/Switch.test.d.ts +1 -0
- package/switch/Switch.test.js +1 -1
- package/table/Table.accessibility.test.d.ts +1 -0
- package/table/Table.accessibility.test.js +1 -1
- package/table/Table.test.d.ts +1 -0
- package/table/Table.test.js +1 -2
- package/tabs/Tabs.accessibility.test.d.ts +1 -0
- package/tabs/Tabs.accessibility.test.js +1 -1
- package/tabs/Tabs.test.d.ts +1 -0
- package/tabs/Tabs.test.js +1 -1
- package/tag/Tag.accessibility.test.d.ts +1 -0
- package/tag/Tag.accessibility.test.js +1 -1
- package/tag/Tag.test.d.ts +1 -0
- package/tag/Tag.test.js +1 -1
- package/text-input/TextInput.accessibility.test.d.ts +1 -0
- package/text-input/TextInput.accessibility.test.js +1 -1
- package/text-input/TextInput.js +19 -21
- package/text-input/TextInput.test.d.ts +1 -0
- package/text-input/TextInput.test.js +1 -1
- package/textarea/Textarea.accessibility.test.d.ts +1 -0
- package/textarea/Textarea.accessibility.test.js +1 -1
- package/textarea/Textarea.js +1 -4
- package/textarea/Textarea.test.d.ts +1 -0
- package/textarea/Textarea.test.js +1 -1
- package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.accessibility.test.js +2 -2
- package/toggle-group/ToggleGroup.js +5 -8
- package/toggle-group/ToggleGroup.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/typography/Typography.accessibility.test.d.ts +1 -0
- package/useTheme.d.ts +0 -3
- package/wizard/Wizard.accessibility.test.d.ts +1 -0
- package/wizard/Wizard.accessibility.test.js +1 -1
- package/wizard/Wizard.test.d.ts +1 -0
- package/wizard/Wizard.test.js +1 -1
|
@@ -8,7 +8,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _react2 = require("@testing-library/react");
|
|
10
10
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
11
|
-
var _Dropdown = _interopRequireDefault(require("./Dropdown
|
|
11
|
+
var _Dropdown = _interopRequireDefault(require("./Dropdown"));
|
|
12
12
|
// Mocking DOMRect for Radix Primitive Popover
|
|
13
13
|
global.globalThis = global;
|
|
14
14
|
global.DOMRect = {
|
|
@@ -54,21 +54,23 @@ var options = [{
|
|
|
54
54
|
}];
|
|
55
55
|
describe("Dropdown component tests", function () {
|
|
56
56
|
test("Renders with correct aria attributes", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
57
|
-
var _render, getAllByRole, getByRole, dropdown, menu;
|
|
57
|
+
var onSelectOption, _render, getAllByRole, getByRole, dropdown, menu;
|
|
58
58
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
59
59
|
while (1) switch (_context.prev = _context.next) {
|
|
60
60
|
case 0:
|
|
61
|
+
onSelectOption = jest.fn();
|
|
61
62
|
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
62
63
|
options: options,
|
|
63
|
-
label: "dropdown-test"
|
|
64
|
+
label: "dropdown-test",
|
|
65
|
+
onSelectOption: onSelectOption
|
|
64
66
|
})), getAllByRole = _render.getAllByRole, getByRole = _render.getByRole;
|
|
65
67
|
dropdown = getByRole("button");
|
|
66
68
|
expect(dropdown.getAttribute("aria-haspopup")).toBe("true");
|
|
67
69
|
expect(dropdown.getAttribute("aria-expanded")).toBeNull();
|
|
68
70
|
expect(dropdown.getAttribute("aria-activedescendant")).toBeNull();
|
|
69
|
-
_context.next =
|
|
71
|
+
_context.next = 8;
|
|
70
72
|
return _userEvent["default"].click(dropdown);
|
|
71
|
-
case
|
|
73
|
+
case 8:
|
|
72
74
|
menu = getByRole("menu");
|
|
73
75
|
expect(dropdown.getAttribute("aria-controls")).toBe(menu.id);
|
|
74
76
|
expect(dropdown.getAttribute("aria-expanded")).toBe("true");
|
|
@@ -76,64 +78,68 @@ describe("Dropdown component tests", function () {
|
|
|
76
78
|
expect(menu.getAttribute("aria-orientation")).toBe("vertical");
|
|
77
79
|
expect(menu.getAttribute("aria-labelledby")).toBe(dropdown.id);
|
|
78
80
|
expect(getAllByRole("menuitem").length).toBe(4);
|
|
79
|
-
case
|
|
81
|
+
case 15:
|
|
80
82
|
case "end":
|
|
81
83
|
return _context.stop();
|
|
82
84
|
}
|
|
83
85
|
}, _callee);
|
|
84
86
|
})));
|
|
85
87
|
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;
|
|
88
|
+
var onSelectOption, _render2, getByRole, queryByRole, getByText, dropdown;
|
|
87
89
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
88
90
|
while (1) switch (_context2.prev = _context2.next) {
|
|
89
91
|
case 0:
|
|
92
|
+
onSelectOption = jest.fn();
|
|
90
93
|
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
91
94
|
options: options,
|
|
92
|
-
label: "dropdown-test"
|
|
95
|
+
label: "dropdown-test",
|
|
96
|
+
onSelectOption: onSelectOption
|
|
93
97
|
})), getByRole = _render2.getByRole, queryByRole = _render2.queryByRole, getByText = _render2.getByText;
|
|
94
98
|
dropdown = getByRole("button");
|
|
95
99
|
expect(queryByRole("menu")).toBeFalsy();
|
|
96
|
-
_context2.next =
|
|
100
|
+
_context2.next = 6;
|
|
97
101
|
return _userEvent["default"].click(dropdown);
|
|
98
|
-
case
|
|
102
|
+
case 6:
|
|
99
103
|
expect(queryByRole("menu")).toBeTruthy();
|
|
100
104
|
expect(getByText("Amazon")).toBeTruthy();
|
|
101
105
|
expect(getByText("Ebay")).toBeTruthy();
|
|
102
106
|
expect(getByText("Wallapop")).toBeTruthy();
|
|
103
107
|
expect(getByText("Aliexpress")).toBeTruthy();
|
|
104
|
-
_context2.next =
|
|
108
|
+
_context2.next = 13;
|
|
105
109
|
return _userEvent["default"].click(dropdown);
|
|
106
|
-
case 12:
|
|
107
|
-
expect(queryByRole("menu")).toBeFalsy();
|
|
108
110
|
case 13:
|
|
111
|
+
expect(queryByRole("menu")).toBeFalsy();
|
|
112
|
+
case 14:
|
|
109
113
|
case "end":
|
|
110
114
|
return _context2.stop();
|
|
111
115
|
}
|
|
112
116
|
}, _callee2);
|
|
113
117
|
})));
|
|
114
118
|
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;
|
|
119
|
+
var onSelectOption, _render3, getByRole, queryByRole, queryByText, dropdown;
|
|
116
120
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
117
121
|
while (1) switch (_context3.prev = _context3.next) {
|
|
118
122
|
case 0:
|
|
123
|
+
onSelectOption = jest.fn();
|
|
119
124
|
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
120
125
|
disabled: true,
|
|
121
126
|
options: options,
|
|
122
|
-
label: "dropdown-test"
|
|
127
|
+
label: "dropdown-test",
|
|
128
|
+
onSelectOption: onSelectOption
|
|
123
129
|
})), getByRole = _render3.getByRole, queryByRole = _render3.queryByRole, queryByText = _render3.queryByText;
|
|
124
130
|
dropdown = getByRole("button");
|
|
125
131
|
expect(queryByRole("menu")).toBeFalsy();
|
|
126
|
-
_context3.next =
|
|
132
|
+
_context3.next = 6;
|
|
127
133
|
return _userEvent["default"].click(dropdown);
|
|
128
|
-
case
|
|
134
|
+
case 6:
|
|
129
135
|
expect(queryByRole("menu")).toBeFalsy();
|
|
130
136
|
expect(queryByText("Amazon")).toBeFalsy();
|
|
131
|
-
_context3.next =
|
|
137
|
+
_context3.next = 10;
|
|
132
138
|
return _userEvent["default"].click(dropdown);
|
|
133
|
-
case
|
|
139
|
+
case 10:
|
|
134
140
|
expect(queryByRole("menu")).toBeFalsy();
|
|
135
141
|
expect(dropdown.getAttribute("aria-expanded")).toBeNull();
|
|
136
|
-
case
|
|
142
|
+
case 12:
|
|
137
143
|
case "end":
|
|
138
144
|
return _context3.stop();
|
|
139
145
|
}
|
|
@@ -166,10 +172,12 @@ describe("Dropdown component tests", function () {
|
|
|
166
172
|
}, _callee4);
|
|
167
173
|
})));
|
|
168
174
|
test("When expandOnHover is true, the dropdown trigger shows and hides the menu when it is hovered", function () {
|
|
175
|
+
var onSelectOption = jest.fn();
|
|
169
176
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
170
177
|
options: options,
|
|
171
178
|
expandOnHover: true,
|
|
172
|
-
label: "dropdown-test"
|
|
179
|
+
label: "dropdown-test",
|
|
180
|
+
onSelectOption: onSelectOption
|
|
173
181
|
})),
|
|
174
182
|
queryByText = _render5.queryByText,
|
|
175
183
|
getByRole = _render5.getByRole,
|
|
@@ -183,31 +191,35 @@ describe("Dropdown component tests", function () {
|
|
|
183
191
|
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
184
192
|
});
|
|
185
193
|
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;
|
|
194
|
+
var onSelectOption, _render6, getByRole, queryByRole, dropdown;
|
|
187
195
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
188
196
|
while (1) switch (_context5.prev = _context5.next) {
|
|
189
197
|
case 0:
|
|
198
|
+
onSelectOption = jest.fn();
|
|
190
199
|
_render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
191
200
|
options: options,
|
|
192
|
-
label: "dropdown-test"
|
|
201
|
+
label: "dropdown-test",
|
|
202
|
+
onSelectOption: onSelectOption
|
|
193
203
|
})), getByRole = _render6.getByRole, queryByRole = _render6.queryByRole;
|
|
194
204
|
dropdown = getByRole("button");
|
|
195
|
-
_context5.next =
|
|
205
|
+
_context5.next = 5;
|
|
196
206
|
return _userEvent["default"].click(dropdown);
|
|
197
|
-
case
|
|
207
|
+
case 5:
|
|
198
208
|
expect(getByRole("menu")).toBeTruthy();
|
|
199
209
|
_react2.fireEvent.blur(getByRole("menu"));
|
|
200
210
|
expect(queryByRole("menu")).toBeFalsy();
|
|
201
|
-
case
|
|
211
|
+
case 8:
|
|
202
212
|
case "end":
|
|
203
213
|
return _context5.stop();
|
|
204
214
|
}
|
|
205
215
|
}, _callee5);
|
|
206
216
|
})));
|
|
207
217
|
test("Menu button key events - Arrow up opens the list and moves the focus to the last menu item", function () {
|
|
218
|
+
var onSelectOption = jest.fn();
|
|
208
219
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
209
220
|
options: options,
|
|
210
|
-
label: "dropdown-test"
|
|
221
|
+
label: "dropdown-test",
|
|
222
|
+
onSelectOption: onSelectOption
|
|
211
223
|
})),
|
|
212
224
|
getByRole = _render7.getByRole;
|
|
213
225
|
var dropdown = getByRole("button");
|
|
@@ -223,9 +235,11 @@ describe("Dropdown component tests", function () {
|
|
|
223
235
|
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
224
236
|
});
|
|
225
237
|
test("Menu button key events - Arrow down opens the list and moves the focus to the first menu item", function () {
|
|
238
|
+
var onSelectOption = jest.fn();
|
|
226
239
|
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
227
240
|
options: options,
|
|
228
|
-
label: "dropdown-test"
|
|
241
|
+
label: "dropdown-test",
|
|
242
|
+
onSelectOption: onSelectOption
|
|
229
243
|
})),
|
|
230
244
|
getByRole = _render8.getByRole;
|
|
231
245
|
var dropdown = getByRole("button");
|
|
@@ -241,9 +255,11 @@ describe("Dropdown component tests", function () {
|
|
|
241
255
|
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
242
256
|
});
|
|
243
257
|
test("Menu button key events - Enter opens the list and moves the focus to the first menu item", function () {
|
|
258
|
+
var onSelectOption = jest.fn();
|
|
244
259
|
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
245
260
|
options: options,
|
|
246
|
-
label: "dropdown-test"
|
|
261
|
+
label: "dropdown-test",
|
|
262
|
+
onSelectOption: onSelectOption
|
|
247
263
|
})),
|
|
248
264
|
getByRole = _render9.getByRole;
|
|
249
265
|
var dropdown = getByRole("button");
|
|
@@ -259,9 +275,11 @@ describe("Dropdown component tests", function () {
|
|
|
259
275
|
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
260
276
|
});
|
|
261
277
|
test("Menu button key events - Space opens the list and moves the focus to the first menu item", function () {
|
|
278
|
+
var onSelectOption = jest.fn();
|
|
262
279
|
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
263
280
|
options: options,
|
|
264
|
-
label: "dropdown-test"
|
|
281
|
+
label: "dropdown-test",
|
|
282
|
+
onSelectOption: onSelectOption
|
|
265
283
|
})),
|
|
266
284
|
getByRole = _render10.getByRole;
|
|
267
285
|
var dropdown = getByRole("button");
|
|
@@ -446,17 +464,19 @@ describe("Dropdown component tests", function () {
|
|
|
446
464
|
}, _callee8);
|
|
447
465
|
})));
|
|
448
466
|
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;
|
|
467
|
+
var onSelectOption, _render16, getByRole, queryByRole;
|
|
450
468
|
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
451
469
|
while (1) switch (_context9.prev = _context9.next) {
|
|
452
470
|
case 0:
|
|
471
|
+
onSelectOption = jest.fn();
|
|
453
472
|
_render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
454
473
|
options: options,
|
|
455
|
-
label: "dropdown-test"
|
|
474
|
+
label: "dropdown-test",
|
|
475
|
+
onSelectOption: onSelectOption
|
|
456
476
|
})), getByRole = _render16.getByRole, queryByRole = _render16.queryByRole;
|
|
457
|
-
_context9.next =
|
|
477
|
+
_context9.next = 4;
|
|
458
478
|
return _userEvent["default"].click(getByRole("button"));
|
|
459
|
-
case
|
|
479
|
+
case 4:
|
|
460
480
|
_react2.fireEvent.keyDown(getByRole("menu"), {
|
|
461
481
|
key: "Esc",
|
|
462
482
|
code: "Esc",
|
|
@@ -465,16 +485,18 @@ describe("Dropdown component tests", function () {
|
|
|
465
485
|
});
|
|
466
486
|
expect(queryByRole("menu")).toBeFalsy();
|
|
467
487
|
expect(document.activeElement === getByRole("button")).toBeTruthy();
|
|
468
|
-
case
|
|
488
|
+
case 7:
|
|
469
489
|
case "end":
|
|
470
490
|
return _context9.stop();
|
|
471
491
|
}
|
|
472
492
|
}, _callee9);
|
|
473
493
|
})));
|
|
474
494
|
test("Menu key events - Home moves the focus to the first menu item", function () {
|
|
495
|
+
var onSelectOption = jest.fn();
|
|
475
496
|
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
476
497
|
options: options,
|
|
477
|
-
label: "dropdown-test-1"
|
|
498
|
+
label: "dropdown-test-1",
|
|
499
|
+
onSelectOption: onSelectOption
|
|
478
500
|
})),
|
|
479
501
|
getByRole = _render17.getByRole;
|
|
480
502
|
_react2.fireEvent.keyDown(getByRole("button"), {
|
|
@@ -494,17 +516,19 @@ describe("Dropdown component tests", function () {
|
|
|
494
516
|
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
495
517
|
});
|
|
496
518
|
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;
|
|
519
|
+
var onSelectOption, _render18, getByRole, menu;
|
|
498
520
|
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
499
521
|
while (1) switch (_context10.prev = _context10.next) {
|
|
500
522
|
case 0:
|
|
523
|
+
onSelectOption = jest.fn();
|
|
501
524
|
_render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
502
525
|
options: options,
|
|
503
|
-
label: "dropdown-test-1"
|
|
526
|
+
label: "dropdown-test-1",
|
|
527
|
+
onSelectOption: onSelectOption
|
|
504
528
|
})), getByRole = _render18.getByRole;
|
|
505
|
-
_context10.next =
|
|
529
|
+
_context10.next = 4;
|
|
506
530
|
return _userEvent["default"].click(getByRole("button"));
|
|
507
|
-
case
|
|
531
|
+
case 4:
|
|
508
532
|
menu = getByRole("menu");
|
|
509
533
|
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
510
534
|
_react2.fireEvent.keyDown(menu, {
|
|
@@ -514,16 +538,18 @@ describe("Dropdown component tests", function () {
|
|
|
514
538
|
charCode: 35
|
|
515
539
|
});
|
|
516
540
|
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
517
|
-
case
|
|
541
|
+
case 8:
|
|
518
542
|
case "end":
|
|
519
543
|
return _context10.stop();
|
|
520
544
|
}
|
|
521
545
|
}, _callee10);
|
|
522
546
|
})));
|
|
523
547
|
test("Menu key events - PageUp moves the focus to the first menu item", function () {
|
|
548
|
+
var onSelectOption = jest.fn();
|
|
524
549
|
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
525
550
|
options: options,
|
|
526
|
-
label: "dropdown-test-1"
|
|
551
|
+
label: "dropdown-test-1",
|
|
552
|
+
onSelectOption: onSelectOption
|
|
527
553
|
})),
|
|
528
554
|
getByRole = _render19.getByRole;
|
|
529
555
|
_react2.fireEvent.keyDown(getByRole("button"), {
|
|
@@ -543,17 +569,19 @@ describe("Dropdown component tests", function () {
|
|
|
543
569
|
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
544
570
|
});
|
|
545
571
|
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;
|
|
572
|
+
var onSelectOption, _render20, getByRole, menu;
|
|
547
573
|
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
548
574
|
while (1) switch (_context11.prev = _context11.next) {
|
|
549
575
|
case 0:
|
|
576
|
+
onSelectOption = jest.fn();
|
|
550
577
|
_render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
551
578
|
options: options,
|
|
552
|
-
label: "dropdown-test-1"
|
|
579
|
+
label: "dropdown-test-1",
|
|
580
|
+
onSelectOption: onSelectOption
|
|
553
581
|
})), getByRole = _render20.getByRole;
|
|
554
|
-
_context11.next =
|
|
582
|
+
_context11.next = 4;
|
|
555
583
|
return _userEvent["default"].click(getByRole("button"));
|
|
556
|
-
case
|
|
584
|
+
case 4:
|
|
557
585
|
menu = getByRole("menu");
|
|
558
586
|
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
559
587
|
_react2.fireEvent.keyDown(menu, {
|
|
@@ -563,25 +591,27 @@ describe("Dropdown component tests", function () {
|
|
|
563
591
|
charCode: 34
|
|
564
592
|
});
|
|
565
593
|
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
566
|
-
case
|
|
594
|
+
case 8:
|
|
567
595
|
case "end":
|
|
568
596
|
return _context11.stop();
|
|
569
597
|
}
|
|
570
598
|
}, _callee11);
|
|
571
599
|
})));
|
|
572
600
|
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;
|
|
601
|
+
var onSelectOption, _render21, getByRole, queryByRole, dropdown;
|
|
574
602
|
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
575
603
|
while (1) switch (_context12.prev = _context12.next) {
|
|
576
604
|
case 0:
|
|
605
|
+
onSelectOption = jest.fn();
|
|
577
606
|
_render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
578
607
|
options: options,
|
|
579
|
-
label: "dropdown-test-1"
|
|
608
|
+
label: "dropdown-test-1",
|
|
609
|
+
onSelectOption: onSelectOption
|
|
580
610
|
})), getByRole = _render21.getByRole, queryByRole = _render21.queryByRole;
|
|
581
611
|
dropdown = getByRole("button");
|
|
582
|
-
_context12.next =
|
|
612
|
+
_context12.next = 5;
|
|
583
613
|
return _userEvent["default"].click(dropdown);
|
|
584
|
-
case
|
|
614
|
+
case 5:
|
|
585
615
|
expect(getByRole("menu")).toBeTruthy();
|
|
586
616
|
_react2.fireEvent.keyDown(getByRole("menu"), {
|
|
587
617
|
key: "Tab",
|
|
@@ -590,7 +620,7 @@ describe("Dropdown component tests", function () {
|
|
|
590
620
|
charCode: 9
|
|
591
621
|
});
|
|
592
622
|
expect(queryByRole("menu")).toBeFalsy();
|
|
593
|
-
case
|
|
623
|
+
case 8:
|
|
594
624
|
case "end":
|
|
595
625
|
return _context12.stop();
|
|
596
626
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -6,7 +6,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
6
6
|
var _react = _interopRequireDefault(require("react"));
|
|
7
7
|
var _react2 = require("@testing-library/react");
|
|
8
8
|
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
9
|
-
var _FileInput = _interopRequireDefault(require("./FileInput
|
|
9
|
+
var _FileInput = _interopRequireDefault(require("./FileInput"));
|
|
10
10
|
var picPreview = "https://cdn.mos.cms.futurecdn.net/CAZ6JXi6huSuN4QGE627NR.jpg";
|
|
11
11
|
var file1 = new File(["file1"], "file.pdf", {
|
|
12
12
|
type: "text/plain"
|
|
@@ -42,10 +42,11 @@ var filesExamples = [{
|
|
|
42
42
|
}];
|
|
43
43
|
describe("FileInput component accessibility tests", function () {
|
|
44
44
|
it("Should not have basic accessibility issues for dropzone mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
45
|
-
var _render, container, results;
|
|
45
|
+
var callbackFile, _render, container, results;
|
|
46
46
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
47
47
|
while (1) switch (_context.prev = _context.next) {
|
|
48
48
|
case 0:
|
|
49
|
+
callbackFile = jest.fn();
|
|
49
50
|
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
50
51
|
label: "File input",
|
|
51
52
|
helperText: "Helper Text",
|
|
@@ -55,26 +56,28 @@ describe("FileInput component accessibility tests", function () {
|
|
|
55
56
|
margin: "medium",
|
|
56
57
|
mode: "dropzone",
|
|
57
58
|
multiple: true,
|
|
59
|
+
callbackFile: callbackFile,
|
|
58
60
|
minSize: 1000,
|
|
59
61
|
maxSize: 20000,
|
|
60
62
|
showPreview: true
|
|
61
63
|
})), container = _render.container;
|
|
62
|
-
_context.next =
|
|
64
|
+
_context.next = 4;
|
|
63
65
|
return (0, _axeHelper.axe)(container);
|
|
64
|
-
case
|
|
66
|
+
case 4:
|
|
65
67
|
results = _context.sent;
|
|
66
68
|
expect(results).toHaveNoViolations();
|
|
67
|
-
case
|
|
69
|
+
case 6:
|
|
68
70
|
case "end":
|
|
69
71
|
return _context.stop();
|
|
70
72
|
}
|
|
71
73
|
}, _callee);
|
|
72
74
|
})));
|
|
73
75
|
it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
74
|
-
var _render2, container, results;
|
|
76
|
+
var callbackFile, _render2, container, results;
|
|
75
77
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
76
78
|
while (1) switch (_context2.prev = _context2.next) {
|
|
77
79
|
case 0:
|
|
80
|
+
callbackFile = jest.fn();
|
|
78
81
|
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
79
82
|
label: "File input",
|
|
80
83
|
helperText: "Helper Text",
|
|
@@ -84,55 +87,58 @@ describe("FileInput component accessibility tests", function () {
|
|
|
84
87
|
margin: "medium",
|
|
85
88
|
mode: "dropzone",
|
|
86
89
|
multiple: true,
|
|
90
|
+
callbackFile: callbackFile,
|
|
87
91
|
minSize: 1000,
|
|
88
92
|
maxSize: 20000,
|
|
89
93
|
disabled: true
|
|
90
94
|
})), container = _render2.container;
|
|
91
|
-
_context2.next =
|
|
95
|
+
_context2.next = 4;
|
|
92
96
|
return (0, _axeHelper.axe)(container);
|
|
93
|
-
case
|
|
97
|
+
case 4:
|
|
94
98
|
results = _context2.sent;
|
|
95
99
|
expect(results).toHaveNoViolations();
|
|
96
|
-
case
|
|
100
|
+
case 6:
|
|
97
101
|
case "end":
|
|
98
102
|
return _context2.stop();
|
|
99
103
|
}
|
|
100
104
|
}, _callee2);
|
|
101
105
|
})));
|
|
102
106
|
it("Should not have basic accessibility issues for file mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
103
|
-
var _render3, container, results;
|
|
107
|
+
var callbackFile, _render3, container, results;
|
|
104
108
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
105
109
|
while (1) switch (_context3.prev = _context3.next) {
|
|
106
110
|
case 0:
|
|
111
|
+
callbackFile = jest.fn();
|
|
107
112
|
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
108
113
|
label: "File input",
|
|
109
114
|
helperText: "Helper Text",
|
|
110
115
|
value: filesExamples,
|
|
111
116
|
buttonLabel: "Button Label",
|
|
112
|
-
dropAreaLabel: "Drop Area",
|
|
113
117
|
margin: "medium",
|
|
114
118
|
mode: "file",
|
|
115
119
|
multiple: true,
|
|
120
|
+
callbackFile: callbackFile,
|
|
116
121
|
minSize: 1000,
|
|
117
122
|
maxSize: 20000,
|
|
118
123
|
showPreview: true
|
|
119
124
|
})), container = _render3.container;
|
|
120
|
-
_context3.next =
|
|
125
|
+
_context3.next = 4;
|
|
121
126
|
return (0, _axeHelper.axe)(container);
|
|
122
|
-
case
|
|
127
|
+
case 4:
|
|
123
128
|
results = _context3.sent;
|
|
124
129
|
expect(results).toHaveNoViolations();
|
|
125
|
-
case
|
|
130
|
+
case 6:
|
|
126
131
|
case "end":
|
|
127
132
|
return _context3.stop();
|
|
128
133
|
}
|
|
129
134
|
}, _callee3);
|
|
130
135
|
})));
|
|
131
136
|
it("Should not have basic accessibility issues for filedrop mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
132
|
-
var _render4, container, results;
|
|
137
|
+
var callbackFile, _render4, container, results;
|
|
133
138
|
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
134
139
|
while (1) switch (_context4.prev = _context4.next) {
|
|
135
140
|
case 0:
|
|
141
|
+
callbackFile = jest.fn();
|
|
136
142
|
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
137
143
|
label: "File input",
|
|
138
144
|
helperText: "Helper Text",
|
|
@@ -142,16 +148,17 @@ describe("FileInput component accessibility tests", function () {
|
|
|
142
148
|
margin: "medium",
|
|
143
149
|
mode: "filedrop",
|
|
144
150
|
multiple: true,
|
|
151
|
+
callbackFile: callbackFile,
|
|
145
152
|
minSize: 1000,
|
|
146
153
|
maxSize: 20000,
|
|
147
154
|
showPreview: true
|
|
148
155
|
})), container = _render4.container;
|
|
149
|
-
_context4.next =
|
|
156
|
+
_context4.next = 4;
|
|
150
157
|
return (0, _axeHelper.axe)(container);
|
|
151
|
-
case
|
|
158
|
+
case 4:
|
|
152
159
|
results = _context4.sent;
|
|
153
160
|
expect(results).toHaveNoViolations();
|
|
154
|
-
case
|
|
161
|
+
case 6:
|
|
155
162
|
case "end":
|
|
156
163
|
return _context4.stop();
|
|
157
164
|
}
|
package/file-input/FileInput.js
CHANGED
|
@@ -15,7 +15,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
15
15
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
17
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
18
|
-
var _uuid = require("uuid");
|
|
19
18
|
var _variables = require("../common/variables");
|
|
20
19
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
21
20
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
@@ -112,9 +111,7 @@ var DxcFileInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref3, re
|
|
|
112
111
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
113
112
|
files = _useState4[0],
|
|
114
113
|
setFiles = _useState4[1];
|
|
115
|
-
var
|
|
116
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
|
|
117
|
-
fileInputId = _useState6[0];
|
|
114
|
+
var fileInputId = "file-input-".concat((0, _react.useId)());
|
|
118
115
|
var colorsTheme = (0, _useTheme["default"])();
|
|
119
116
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
120
117
|
var checkFileSize = function checkFileSize(file) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|