@dxc-technology/halstack-react 6.2.2 → 8.0.0
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.js +7 -8
- package/accordion/types.d.ts +1 -0
- package/accordion-group/types.d.ts +1 -0
- package/box/types.d.ts +1 -0
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +16 -15
- package/checkbox/Checkbox.stories.tsx +79 -59
- package/checkbox/types.d.ts +4 -0
- package/common/variables.js +19 -15
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +77 -222
- package/date-input/DateInput.stories.tsx +30 -17
- package/date-input/DateInput.test.js +411 -138
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +160 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +115 -0
- package/date-input/types.d.ts +53 -0
- package/dialog/types.d.ts +1 -0
- package/dropdown/Dropdown.js +35 -31
- package/dropdown/Dropdown.test.js +18 -24
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +177 -219
- package/file-input/FileInput.stories.tsx +38 -10
- package/file-input/FileInput.test.js +53 -12
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +38 -63
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +1 -1
- package/flex/Flex.js +31 -19
- package/flex/types.d.ts +14 -3
- package/footer/types.d.ts +1 -0
- package/header/types.d.ts +1 -0
- package/link/Link.js +1 -1
- package/number-input/NumberInput.test.js +43 -7
- package/package.json +7 -12
- package/paginator/Paginator.js +2 -2
- package/paginator/Paginator.test.js +1 -1
- package/password-input/PasswordInput.test.js +13 -12
- package/quick-nav/QuickNav.js +11 -12
- package/quick-nav/QuickNav.stories.tsx +97 -19
- package/radio-group/RadioGroup.js +9 -5
- package/radio-group/RadioGroup.test.js +116 -59
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +48 -107
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +23 -41
- package/resultsetTable/types.d.ts +2 -2
- package/select/Select.js +3 -1
- package/select/Select.stories.tsx +2 -5
- package/select/Select.test.js +267 -209
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +5 -4
- package/slider/types.d.ts +4 -0
- package/switch/Switch.d.ts +3 -3
- package/switch/Switch.js +4 -3
- package/switch/types.d.ts +6 -1
- package/table/Table.js +1 -1
- package/table/Table.test.js +1 -1
- package/text-input/TextInput.js +165 -151
- package/text-input/TextInput.test.js +560 -649
- package/text-input/types.d.ts +5 -0
- package/common/RequiredComponent.js +0 -32
|
@@ -2,14 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
|
|
5
13
|
var _react = _interopRequireDefault(require("react"));
|
|
6
14
|
|
|
7
15
|
var _react2 = require("@testing-library/react");
|
|
8
16
|
|
|
9
17
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
18
|
|
|
11
|
-
var
|
|
12
|
-
|
|
19
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
20
|
+
|
|
21
|
+
var _DateInput = _interopRequireDefault(require("./DateInput.tsx"));
|
|
22
|
+
|
|
23
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
24
|
+
global.globalThis = global;
|
|
25
|
+
|
|
26
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
27
|
+
function ResizeObserver(cb) {
|
|
28
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
29
|
+
this.cb = cb;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
(0, _createClass2["default"])(ResizeObserver, [{
|
|
33
|
+
key: "observe",
|
|
34
|
+
value: function observe() {
|
|
35
|
+
this.cb([{
|
|
36
|
+
borderBoxSize: {
|
|
37
|
+
inlineSize: 0,
|
|
38
|
+
blockSize: 0
|
|
39
|
+
}
|
|
40
|
+
}]);
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
key: "unobserve",
|
|
44
|
+
value: function unobserve() {}
|
|
45
|
+
}]);
|
|
46
|
+
return ResizeObserver;
|
|
47
|
+
}();
|
|
48
|
+
|
|
49
|
+
global.DOMRect = {
|
|
50
|
+
fromRect: function fromRect() {
|
|
51
|
+
return {
|
|
52
|
+
top: 0,
|
|
53
|
+
left: 0,
|
|
54
|
+
bottom: 0,
|
|
55
|
+
right: 0,
|
|
56
|
+
width: 0,
|
|
57
|
+
height: 0
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
};
|
|
13
61
|
describe("DateInput component tests", function () {
|
|
14
62
|
test("Renders with correct label, helper text, optional, placeholder and clearable action", function () {
|
|
15
63
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
@@ -55,115 +103,161 @@ describe("DateInput component tests", function () {
|
|
|
55
103
|
getByRole = _render3.getByRole;
|
|
56
104
|
|
|
57
105
|
var input = getByRole("textbox");
|
|
58
|
-
var calendarAction = getByRole("
|
|
59
|
-
var d = new Date(2015, 9, 21);
|
|
60
|
-
var options = {
|
|
61
|
-
weekday: "short",
|
|
62
|
-
month: "short",
|
|
63
|
-
day: "numeric"
|
|
64
|
-
};
|
|
106
|
+
var calendarAction = getByRole("combobox");
|
|
65
107
|
expect(input.value).toBe("21-10-2015");
|
|
66
108
|
|
|
67
109
|
_userEvent["default"].click(calendarAction);
|
|
68
110
|
|
|
69
|
-
expect(getByText(
|
|
70
|
-
|
|
71
|
-
test("Renders with correct format: user typed date but it's invalid, onBlur error", function () {
|
|
72
|
-
var onBlur = jest.fn(function (_ref) {
|
|
73
|
-
var value = _ref.value,
|
|
74
|
-
error = _ref.error;
|
|
75
|
-
expect(value).toBe("10/90/2010");
|
|
76
|
-
expect(error).toBe("Invalid date.");
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
80
|
-
label: "With format MM/dd/yyyy",
|
|
81
|
-
format: "MM/dd/yyyy",
|
|
82
|
-
onBlur: onBlur
|
|
83
|
-
})),
|
|
84
|
-
getByRole = _render4.getByRole;
|
|
85
|
-
|
|
86
|
-
var input = getByRole("textbox");
|
|
87
|
-
|
|
88
|
-
_userEvent["default"].type(input, "10/90/2010");
|
|
89
|
-
|
|
90
|
-
_react2.fireEvent.blur(input);
|
|
91
|
-
});
|
|
92
|
-
test("Renders with correct format: user typed date but it's invalid, onChange error", function () {
|
|
93
|
-
var onChange = jest.fn();
|
|
94
|
-
|
|
95
|
-
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
96
|
-
label: "With format MM/dd/yyyy",
|
|
97
|
-
format: "MM/dd/yyyy",
|
|
98
|
-
onChange: onChange
|
|
99
|
-
})),
|
|
100
|
-
getByRole = _render5.getByRole;
|
|
101
|
-
|
|
102
|
-
var input = getByRole("textbox");
|
|
103
|
-
|
|
104
|
-
_userEvent["default"].type(input, "10/90/2010");
|
|
105
|
-
|
|
106
|
-
expect(onChange).toHaveBeenCalledTimes(10);
|
|
107
|
-
expect(onChange).toHaveBeenCalledWith({
|
|
108
|
-
value: "10/90/2010",
|
|
109
|
-
error: "Invalid date."
|
|
110
|
-
});
|
|
111
|
+
expect(getByText("21").getAttribute("aria-selected")).toBeTruthy();
|
|
112
|
+
expect(getByText("October 2015")).toBeTruthy();
|
|
111
113
|
});
|
|
114
|
+
test("Renders with correct format: user typed date but it's invalid, onBlur error", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
115
|
+
var onBlur, _render4, getByRole, input;
|
|
116
|
+
|
|
117
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
118
|
+
while (1) {
|
|
119
|
+
switch (_context.prev = _context.next) {
|
|
120
|
+
case 0:
|
|
121
|
+
onBlur = jest.fn(function (_ref2) {
|
|
122
|
+
var value = _ref2.value,
|
|
123
|
+
error = _ref2.error;
|
|
124
|
+
expect(value).toBe("10/90/2010");
|
|
125
|
+
expect(error).toBe("Invalid date.");
|
|
126
|
+
});
|
|
127
|
+
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
128
|
+
label: "With format MM/dd/yyyy",
|
|
129
|
+
format: "MM/dd/yyyy",
|
|
130
|
+
onBlur: onBlur
|
|
131
|
+
})), getByRole = _render4.getByRole;
|
|
132
|
+
input = getByRole("textbox");
|
|
133
|
+
|
|
134
|
+
_userEvent["default"].click(input);
|
|
135
|
+
|
|
136
|
+
_context.next = 6;
|
|
137
|
+
return _userEvent["default"].keyboard("10");
|
|
138
|
+
|
|
139
|
+
case 6:
|
|
140
|
+
_context.next = 8;
|
|
141
|
+
return _userEvent["default"].keyboard("/");
|
|
142
|
+
|
|
143
|
+
case 8:
|
|
144
|
+
_context.next = 10;
|
|
145
|
+
return _userEvent["default"].keyboard("90");
|
|
146
|
+
|
|
147
|
+
case 10:
|
|
148
|
+
_context.next = 12;
|
|
149
|
+
return _userEvent["default"].keyboard("/");
|
|
150
|
+
|
|
151
|
+
case 12:
|
|
152
|
+
_context.next = 14;
|
|
153
|
+
return _userEvent["default"].keyboard("2010");
|
|
154
|
+
|
|
155
|
+
case 14:
|
|
156
|
+
_react2.fireEvent.blur(input);
|
|
157
|
+
|
|
158
|
+
case 15:
|
|
159
|
+
case "end":
|
|
160
|
+
return _context.stop();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}, _callee);
|
|
164
|
+
})));
|
|
165
|
+
test("Renders with correct format: user typed date but it's invalid, onChange error", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
166
|
+
var onChange, _render5, getByRole, input;
|
|
167
|
+
|
|
168
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
169
|
+
while (1) {
|
|
170
|
+
switch (_context2.prev = _context2.next) {
|
|
171
|
+
case 0:
|
|
172
|
+
onChange = jest.fn();
|
|
173
|
+
_render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
174
|
+
label: "With format MM/dd/yyyy",
|
|
175
|
+
format: "MM/dd/yyyy",
|
|
176
|
+
onChange: onChange
|
|
177
|
+
})), getByRole = _render5.getByRole;
|
|
178
|
+
input = getByRole("textbox");
|
|
179
|
+
|
|
180
|
+
_userEvent["default"].click(input);
|
|
181
|
+
|
|
182
|
+
_context2.next = 6;
|
|
183
|
+
return _userEvent["default"].keyboard("10");
|
|
184
|
+
|
|
185
|
+
case 6:
|
|
186
|
+
_context2.next = 8;
|
|
187
|
+
return _userEvent["default"].keyboard("/");
|
|
188
|
+
|
|
189
|
+
case 8:
|
|
190
|
+
_context2.next = 10;
|
|
191
|
+
return _userEvent["default"].keyboard("90");
|
|
192
|
+
|
|
193
|
+
case 10:
|
|
194
|
+
_context2.next = 12;
|
|
195
|
+
return _userEvent["default"].keyboard("/");
|
|
196
|
+
|
|
197
|
+
case 12:
|
|
198
|
+
_context2.next = 14;
|
|
199
|
+
return _userEvent["default"].keyboard("2010");
|
|
200
|
+
|
|
201
|
+
case 14:
|
|
202
|
+
expect(onChange).toHaveBeenCalledTimes(10);
|
|
203
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
204
|
+
value: "10/90/2010",
|
|
205
|
+
error: "Invalid date."
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
case 16:
|
|
209
|
+
case "end":
|
|
210
|
+
return _context2.stop();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}, _callee2);
|
|
214
|
+
})));
|
|
112
215
|
test("Calendar renders with correct date: today's date", function () {
|
|
113
216
|
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
114
217
|
getByText = _render6.getByText,
|
|
115
|
-
getByRole = _render6.getByRole
|
|
218
|
+
getByRole = _render6.getByRole,
|
|
219
|
+
getAllByText = _render6.getAllByText;
|
|
116
220
|
|
|
117
|
-
var calendarAction = getByRole("
|
|
118
|
-
var d =
|
|
119
|
-
var options = {
|
|
120
|
-
weekday: "short",
|
|
121
|
-
month: "short",
|
|
122
|
-
day: "numeric"
|
|
123
|
-
};
|
|
221
|
+
var calendarAction = getByRole("combobox");
|
|
222
|
+
var d = (0, _dayjs["default"])();
|
|
124
223
|
|
|
125
224
|
_userEvent["default"].click(calendarAction);
|
|
126
225
|
|
|
127
|
-
expect(
|
|
226
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
|
|
227
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
128
228
|
});
|
|
129
229
|
test("Calendar renders with correct date: value prop", function () {
|
|
130
230
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
131
231
|
value: "20-10-2019"
|
|
132
232
|
})),
|
|
133
233
|
getByText = _render7.getByText,
|
|
134
|
-
getByRole = _render7.getByRole
|
|
234
|
+
getByRole = _render7.getByRole,
|
|
235
|
+
getAllByText = _render7.getAllByText;
|
|
135
236
|
|
|
136
|
-
var calendarAction = getByRole("
|
|
137
|
-
var d =
|
|
138
|
-
var options = {
|
|
139
|
-
weekday: "short",
|
|
140
|
-
month: "short",
|
|
141
|
-
day: "numeric"
|
|
142
|
-
};
|
|
237
|
+
var calendarAction = getByRole("combobox");
|
|
238
|
+
var d = (0, _dayjs["default"])("2019-10-20");
|
|
143
239
|
|
|
144
240
|
_userEvent["default"].click(calendarAction);
|
|
145
241
|
|
|
146
|
-
expect(
|
|
242
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
|
|
243
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
147
244
|
});
|
|
148
245
|
test("Calendar renders with correct date: user typed value", function () {
|
|
149
246
|
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
150
247
|
getByText = _render8.getByText,
|
|
151
|
-
getByRole = _render8.getByRole
|
|
248
|
+
getByRole = _render8.getByRole,
|
|
249
|
+
getAllByText = _render8.getAllByText;
|
|
152
250
|
|
|
153
|
-
var calendarAction = getByRole("
|
|
154
|
-
var d =
|
|
155
|
-
var options = {
|
|
156
|
-
weekday: "short",
|
|
157
|
-
month: "short",
|
|
158
|
-
day: "numeric"
|
|
159
|
-
};
|
|
251
|
+
var calendarAction = getByRole("combobox");
|
|
252
|
+
var d = (0, _dayjs["default"])("2010-1-1");
|
|
160
253
|
var input = getByRole("textbox");
|
|
161
254
|
|
|
162
255
|
_userEvent["default"].type(input, "01-01-2010");
|
|
163
256
|
|
|
164
257
|
_userEvent["default"].click(calendarAction);
|
|
165
258
|
|
|
166
|
-
expect(
|
|
259
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
|
|
260
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
167
261
|
});
|
|
168
262
|
test("Calendar renders with correct date: invalid date, renders with today's date", function () {
|
|
169
263
|
var onBlur = jest.fn();
|
|
@@ -172,15 +266,11 @@ describe("DateInput component tests", function () {
|
|
|
172
266
|
onBlur: onBlur
|
|
173
267
|
})),
|
|
174
268
|
getByText = _render9.getByText,
|
|
175
|
-
getByRole = _render9.getByRole
|
|
269
|
+
getByRole = _render9.getByRole,
|
|
270
|
+
getAllByText = _render9.getAllByText;
|
|
176
271
|
|
|
177
|
-
var calendarAction = getByRole("
|
|
178
|
-
var d =
|
|
179
|
-
var options = {
|
|
180
|
-
weekday: "short",
|
|
181
|
-
month: "short",
|
|
182
|
-
day: "numeric"
|
|
183
|
-
};
|
|
272
|
+
var calendarAction = getByRole("combobox");
|
|
273
|
+
var d = (0, _dayjs["default"])();
|
|
184
274
|
var input = getByRole("textbox");
|
|
185
275
|
|
|
186
276
|
_userEvent["default"].type(input, "01-01-xxxx");
|
|
@@ -195,100 +285,267 @@ describe("DateInput component tests", function () {
|
|
|
195
285
|
|
|
196
286
|
_userEvent["default"].click(calendarAction);
|
|
197
287
|
|
|
198
|
-
expect(
|
|
288
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
|
|
289
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
199
290
|
});
|
|
200
291
|
test("Selecting a date from the calendar with an specific format", function () {
|
|
201
292
|
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
202
293
|
label: "With format M-dd-yyyy",
|
|
203
294
|
format: "M-dd-yyyy"
|
|
204
295
|
})),
|
|
296
|
+
getAllByText = _render10.getAllByText,
|
|
205
297
|
getByText = _render10.getByText,
|
|
206
298
|
getByRole = _render10.getByRole;
|
|
207
299
|
|
|
208
300
|
var input = getByRole("textbox");
|
|
209
|
-
var calendarAction = getByRole("
|
|
301
|
+
var calendarAction = getByRole("combobox");
|
|
210
302
|
|
|
211
303
|
_userEvent["default"].click(calendarAction);
|
|
212
304
|
|
|
213
|
-
var dayButton =
|
|
305
|
+
var dayButton = getAllByText("10")[0].closest("button");
|
|
214
306
|
|
|
215
307
|
_react2.fireEvent.click(dayButton);
|
|
216
308
|
|
|
217
|
-
var d =
|
|
218
|
-
d.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
month: "short",
|
|
222
|
-
day: "numeric"
|
|
223
|
-
};
|
|
224
|
-
expect(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
|
|
309
|
+
var d = (0, _dayjs["default"])();
|
|
310
|
+
d = d.set("date", 10);
|
|
311
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
|
|
312
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
225
313
|
|
|
226
314
|
_react2.fireEvent.keyDown(document, {
|
|
227
|
-
key: "
|
|
228
|
-
code: "
|
|
315
|
+
key: "Escape",
|
|
316
|
+
code: "Escape",
|
|
229
317
|
keyCode: 27,
|
|
230
318
|
charCode: 27
|
|
231
319
|
});
|
|
232
320
|
|
|
233
|
-
expect(input.value).toBe(
|
|
321
|
+
expect(input.value).toBe(d.format("M-DD-YYYY"));
|
|
234
322
|
});
|
|
235
|
-
test("Selecting a date from the calendar
|
|
236
|
-
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"],
|
|
323
|
+
test("Selecting a date from the calendar from another month", function () {
|
|
324
|
+
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
325
|
+
format: "dd-mm-yyyy",
|
|
326
|
+
defaultValue: "10-08-2021"
|
|
327
|
+
})),
|
|
328
|
+
getAllByText = _render11.getAllByText,
|
|
329
|
+
getByText = _render11.getByText,
|
|
237
330
|
getByRole = _render11.getByRole;
|
|
238
331
|
|
|
239
|
-
var calendarAction = getByRole("button");
|
|
240
332
|
var input = getByRole("textbox");
|
|
241
|
-
|
|
242
|
-
_userEvent["default"].type(input, "01-01-2010");
|
|
333
|
+
var calendarAction = getByRole("combobox");
|
|
243
334
|
|
|
244
335
|
_userEvent["default"].click(calendarAction);
|
|
245
336
|
|
|
337
|
+
var dayButton = getAllByText("31")[0].closest("button");
|
|
338
|
+
|
|
339
|
+
_react2.fireEvent.click(dayButton);
|
|
340
|
+
|
|
341
|
+
var d = (0, _dayjs["default"])("10-08-2021", "DD-MM-YYYY", true);
|
|
342
|
+
d = d.set("date", 31).set("month", 6);
|
|
343
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
|
|
344
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
345
|
+
|
|
246
346
|
_react2.fireEvent.keyDown(document, {
|
|
247
|
-
key: "
|
|
248
|
-
code: "
|
|
249
|
-
keyCode:
|
|
250
|
-
charCode:
|
|
347
|
+
key: "Escape",
|
|
348
|
+
code: "Escape",
|
|
349
|
+
keyCode: 27,
|
|
350
|
+
charCode: 27
|
|
251
351
|
});
|
|
252
352
|
|
|
353
|
+
expect(input.value).toBe(d.format("DD-MM-YYYY"));
|
|
354
|
+
});
|
|
355
|
+
test("Selecting a year from the calendar year picker", function () {
|
|
356
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
357
|
+
format: "dd-mm-yyyy",
|
|
358
|
+
defaultValue: "10-08-2021"
|
|
359
|
+
})),
|
|
360
|
+
getByText = _render12.getByText,
|
|
361
|
+
getByRole = _render12.getByRole;
|
|
362
|
+
|
|
363
|
+
var input = getByRole("textbox");
|
|
364
|
+
var calendarAction = getByRole("combobox");
|
|
365
|
+
|
|
366
|
+
_userEvent["default"].click(calendarAction);
|
|
367
|
+
|
|
368
|
+
var d = (0, _dayjs["default"])("10-08-2021", "DD-MM-YYYY", true);
|
|
369
|
+
|
|
370
|
+
_userEvent["default"].click(getByText(d.format("MMMM YYYY")));
|
|
371
|
+
|
|
372
|
+
expect(getByText("2024")).toBeTruthy();
|
|
373
|
+
|
|
374
|
+
_userEvent["default"].click(getByText("2024"));
|
|
375
|
+
|
|
376
|
+
_userEvent["default"].click(getByText(d.set("year", 2024).format("MMMM YYYY")));
|
|
377
|
+
|
|
253
378
|
_react2.fireEvent.keyDown(document, {
|
|
254
|
-
key: "
|
|
255
|
-
code: "
|
|
256
|
-
keyCode:
|
|
257
|
-
charCode:
|
|
379
|
+
key: "Escape",
|
|
380
|
+
code: "Escape",
|
|
381
|
+
keyCode: 27,
|
|
382
|
+
charCode: 27
|
|
258
383
|
});
|
|
259
384
|
|
|
260
|
-
|
|
385
|
+
expect(input.value).toBe(d.format("DD-MM-YYYY"));
|
|
386
|
+
});
|
|
387
|
+
test("Selecting a date from the calendar (using keyboard presses)", function () {
|
|
388
|
+
var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
389
|
+
getByRole = _render13.getByRole,
|
|
390
|
+
getAllByText = _render13.getAllByText,
|
|
391
|
+
getByText = _render13.getByText;
|
|
392
|
+
|
|
393
|
+
var calendarAction = getByRole("combobox");
|
|
394
|
+
var input = getByRole("textbox");
|
|
395
|
+
|
|
396
|
+
_userEvent["default"].type(input, "01-01-2010");
|
|
397
|
+
|
|
398
|
+
expect(input.value).toBe("01-01-2010");
|
|
399
|
+
|
|
400
|
+
_userEvent["default"].click(calendarAction);
|
|
401
|
+
|
|
402
|
+
expect(document.activeElement === getAllByText("1")[0].closest("button")).toBeTruthy();
|
|
403
|
+
|
|
404
|
+
_react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
|
|
261
405
|
key: "ArrowRight",
|
|
262
406
|
code: "ArrowRight",
|
|
263
407
|
keyCode: 39,
|
|
264
408
|
charCode: 39
|
|
265
409
|
});
|
|
266
410
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
411
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
412
|
+
|
|
413
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
414
|
+
key: "PageUp",
|
|
415
|
+
code: "PageUp",
|
|
416
|
+
keyCode: 33,
|
|
417
|
+
charCode: 33
|
|
418
|
+
});
|
|
419
|
+
|
|
420
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
421
|
+
expect(getByText("December 2009")).toBeTruthy();
|
|
422
|
+
|
|
423
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
424
|
+
key: "PageDown",
|
|
425
|
+
code: "PageDown",
|
|
426
|
+
keyCode: 34,
|
|
427
|
+
charCode: 34
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
431
|
+
expect(getByText("January 2010")).toBeTruthy();
|
|
432
|
+
|
|
433
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
434
|
+
key: "PageDown",
|
|
435
|
+
code: "PageDown",
|
|
436
|
+
keyCode: 34,
|
|
437
|
+
charCode: 34,
|
|
438
|
+
shiftKey: true
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
expect(getByText("January 2011")).toBeTruthy();
|
|
442
|
+
|
|
443
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
444
|
+
key: "PageUp",
|
|
445
|
+
code: "PageUp",
|
|
446
|
+
keyCode: 33,
|
|
447
|
+
charCode: 33,
|
|
448
|
+
shiftKey: true
|
|
449
|
+
});
|
|
450
|
+
|
|
451
|
+
expect(getByText("January 2010")).toBeTruthy();
|
|
452
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
453
|
+
|
|
454
|
+
_react2.fireEvent.click(getAllByText("2")[0].closest("button"), {
|
|
455
|
+
key: " ",
|
|
456
|
+
code: "Space",
|
|
457
|
+
keyCode: 32,
|
|
458
|
+
charCode: 32
|
|
272
459
|
});
|
|
273
460
|
|
|
461
|
+
expect(getAllByText("2")[0].closest("button").getAttribute("aria-selected")).toBeTruthy();
|
|
462
|
+
|
|
274
463
|
_react2.fireEvent.keyDown(document, {
|
|
275
|
-
key: "
|
|
276
|
-
code: "
|
|
464
|
+
key: "Escape",
|
|
465
|
+
code: "Escape",
|
|
277
466
|
keyCode: 27,
|
|
278
467
|
charCode: 27
|
|
279
468
|
});
|
|
280
469
|
|
|
281
|
-
expect(input.value).toBe("
|
|
470
|
+
expect(input.value).toBe("02-01-2010");
|
|
471
|
+
});
|
|
472
|
+
test("Selecting a date from the calendar (using keyboard presses) part II", function () {
|
|
473
|
+
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
474
|
+
getByRole = _render14.getByRole,
|
|
475
|
+
getAllByText = _render14.getAllByText;
|
|
476
|
+
|
|
477
|
+
var calendarAction = getByRole("combobox");
|
|
478
|
+
var input = getByRole("textbox");
|
|
479
|
+
|
|
480
|
+
_userEvent["default"].type(input, "01-01-2010");
|
|
481
|
+
|
|
482
|
+
expect(input.value).toBe("01-01-2010");
|
|
483
|
+
|
|
484
|
+
_userEvent["default"].click(calendarAction);
|
|
485
|
+
|
|
486
|
+
expect(document.activeElement === getAllByText("1")[0].closest("button")).toBeTruthy();
|
|
487
|
+
|
|
488
|
+
_react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
|
|
489
|
+
key: "ArrowDown",
|
|
490
|
+
code: "ArrowDown",
|
|
491
|
+
keyCode: 40,
|
|
492
|
+
charCode: 40
|
|
493
|
+
});
|
|
494
|
+
|
|
495
|
+
expect(document.activeElement === getAllByText("8")[0].closest("button")).toBeTruthy();
|
|
496
|
+
|
|
497
|
+
_react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
|
|
498
|
+
key: "ArrowDown",
|
|
499
|
+
code: "ArrowDown",
|
|
500
|
+
keyCode: 40,
|
|
501
|
+
charCode: 40
|
|
502
|
+
});
|
|
503
|
+
|
|
504
|
+
expect(document.activeElement === getAllByText("15")[0].closest("button")).toBeTruthy();
|
|
505
|
+
|
|
506
|
+
_react2.fireEvent.keyDown(getAllByText("15")[0].closest("button"), {
|
|
507
|
+
key: "ArrowUp",
|
|
508
|
+
code: "ArrowUp",
|
|
509
|
+
keyCode: 38,
|
|
510
|
+
charCode: 38
|
|
511
|
+
});
|
|
512
|
+
|
|
513
|
+
expect(document.activeElement === getAllByText("8")[0].closest("button")).toBeTruthy();
|
|
514
|
+
|
|
515
|
+
_react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
|
|
516
|
+
key: "End",
|
|
517
|
+
code: "End",
|
|
518
|
+
keyCode: 35,
|
|
519
|
+
charCode: 35
|
|
520
|
+
});
|
|
521
|
+
|
|
522
|
+
expect(document.activeElement === getAllByText("10")[0].closest("button")).toBeTruthy();
|
|
523
|
+
|
|
524
|
+
_react2.fireEvent.keyDown(getAllByText("10")[0].closest("button"), {
|
|
525
|
+
key: "Home",
|
|
526
|
+
code: "Home",
|
|
527
|
+
keyCode: 36,
|
|
528
|
+
charCode: 36
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
_react2.fireEvent.keyDown(getAllByText("10")[0].closest("button"), {
|
|
532
|
+
key: " ",
|
|
533
|
+
code: "Space",
|
|
534
|
+
keyCode: 32,
|
|
535
|
+
charCode: 32
|
|
536
|
+
});
|
|
537
|
+
|
|
538
|
+
expect(input.value).toBe("10-01-2010");
|
|
282
539
|
});
|
|
283
540
|
test("onChange & onBlur functions are called correctly", function () {
|
|
284
541
|
var onBlur = jest.fn();
|
|
285
542
|
var onChange = jest.fn();
|
|
286
543
|
|
|
287
|
-
var
|
|
544
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
288
545
|
onChange: onChange,
|
|
289
546
|
onBlur: onBlur
|
|
290
547
|
})),
|
|
291
|
-
getByRole =
|
|
548
|
+
getByRole = _render15.getByRole;
|
|
292
549
|
|
|
293
550
|
var input = getByRole("textbox");
|
|
294
551
|
var d = new Date(2011, 9, 10);
|
|
@@ -314,11 +571,11 @@ describe("DateInput component tests", function () {
|
|
|
314
571
|
var onBlur = jest.fn();
|
|
315
572
|
var onChange = jest.fn();
|
|
316
573
|
|
|
317
|
-
var
|
|
574
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
318
575
|
onChange: onChange,
|
|
319
576
|
onBlur: onBlur
|
|
320
577
|
})),
|
|
321
|
-
getByRole =
|
|
578
|
+
getByRole = _render16.getByRole;
|
|
322
579
|
|
|
323
580
|
var input = getByRole("textbox");
|
|
324
581
|
|
|
@@ -342,10 +599,10 @@ describe("DateInput component tests", function () {
|
|
|
342
599
|
test("onBlur function removes the error when it is fixed", function () {
|
|
343
600
|
var onBlur = jest.fn();
|
|
344
601
|
|
|
345
|
-
var
|
|
602
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
346
603
|
onBlur: onBlur
|
|
347
604
|
})),
|
|
348
|
-
getByRole =
|
|
605
|
+
getByRole = _render17.getByRole;
|
|
349
606
|
|
|
350
607
|
var input = getByRole("textbox");
|
|
351
608
|
var d = new Date(2002, 1, 20);
|
|
@@ -379,11 +636,11 @@ describe("DateInput component tests", function () {
|
|
|
379
636
|
test("onBlur function removes the error when the input is empty", function () {
|
|
380
637
|
var onBlur = jest.fn();
|
|
381
638
|
|
|
382
|
-
var
|
|
639
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
383
640
|
onBlur: onBlur,
|
|
384
641
|
optional: true
|
|
385
642
|
})),
|
|
386
|
-
getByRole =
|
|
643
|
+
getByRole = _render18.getByRole;
|
|
387
644
|
|
|
388
645
|
var input = getByRole("textbox");
|
|
389
646
|
|
|
@@ -412,11 +669,11 @@ describe("DateInput component tests", function () {
|
|
|
412
669
|
var onBlur = jest.fn();
|
|
413
670
|
var onChange = jest.fn();
|
|
414
671
|
|
|
415
|
-
var
|
|
672
|
+
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
416
673
|
onBlur: onBlur,
|
|
417
674
|
onChange: onChange
|
|
418
675
|
})),
|
|
419
|
-
getByRole =
|
|
676
|
+
getByRole = _render19.getByRole;
|
|
420
677
|
|
|
421
678
|
var date = getByRole("textbox");
|
|
422
679
|
|
|
@@ -440,11 +697,11 @@ describe("DateInput component tests", function () {
|
|
|
440
697
|
});
|
|
441
698
|
});
|
|
442
699
|
test("Disabled date input (calendar action must be shown but not clickable)", function () {
|
|
443
|
-
var
|
|
700
|
+
var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
444
701
|
disabled: true
|
|
445
702
|
})),
|
|
446
|
-
getByRole =
|
|
447
|
-
queryByText =
|
|
703
|
+
getByRole = _render20.getByRole,
|
|
704
|
+
queryByText = _render20.queryByText;
|
|
448
705
|
|
|
449
706
|
var calendarAction = getByRole("button");
|
|
450
707
|
var d = new Date();
|
|
@@ -460,20 +717,36 @@ describe("DateInput component tests", function () {
|
|
|
460
717
|
expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
|
|
461
718
|
});
|
|
462
719
|
test("Input has correct accesibility attributes", function () {
|
|
463
|
-
var
|
|
720
|
+
var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
464
721
|
label: "Date input label"
|
|
465
722
|
})),
|
|
466
|
-
getByRole =
|
|
723
|
+
getByRole = _render21.getByRole;
|
|
467
724
|
|
|
468
725
|
var input = getByRole("textbox");
|
|
469
726
|
expect(input.getAttribute("aria-autocomplete")).toBeNull();
|
|
470
727
|
expect(input.getAttribute("aria-controls")).toBeNull();
|
|
471
728
|
expect(input.getAttribute("aria-expanded")).toBeNull();
|
|
472
|
-
var calendarAction = getByRole("
|
|
729
|
+
var calendarAction = getByRole("combobox");
|
|
730
|
+
expect(calendarAction.getAttribute("aria-autocomplete")).toBeNull();
|
|
731
|
+
expect(calendarAction.getAttribute("aria-controls")).toBeTruthy();
|
|
732
|
+
expect(calendarAction.getAttribute("aria-describedby")).toBeTruthy();
|
|
733
|
+
expect(calendarAction.getAttribute("aria-describedby") === calendarAction.getAttribute("aria-controls")).toBeTruthy();
|
|
734
|
+
expect(calendarAction.getAttribute("aria-expanded")).toBe("false");
|
|
473
735
|
|
|
474
736
|
_userEvent["default"].click(calendarAction);
|
|
475
737
|
|
|
476
738
|
var datePicker = getByRole("dialog");
|
|
477
739
|
expect(datePicker.getAttribute("aria-modal")).toBe("true");
|
|
740
|
+
expect(calendarAction.getAttribute("aria-expanded")).toBe("true");
|
|
741
|
+
expect(document.getElementById(calendarAction.getAttribute("aria-describedby"))).toBeTruthy();
|
|
742
|
+
|
|
743
|
+
_react2.fireEvent.keyDown(document, {
|
|
744
|
+
key: "Escape",
|
|
745
|
+
code: "Escape",
|
|
746
|
+
keyCode: 27,
|
|
747
|
+
charCode: 27
|
|
748
|
+
});
|
|
749
|
+
|
|
750
|
+
expect(calendarAction.getAttribute("aria-expanded")).toBe("false");
|
|
478
751
|
});
|
|
479
752
|
});
|