@instructure/ui-date-input 10.16.1-pr-snapshot-1744893671793 → 10.16.1-snapshot-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/CHANGELOG.md +1 -1
- package/es/DateInput/__new-tests__/DateInput.test.js +129 -167
- package/es/DateInput/index.js +58 -71
- package/es/DateInput2/__new-tests__/DateInput2.test.js +19 -20
- package/es/DateInput2/index.js +35 -37
- package/lib/DateInput/__new-tests__/DateInput.test.js +191 -228
- package/lib/DateInput/index.js +58 -70
- package/lib/DateInput2/__new-tests__/DateInput2.test.js +20 -20
- package/lib/DateInput2/index.js +35 -37
- package/package.json +20 -20
- package/src/DateInput/__new-tests__/DateInput.test.tsx +1 -1
- package/src/DateInput/index.tsx +3 -2
- package/src/DateInput/props.ts +1 -1
- package/src/DateInput2/__new-tests__/DateInput2.test.tsx +1 -1
- package/src/DateInput2/index.tsx +2 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/types/DateInput/index.d.ts +17 -15
- package/types/DateInput/index.d.ts.map +1 -1
- package/types/DateInput/props.d.ts +1 -1
- package/types/DateInput/props.d.ts.map +1 -1
- package/types/DateInput2/index.d.ts +2 -1
- package/types/DateInput2/index.d.ts.map +1 -1
@@ -1,7 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
4
|
-
var _react = require("
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
5
|
+
var _react2 = require("@testing-library/react");
|
5
6
|
var _vitest = require("vitest");
|
6
7
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
7
8
|
require("@testing-library/jest-dom");
|
@@ -10,7 +11,6 @@ var _runAxeCheck = require("@instructure/ui-axe-check/lib/runAxeCheck.js");
|
|
10
11
|
var _Calendar = require("@instructure/ui-calendar/lib/Calendar");
|
11
12
|
var _DateInput = _interopRequireDefault(require("../__examples__/DateInput.examples"));
|
12
13
|
var _index = require("../index");
|
13
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
14
14
|
var _Calendar$Day, _button, _button2, _Calendar$Day2, _Calendar$Day3;
|
15
15
|
/*
|
16
16
|
* The MIT License (MIT)
|
@@ -42,11 +42,11 @@ describe('<DateInput />', () => {
|
|
42
42
|
const days = [];
|
43
43
|
const date = new Date('2019-07-28');
|
44
44
|
while (days.length < count) {
|
45
|
-
days.push(
|
45
|
+
days.push(/*#__PURE__*/_react.default.createElement(_Calendar.Calendar.Day, {
|
46
|
+
key: date.toISOString(),
|
46
47
|
date: date.toISOString(),
|
47
|
-
label: date.toISOString()
|
48
|
-
|
49
|
-
}, date.toISOString()));
|
48
|
+
label: date.toISOString()
|
49
|
+
}, date.getDate()));
|
50
50
|
date.setDate(date.getDate() + 1);
|
51
51
|
}
|
52
52
|
return days;
|
@@ -63,12 +63,11 @@ describe('<DateInput />', () => {
|
|
63
63
|
consoleErrorMock.mockRestore();
|
64
64
|
});
|
65
65
|
it('should render an input and a calendar', async () => {
|
66
|
-
const _render = (0,
|
66
|
+
const _render = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
67
67
|
renderLabel: "date-input",
|
68
68
|
renderWeekdayLabels: weekdayLabels,
|
69
|
-
isShowingCalendar: true
|
70
|
-
|
71
|
-
})),
|
69
|
+
isShowingCalendar: true
|
70
|
+
}, generateDays())),
|
72
71
|
container = _render.container,
|
73
72
|
findByRole = _render.findByRole;
|
74
73
|
const dateInput = container.querySelector('input');
|
@@ -77,7 +76,7 @@ describe('<DateInput />', () => {
|
|
77
76
|
await _userEvent.default.click(dateInput);
|
78
77
|
const calendarTable = await findByRole('listbox');
|
79
78
|
const calendarWrapper = await document.querySelector('[id^="Selectable_"][id$="-list"]');
|
80
|
-
await (0,
|
79
|
+
await (0, _react2.waitFor)(() => {
|
81
80
|
expect(calendarWrapper).toBeInTheDocument();
|
82
81
|
expect(calendarTable).toBeInTheDocument();
|
83
82
|
});
|
@@ -85,188 +84,173 @@ describe('<DateInput />', () => {
|
|
85
84
|
describe('input', () => {
|
86
85
|
it('should render a label', () => {
|
87
86
|
const labelText = 'label text';
|
88
|
-
(0,
|
87
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
89
88
|
renderLabel: labelText,
|
90
|
-
renderWeekdayLabels: weekdayLabels
|
91
|
-
|
92
|
-
|
93
|
-
const dateInput = _react.screen.getByLabelText('label text');
|
89
|
+
renderWeekdayLabels: weekdayLabels
|
90
|
+
}, generateDays()));
|
91
|
+
const dateInput = _react2.screen.getByLabelText('label text');
|
94
92
|
expect(dateInput).toBeInTheDocument();
|
95
93
|
});
|
96
94
|
it('should set value', () => {
|
97
95
|
const value = 'January 5';
|
98
|
-
(0,
|
96
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
99
97
|
renderLabel: "Choose date",
|
100
98
|
value: value,
|
101
99
|
onChange: _vitest.vi.fn(),
|
102
|
-
renderWeekdayLabels: weekdayLabels
|
103
|
-
|
104
|
-
|
105
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
100
|
+
renderWeekdayLabels: weekdayLabels
|
101
|
+
}, generateDays()));
|
102
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
106
103
|
expect(dateInput).toHaveValue(value);
|
107
104
|
});
|
108
105
|
it('should call onChange with the updated value', async () => {
|
109
106
|
const onChange = _vitest.vi.fn();
|
110
107
|
const value = 'May 18, 2022';
|
111
|
-
(0,
|
108
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
112
109
|
renderLabel: "Choose date",
|
113
110
|
renderWeekdayLabels: weekdayLabels,
|
114
|
-
onChange: onChange
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
_react.fireEvent.change(dateInput, {
|
111
|
+
onChange: onChange
|
112
|
+
}, generateDays()));
|
113
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
114
|
+
_react2.fireEvent.change(dateInput, {
|
119
115
|
target: {
|
120
116
|
value: value
|
121
117
|
}
|
122
118
|
});
|
123
|
-
|
119
|
+
_react2.fireEvent.keyDown(dateInput, {
|
124
120
|
key: 'Enter',
|
125
121
|
code: 'Enter'
|
126
122
|
});
|
127
|
-
|
128
|
-
await (0,
|
123
|
+
_react2.fireEvent.blur(dateInput);
|
124
|
+
await (0, _react2.waitFor)(() => {
|
129
125
|
expect(onChange).toHaveBeenCalledTimes(1);
|
130
126
|
expect(onChange.mock.calls[0][1].value).toEqual(expect.stringContaining(value));
|
131
127
|
});
|
132
128
|
});
|
133
129
|
it('should call onBlur', () => {
|
134
130
|
const onBlur = _vitest.vi.fn();
|
135
|
-
(0,
|
131
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
136
132
|
renderLabel: "Choose date",
|
137
133
|
renderWeekdayLabels: weekdayLabels,
|
138
|
-
onBlur: onBlur
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
_react.fireEvent.blur(dateInput);
|
134
|
+
onBlur: onBlur
|
135
|
+
}, generateDays()));
|
136
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
137
|
+
_react2.fireEvent.blur(dateInput);
|
143
138
|
expect(onBlur).toHaveBeenCalledTimes(1);
|
144
139
|
});
|
145
140
|
it('should correctly set interaction type', async () => {
|
146
|
-
const _render2 = (0,
|
141
|
+
const _render2 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
147
142
|
renderLabel: "Choose date",
|
148
143
|
renderWeekdayLabels: weekdayLabels,
|
149
|
-
interaction: "disabled"
|
150
|
-
|
151
|
-
})),
|
144
|
+
interaction: "disabled"
|
145
|
+
}, generateDays())),
|
152
146
|
rerender = _render2.rerender;
|
153
|
-
const dateInput =
|
147
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
154
148
|
expect(dateInput).toHaveAttribute('disabled');
|
155
|
-
rerender(
|
149
|
+
rerender(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
156
150
|
renderLabel: "Choose date",
|
157
151
|
renderWeekdayLabels: weekdayLabels,
|
158
|
-
interaction: "readonly"
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
await (0, _react.waitFor)(() => {
|
152
|
+
interaction: "readonly"
|
153
|
+
}, generateDays()));
|
154
|
+
const dateInputAfterUpdate = _react2.screen.getByLabelText('Choose date');
|
155
|
+
await (0, _react2.waitFor)(() => {
|
163
156
|
expect(dateInputAfterUpdate).toHaveAttribute('readonly');
|
164
157
|
});
|
165
158
|
});
|
166
159
|
it('should correctly set disabled', () => {
|
167
|
-
(0,
|
160
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
168
161
|
renderLabel: "Choose date",
|
169
162
|
renderWeekdayLabels: weekdayLabels,
|
170
|
-
disabled: true
|
171
|
-
|
172
|
-
|
173
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
163
|
+
disabled: true
|
164
|
+
}, generateDays()));
|
165
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
174
166
|
expect(dateInput).toHaveAttribute('disabled');
|
175
167
|
});
|
176
168
|
it('should correctly set readOnly', () => {
|
177
|
-
(0,
|
169
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
178
170
|
renderLabel: "Choose date",
|
179
171
|
renderWeekdayLabels: weekdayLabels,
|
180
|
-
readOnly: true
|
181
|
-
|
182
|
-
|
183
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
172
|
+
readOnly: true
|
173
|
+
}, generateDays()));
|
174
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
184
175
|
expect(dateInput).toHaveAttribute('readOnly');
|
185
176
|
});
|
186
177
|
it('should set placeholder', () => {
|
187
178
|
const placeholder = 'Start typing to choose a date';
|
188
|
-
(0,
|
179
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
189
180
|
renderLabel: "Choose date",
|
190
181
|
renderWeekdayLabels: weekdayLabels,
|
191
|
-
placeholder: placeholder
|
192
|
-
|
193
|
-
|
194
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
182
|
+
placeholder: placeholder
|
183
|
+
}, generateDays()));
|
184
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
195
185
|
expect(dateInput).toHaveAttribute('placeholder', placeholder);
|
196
186
|
});
|
197
187
|
it('should be requireable', () => {
|
198
|
-
(0,
|
188
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
199
189
|
renderLabel: "Choose date",
|
200
190
|
renderWeekdayLabels: weekdayLabels,
|
201
|
-
isRequired: true
|
202
|
-
|
203
|
-
|
204
|
-
const dateInput = _react.screen.getByLabelText('Choose date *');
|
191
|
+
isRequired: true
|
192
|
+
}, generateDays()));
|
193
|
+
const dateInput = _react2.screen.getByLabelText('Choose date *');
|
205
194
|
expect(dateInput).toHaveAttribute('required');
|
206
195
|
});
|
207
196
|
it('should provide inputRef', () => {
|
208
197
|
const inputRef = _vitest.vi.fn();
|
209
|
-
(0,
|
198
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
210
199
|
renderLabel: "Choose date",
|
211
200
|
renderWeekdayLabels: weekdayLabels,
|
212
|
-
inputRef: inputRef
|
213
|
-
|
214
|
-
|
215
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
201
|
+
inputRef: inputRef
|
202
|
+
}, generateDays()));
|
203
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
216
204
|
expect(inputRef).toHaveBeenCalledWith(dateInput);
|
217
205
|
});
|
218
206
|
it('should render messages', () => {
|
219
207
|
const text = 'The selected date is invalid';
|
220
|
-
const _render3 = (0,
|
208
|
+
const _render3 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
221
209
|
renderLabel: "Choose date",
|
222
210
|
renderWeekdayLabels: weekdayLabels,
|
223
211
|
messages: [{
|
224
212
|
type: 'error',
|
225
213
|
text
|
226
|
-
}]
|
227
|
-
|
228
|
-
})),
|
214
|
+
}]
|
215
|
+
}, generateDays())),
|
229
216
|
container = _render3.container;
|
230
217
|
expect(container).toHaveTextContent(text);
|
231
218
|
});
|
232
219
|
it('should allow custom props to pass through', () => {
|
233
|
-
(0,
|
220
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
234
221
|
renderLabel: "Choose date",
|
235
222
|
renderWeekdayLabels: weekdayLabels,
|
236
223
|
"data-custom-attr": "custom value",
|
237
|
-
name: "my name"
|
238
|
-
|
239
|
-
|
240
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
224
|
+
name: "my name"
|
225
|
+
}, generateDays()));
|
226
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
241
227
|
expect(dateInput).toHaveAttribute('data-custom-attr', 'custom value');
|
242
228
|
expect(dateInput).toHaveAttribute('name', 'my name');
|
243
229
|
});
|
244
230
|
});
|
245
231
|
describe('Calendar', () => {
|
246
232
|
it('should show calendar when `isShowingCalendar` is set', async () => {
|
247
|
-
const _render4 = (0,
|
233
|
+
const _render4 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
248
234
|
renderLabel: "Choose date",
|
249
|
-
renderWeekdayLabels: weekdayLabels
|
250
|
-
|
251
|
-
})),
|
235
|
+
renderWeekdayLabels: weekdayLabels
|
236
|
+
}, generateDays())),
|
252
237
|
rerender = _render4.rerender,
|
253
238
|
queryByRole = _render4.queryByRole;
|
254
|
-
const dateInput =
|
239
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
255
240
|
const calendarTable = await queryByRole('listbox');
|
256
241
|
const calendarWrapper = await document.querySelector('[id^="Selectable_"][id$="-list"]');
|
257
242
|
expect(dateInput).toBeInTheDocument();
|
258
243
|
expect(calendarTable).not.toBeInTheDocument();
|
259
244
|
expect(calendarWrapper).not.toBeInTheDocument();
|
260
|
-
rerender(
|
245
|
+
rerender(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
261
246
|
renderLabel: "Choose date",
|
262
247
|
renderWeekdayLabels: weekdayLabels,
|
263
|
-
isShowingCalendar: true
|
264
|
-
|
265
|
-
|
266
|
-
const dateInputAfterUpdate = _react.screen.getByLabelText('Choose date');
|
248
|
+
isShowingCalendar: true
|
249
|
+
}, generateDays()));
|
250
|
+
const dateInputAfterUpdate = _react2.screen.getByLabelText('Choose date');
|
267
251
|
const calendarTableAfterUpdate = await queryByRole('listbox');
|
268
252
|
const calendarWrapperAfterUpdate = await document.querySelector('[id^="Selectable_"][id$="-list"]');
|
269
|
-
await (0,
|
253
|
+
await (0, _react2.waitFor)(() => {
|
270
254
|
expect(dateInputAfterUpdate).toBeInTheDocument();
|
271
255
|
expect(calendarTableAfterUpdate).toBeInTheDocument();
|
272
256
|
expect(calendarWrapperAfterUpdate).toBeInTheDocument();
|
@@ -275,155 +259,145 @@ describe('<DateInput />', () => {
|
|
275
259
|
describe('onRequestShowCalendar', () => {
|
276
260
|
it('should call onRequestShowCalendar when label is clicked', async () => {
|
277
261
|
const onRequestShowCalendar = _vitest.vi.fn();
|
278
|
-
const _render5 = (0,
|
262
|
+
const _render5 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
279
263
|
renderLabel: "Choose date",
|
280
264
|
renderWeekdayLabels: weekdayLabels,
|
281
|
-
onRequestShowCalendar: onRequestShowCalendar
|
282
|
-
|
283
|
-
})),
|
265
|
+
onRequestShowCalendar: onRequestShowCalendar
|
266
|
+
}, generateDays())),
|
284
267
|
container = _render5.container;
|
285
268
|
const dateInput = container.querySelector('span[class$="-formFieldLayout__label"]');
|
286
269
|
expect(dateInput).toHaveTextContent('Choose date');
|
287
270
|
await _userEvent.default.click(dateInput);
|
288
|
-
await (0,
|
271
|
+
await (0, _react2.waitFor)(() => {
|
289
272
|
expect(onRequestShowCalendar).toHaveBeenCalled();
|
290
273
|
});
|
291
274
|
});
|
292
275
|
it('should call onRequestShowCalendar when input is clicked', async () => {
|
293
276
|
const onRequestShowCalendar = _vitest.vi.fn();
|
294
|
-
const _render6 = (0,
|
277
|
+
const _render6 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
295
278
|
renderLabel: "Choose date",
|
296
279
|
renderWeekdayLabels: weekdayLabels,
|
297
|
-
onRequestShowCalendar: onRequestShowCalendar
|
298
|
-
|
299
|
-
})),
|
280
|
+
onRequestShowCalendar: onRequestShowCalendar
|
281
|
+
}, generateDays())),
|
300
282
|
container = _render6.container;
|
301
283
|
const dateInput = container.querySelector('input');
|
302
284
|
await _userEvent.default.click(dateInput);
|
303
|
-
await (0,
|
285
|
+
await (0, _react2.waitFor)(() => {
|
304
286
|
expect(onRequestShowCalendar).toHaveBeenCalledTimes(1);
|
305
287
|
});
|
306
288
|
});
|
307
289
|
it('should call onRequestShowCalendar when input receives space event', async () => {
|
308
290
|
const onRequestShowCalendar = _vitest.vi.fn();
|
309
|
-
(0,
|
291
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
310
292
|
renderLabel: "Choose date",
|
311
293
|
renderWeekdayLabels: weekdayLabels,
|
312
|
-
onRequestShowCalendar: onRequestShowCalendar
|
313
|
-
|
314
|
-
|
315
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
294
|
+
onRequestShowCalendar: onRequestShowCalendar
|
295
|
+
}, generateDays()));
|
296
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
316
297
|
await _userEvent.default.type(dateInput, '{space}');
|
317
|
-
await (0,
|
298
|
+
await (0, _react2.waitFor)(() => {
|
318
299
|
expect(onRequestShowCalendar).toHaveBeenCalledTimes(1);
|
319
300
|
});
|
320
301
|
});
|
321
302
|
it('should not call onRequestShowCalendar when input receives space event if calendar is already showing', async () => {
|
322
303
|
const onRequestShowCalendar = _vitest.vi.fn();
|
323
|
-
(0,
|
304
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
324
305
|
renderLabel: "Choose date",
|
325
306
|
renderWeekdayLabels: weekdayLabels,
|
326
307
|
onRequestShowCalendar: onRequestShowCalendar,
|
327
|
-
isShowingCalendar: true
|
328
|
-
|
329
|
-
|
330
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
308
|
+
isShowingCalendar: true
|
309
|
+
}, generateDays()));
|
310
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
331
311
|
await _userEvent.default.type(dateInput, '{space}');
|
332
|
-
await (0,
|
312
|
+
await (0, _react2.waitFor)(() => {
|
333
313
|
expect(onRequestShowCalendar).not.toHaveBeenCalled();
|
334
314
|
});
|
335
315
|
});
|
336
316
|
it('should call onRequestShowCalendar when input receives down arrow event', async () => {
|
337
317
|
const onRequestShowCalendar = _vitest.vi.fn();
|
338
|
-
(0,
|
318
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
339
319
|
renderLabel: "Choose date",
|
340
320
|
renderWeekdayLabels: weekdayLabels,
|
341
|
-
onRequestShowCalendar: onRequestShowCalendar
|
342
|
-
|
343
|
-
|
344
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
321
|
+
onRequestShowCalendar: onRequestShowCalendar
|
322
|
+
}, generateDays()));
|
323
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
345
324
|
await _userEvent.default.type(dateInput, '{arrowdown}');
|
346
|
-
await (0,
|
325
|
+
await (0, _react2.waitFor)(() => {
|
347
326
|
expect(onRequestShowCalendar).toHaveBeenCalledTimes(1);
|
348
327
|
});
|
349
328
|
});
|
350
329
|
it('should not call onRequestShowCalendar when input receives down arrow event if calendar is already showing', async () => {
|
351
330
|
const onRequestShowCalendar = _vitest.vi.fn();
|
352
|
-
(0,
|
331
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
353
332
|
renderLabel: "Choose date",
|
354
333
|
renderWeekdayLabels: weekdayLabels,
|
355
334
|
onRequestShowCalendar: onRequestShowCalendar,
|
356
|
-
isShowingCalendar: true
|
357
|
-
|
358
|
-
|
359
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
335
|
+
isShowingCalendar: true
|
336
|
+
}, generateDays()));
|
337
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
360
338
|
await _userEvent.default.type(dateInput, '{arrowdown}');
|
361
|
-
await (0,
|
339
|
+
await (0, _react2.waitFor)(() => {
|
362
340
|
expect(onRequestShowCalendar).not.toHaveBeenCalled();
|
363
341
|
});
|
364
342
|
});
|
365
343
|
it('should call onRequestShowCalendar when input receives up arrow event', async () => {
|
366
344
|
const onRequestShowCalendar = _vitest.vi.fn();
|
367
|
-
(0,
|
345
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
368
346
|
renderLabel: "Choose date",
|
369
347
|
renderWeekdayLabels: weekdayLabels,
|
370
|
-
onRequestShowCalendar: onRequestShowCalendar
|
371
|
-
|
372
|
-
|
373
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
348
|
+
onRequestShowCalendar: onRequestShowCalendar
|
349
|
+
}, generateDays()));
|
350
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
374
351
|
await _userEvent.default.type(dateInput, '{arrowup}');
|
375
|
-
await (0,
|
352
|
+
await (0, _react2.waitFor)(() => {
|
376
353
|
expect(onRequestShowCalendar).toHaveBeenCalledTimes(1);
|
377
354
|
});
|
378
355
|
});
|
379
356
|
it('should not call onRequestShowCalendar when input receives up arrow event if calendar is already showing', async () => {
|
380
357
|
const onRequestShowCalendar = _vitest.vi.fn();
|
381
|
-
(0,
|
358
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
382
359
|
renderLabel: "Choose date",
|
383
360
|
renderWeekdayLabels: weekdayLabels,
|
384
361
|
onRequestShowCalendar: onRequestShowCalendar,
|
385
|
-
isShowingCalendar: true
|
386
|
-
|
387
|
-
|
388
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
362
|
+
isShowingCalendar: true
|
363
|
+
}, generateDays()));
|
364
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
389
365
|
await _userEvent.default.type(dateInput, '{arrowup}');
|
390
|
-
await (0,
|
366
|
+
await (0, _react2.waitFor)(() => {
|
391
367
|
expect(onRequestShowCalendar).not.toHaveBeenCalled();
|
392
368
|
});
|
393
369
|
});
|
394
370
|
it('should call onRequestShowCalendar when input receives onChange event', async () => {
|
395
371
|
const onRequestShowCalendar = _vitest.vi.fn();
|
396
|
-
(0,
|
372
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
397
373
|
renderLabel: "Choose date",
|
398
374
|
renderWeekdayLabels: weekdayLabels,
|
399
|
-
onRequestShowCalendar: onRequestShowCalendar
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
_react.fireEvent.change(dateInput, {
|
375
|
+
onRequestShowCalendar: onRequestShowCalendar
|
376
|
+
}, generateDays()));
|
377
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
378
|
+
_react2.fireEvent.change(dateInput, {
|
404
379
|
target: {
|
405
380
|
value: 'January 5'
|
406
381
|
}
|
407
382
|
});
|
408
|
-
await (0,
|
383
|
+
await (0, _react2.waitFor)(() => {
|
409
384
|
expect(onRequestShowCalendar).toHaveBeenCalledTimes(1);
|
410
385
|
});
|
411
386
|
});
|
412
387
|
it('should not call onRequestShowCalendar when disabled', async () => {
|
413
388
|
const onRequestShowCalendar = _vitest.vi.fn();
|
414
|
-
(0,
|
389
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
415
390
|
renderLabel: "Choose date",
|
416
391
|
renderWeekdayLabels: weekdayLabels,
|
417
392
|
onRequestShowCalendar: onRequestShowCalendar,
|
418
|
-
interaction: "disabled"
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
_react.fireEvent.click(dateInput);
|
393
|
+
interaction: "disabled"
|
394
|
+
}, generateDays()));
|
395
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
396
|
+
_react2.fireEvent.click(dateInput);
|
423
397
|
await _userEvent.default.type(dateInput, '{arrowup}{arrowdown}{space}January 5', {
|
424
398
|
skipClick: true
|
425
399
|
});
|
426
|
-
await (0,
|
400
|
+
await (0, _react2.waitFor)(() => {
|
427
401
|
expect(onRequestShowCalendar).not.toHaveBeenCalled();
|
428
402
|
});
|
429
403
|
});
|
@@ -432,17 +406,16 @@ describe('<DateInput />', () => {
|
|
432
406
|
it('should call onRequestHideCalendar and onRequestValidateDate input receives onBlur event', async () => {
|
433
407
|
const onRequestHideCalendar = _vitest.vi.fn();
|
434
408
|
const onRequestValidateDate = _vitest.vi.fn();
|
435
|
-
(0,
|
409
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
436
410
|
renderLabel: "Choose date",
|
437
411
|
renderWeekdayLabels: weekdayLabels,
|
438
412
|
onRequestHideCalendar: onRequestHideCalendar,
|
439
413
|
onRequestValidateDate: onRequestValidateDate,
|
440
|
-
isShowingCalendar: true
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
await (0, _react.waitFor)(() => {
|
414
|
+
isShowingCalendar: true
|
415
|
+
}, generateDays()));
|
416
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
417
|
+
_react2.fireEvent.blur(dateInput);
|
418
|
+
await (0, _react2.waitFor)(() => {
|
446
419
|
expect(onRequestHideCalendar).toHaveBeenCalledTimes(1);
|
447
420
|
expect(onRequestValidateDate).toHaveBeenCalledTimes(1);
|
448
421
|
});
|
@@ -450,17 +423,16 @@ describe('<DateInput />', () => {
|
|
450
423
|
it('should call onRequestHideCalendar and onRequestValidateDate when input receives esc event', async () => {
|
451
424
|
const onRequestHideCalendar = _vitest.vi.fn();
|
452
425
|
const onRequestValidateDate = _vitest.vi.fn();
|
453
|
-
(0,
|
426
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
454
427
|
renderLabel: "Choose date",
|
455
428
|
renderWeekdayLabels: weekdayLabels,
|
456
429
|
onRequestHideCalendar: onRequestHideCalendar,
|
457
430
|
onRequestValidateDate: onRequestValidateDate,
|
458
|
-
isShowingCalendar: true
|
459
|
-
|
460
|
-
|
461
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
431
|
+
isShowingCalendar: true
|
432
|
+
}, generateDays()));
|
433
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
462
434
|
await _userEvent.default.type(dateInput, '{esc}');
|
463
|
-
await (0,
|
435
|
+
await (0, _react2.waitFor)(() => {
|
464
436
|
expect(onRequestHideCalendar).toHaveBeenCalledTimes(1);
|
465
437
|
expect(onRequestValidateDate).toHaveBeenCalledTimes(1);
|
466
438
|
});
|
@@ -469,23 +441,22 @@ describe('<DateInput />', () => {
|
|
469
441
|
const onRequestHideCalendar = _vitest.vi.fn();
|
470
442
|
const onRequestValidateDate = _vitest.vi.fn();
|
471
443
|
const days = generateDays();
|
472
|
-
days[4] = _Calendar$Day || (_Calendar$Day =
|
444
|
+
days[4] = _Calendar$Day || (_Calendar$Day = /*#__PURE__*/_react.default.createElement(_Calendar.Calendar.Day, {
|
445
|
+
key: "4",
|
473
446
|
label: "4",
|
474
447
|
date: "2019-09-28",
|
475
|
-
isSelected: true
|
476
|
-
|
477
|
-
|
478
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateInput, {
|
448
|
+
isSelected: true
|
449
|
+
}, 4));
|
450
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
479
451
|
renderLabel: "Choose date",
|
480
452
|
renderWeekdayLabels: weekdayLabels,
|
481
453
|
onRequestHideCalendar: onRequestHideCalendar,
|
482
454
|
onRequestValidateDate: onRequestValidateDate,
|
483
|
-
isShowingCalendar: true
|
484
|
-
|
485
|
-
|
486
|
-
const dateInput = _react.screen.getByLabelText('Choose date');
|
455
|
+
isShowingCalendar: true
|
456
|
+
}, days));
|
457
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
487
458
|
await _userEvent.default.type(dateInput, '{enter}');
|
488
|
-
await (0,
|
459
|
+
await (0, _react2.waitFor)(() => {
|
489
460
|
expect(onRequestHideCalendar).toHaveBeenCalledTimes(1);
|
490
461
|
expect(onRequestValidateDate).toHaveBeenCalledTimes(1);
|
491
462
|
});
|
@@ -493,28 +464,25 @@ describe('<DateInput />', () => {
|
|
493
464
|
});
|
494
465
|
it('should render calendar navigation label', () => {
|
495
466
|
const label = 'January 2019';
|
496
|
-
(0,
|
467
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
497
468
|
renderLabel: "Choose date",
|
498
469
|
renderWeekdayLabels: weekdayLabels,
|
499
|
-
renderNavigationLabel:
|
500
|
-
"data-testId": "label-id"
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
}));
|
506
|
-
const navigationLabel = _react.screen.getByTestId('label-id');
|
470
|
+
renderNavigationLabel: /*#__PURE__*/_react.default.createElement("div", {
|
471
|
+
"data-testId": "label-id"
|
472
|
+
}, label),
|
473
|
+
isShowingCalendar: true
|
474
|
+
}, generateDays()));
|
475
|
+
const navigationLabel = _react2.screen.getByTestId('label-id');
|
507
476
|
expect(navigationLabel).toBeInTheDocument();
|
508
477
|
expect(navigationLabel).toHaveTextContent(label);
|
509
478
|
});
|
510
479
|
it('should render calendar weekday labels', async () => {
|
511
|
-
(0,
|
480
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
512
481
|
renderLabel: "Choose date",
|
513
482
|
renderWeekdayLabels: weekdayLabels,
|
514
|
-
isShowingCalendar: true
|
515
|
-
|
516
|
-
|
517
|
-
const calendar = await _react.screen.findByRole('listbox');
|
483
|
+
isShowingCalendar: true
|
484
|
+
}, generateDays()));
|
485
|
+
const calendar = await _react2.screen.findByRole('listbox');
|
518
486
|
const headers = calendar.querySelectorAll('th');
|
519
487
|
expect(headers.length).toEqual(7);
|
520
488
|
weekdayLabels.forEach(label => {
|
@@ -522,24 +490,21 @@ describe('<DateInput />', () => {
|
|
522
490
|
});
|
523
491
|
});
|
524
492
|
it('should render all focusable elements in calendar with tabIndex="-1"', async () => {
|
525
|
-
(0,
|
493
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
526
494
|
renderLabel: "Choose date",
|
527
495
|
renderWeekdayLabels: weekdayLabels,
|
528
|
-
renderNextMonthButton: _button || (_button =
|
529
|
-
"data-testId": "button-next"
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
children: generateDays()
|
538
|
-
}));
|
539
|
-
const calendar = await _react.screen.findByRole('listbox');
|
496
|
+
renderNextMonthButton: _button || (_button = /*#__PURE__*/_react.default.createElement("button", {
|
497
|
+
"data-testId": "button-next"
|
498
|
+
}, "next")),
|
499
|
+
renderPrevMonthButton: _button2 || (_button2 = /*#__PURE__*/_react.default.createElement("button", {
|
500
|
+
"data-testId": "button-prev"
|
501
|
+
}, "prev")),
|
502
|
+
isShowingCalendar: true
|
503
|
+
}, generateDays()));
|
504
|
+
const calendar = await _react2.screen.findByRole('listbox');
|
540
505
|
const calendarDays = calendar.querySelectorAll('button');
|
541
|
-
const nextMonthButton =
|
542
|
-
const prevMonthButton =
|
506
|
+
const nextMonthButton = _react2.screen.getByTestId('button-next');
|
507
|
+
const prevMonthButton = _react2.screen.getByTestId('button-prev');
|
543
508
|
expect(nextMonthButton).toHaveAttribute('tabIndex', '-1');
|
544
509
|
expect(prevMonthButton).toHaveAttribute('tabIndex', '-1');
|
545
510
|
expect(calendarDays).toHaveLength(42);
|
@@ -549,20 +514,19 @@ describe('<DateInput />', () => {
|
|
549
514
|
});
|
550
515
|
it('should render days with the correct role', async () => {
|
551
516
|
const days = generateDays();
|
552
|
-
days[5] = _Calendar$Day2 || (_Calendar$Day2 =
|
517
|
+
days[5] = _Calendar$Day2 || (_Calendar$Day2 = /*#__PURE__*/_react.default.createElement(_Calendar.Calendar.Day, {
|
518
|
+
key: "5",
|
553
519
|
label: "5",
|
554
520
|
date: "2019-09-28",
|
555
521
|
id: "5",
|
556
|
-
isOutsideMonth: true
|
557
|
-
|
558
|
-
|
559
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateInput, {
|
522
|
+
isOutsideMonth: true
|
523
|
+
}, "outside"));
|
524
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
560
525
|
renderLabel: "Choose date",
|
561
526
|
renderWeekdayLabels: weekdayLabels,
|
562
|
-
isShowingCalendar: true
|
563
|
-
|
564
|
-
|
565
|
-
const calendar = await _react.screen.findByRole('listbox');
|
527
|
+
isShowingCalendar: true
|
528
|
+
}, days));
|
529
|
+
const calendar = await _react2.screen.findByRole('listbox');
|
566
530
|
const calendarDays = calendar.querySelectorAll('button');
|
567
531
|
calendarDays.forEach(day => {
|
568
532
|
if (day.textContent.includes('outside')) {
|
@@ -574,20 +538,19 @@ describe('<DateInput />', () => {
|
|
574
538
|
});
|
575
539
|
it('should assign aria-selected to the selected date and link it to the input', async () => {
|
576
540
|
const days = generateDays();
|
577
|
-
days[7] = _Calendar$Day3 || (_Calendar$Day3 =
|
541
|
+
days[7] = _Calendar$Day3 || (_Calendar$Day3 = /*#__PURE__*/_react.default.createElement(_Calendar.Calendar.Day, {
|
542
|
+
key: "7",
|
578
543
|
label: "7",
|
579
544
|
date: "2019-09-28",
|
580
545
|
id: "selected-day-id",
|
581
|
-
isSelected: true
|
582
|
-
|
583
|
-
|
584
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateInput, {
|
546
|
+
isSelected: true
|
547
|
+
}, "selected"));
|
548
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
585
549
|
renderLabel: "Choose date",
|
586
550
|
renderWeekdayLabels: weekdayLabels,
|
587
|
-
isShowingCalendar: true
|
588
|
-
|
589
|
-
|
590
|
-
const calendar = await _react.screen.findByRole('listbox');
|
551
|
+
isShowingCalendar: true
|
552
|
+
}, days));
|
553
|
+
const calendar = await _react2.screen.findByRole('listbox');
|
591
554
|
const calendarDays = calendar.querySelectorAll('button');
|
592
555
|
let selectedDayID = '';
|
593
556
|
calendarDays.forEach(day => {
|
@@ -598,7 +561,7 @@ describe('<DateInput />', () => {
|
|
598
561
|
expect(day).toHaveAttribute('aria-selected', 'false');
|
599
562
|
}
|
600
563
|
});
|
601
|
-
const dateInput =
|
564
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
602
565
|
expect(dateInput).toHaveAttribute('aria-activedescendant', selectedDayID);
|
603
566
|
});
|
604
567
|
});
|
@@ -607,7 +570,7 @@ describe('<DateInput />', () => {
|
|
607
570
|
it.each(generatedComponents)('should be accessible with example: $description', async ({
|
608
571
|
content
|
609
572
|
}) => {
|
610
|
-
const _render7 = (0,
|
573
|
+
const _render7 = (0, _react2.render)(content),
|
611
574
|
container = _render7.container;
|
612
575
|
const axeCheck = await (0, _runAxeCheck.runAxeCheck)(container);
|
613
576
|
expect(axeCheck).toBe(true);
|
@@ -616,7 +579,7 @@ describe('<DateInput />', () => {
|
|
616
579
|
describe('with minimal config', () => {
|
617
580
|
it('should render 44 buttons (a calendar) when clicked', async () => {
|
618
581
|
const onChange = _vitest.vi.fn();
|
619
|
-
(0,
|
582
|
+
(0, _react2.render)(/*#__PURE__*/_react.default.createElement(_index.DateInput, {
|
620
583
|
renderLabel: "Choose date",
|
621
584
|
assistiveText: "Type a date or use arrow keys to navigate date picker.",
|
622
585
|
width: "20rem",
|
@@ -628,13 +591,13 @@ describe('<DateInput />', () => {
|
|
628
591
|
disabledDateErrorMessage: "disabled date",
|
629
592
|
invalidDateErrorMessage: "invalid date"
|
630
593
|
}));
|
631
|
-
const dateInput =
|
632
|
-
|
594
|
+
const dateInput = _react2.screen.getByLabelText('Choose date');
|
595
|
+
_react2.fireEvent.click(dateInput);
|
633
596
|
const calendarTable = document.querySelector('table');
|
634
597
|
const calendarDays = calendarTable.querySelectorAll('button');
|
635
598
|
const calendarWrapper = document.querySelector('[id^="Selectable_"][id$="-list"]');
|
636
599
|
const calendarButtons = calendarWrapper.querySelectorAll('button');
|
637
|
-
await (0,
|
600
|
+
await (0, _react2.waitFor)(() => {
|
638
601
|
expect(calendarButtons).toHaveLength(44);
|
639
602
|
expect(calendarDays).toHaveLength(42);
|
640
603
|
});
|