@instructure/ui-date-time-input 10.16.1-snapshot-0 → 10.16.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/CHANGELOG.md +1 -1
- package/es/DateTimeInput/__new-tests__/DateTimeInput.test.js +88 -62
- package/es/DateTimeInput/index.js +79 -70
- package/lib/DateTimeInput/__new-tests__/DateTimeInput.test.js +152 -126
- package/lib/DateTimeInput/index.js +79 -71
- package/package.json +17 -17
- package/src/DateTimeInput/__new-tests__/DateTimeInput.test.tsx +0 -1
- package/src/DateTimeInput/index.tsx +1 -1
- package/src/DateTimeInput/props.ts +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/types/DateTimeInput/__new-tests__/DateTimeInput.test.d.ts.map +1 -1
- package/types/DateTimeInput/index.d.ts +6 -6
- package/types/DateTimeInput/index.d.ts.map +1 -1
- package/types/DateTimeInput/props.d.ts +1 -1
- package/types/DateTimeInput/props.d.ts.map +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _react =
|
|
5
|
-
var _react2 = require("@testing-library/react");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
6
5
|
var _vitest = require("vitest");
|
|
7
6
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
8
7
|
require("@testing-library/jest-dom");
|
|
9
8
|
var _index = require("../index");
|
|
10
9
|
var _ApplyLocale = require("@instructure/ui-i18n/lib/ApplyLocale");
|
|
11
10
|
var _DateTime = require("@instructure/ui-i18n/lib/DateTime.js");
|
|
11
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
12
12
|
var _DateTimeInput, _DateTimeInput2, _DateTimeInput3;
|
|
13
13
|
/*
|
|
14
14
|
* The MIT License (MIT)
|
|
@@ -49,7 +49,7 @@ describe('<DateTimeInput />', () => {
|
|
|
49
49
|
const locale = 'en-US';
|
|
50
50
|
const timezone = 'US/Eastern';
|
|
51
51
|
const dateTime = _DateTime.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
52
|
-
(0,
|
|
52
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
53
53
|
description: "date_time",
|
|
54
54
|
prevMonthLabel: "Previous month",
|
|
55
55
|
nextMonthLabel: "Next month",
|
|
@@ -60,8 +60,8 @@ describe('<DateTimeInput />', () => {
|
|
|
60
60
|
timezone: timezone,
|
|
61
61
|
defaultValue: dateTime.toISOString()
|
|
62
62
|
}));
|
|
63
|
-
const dateInput =
|
|
64
|
-
const timeInput =
|
|
63
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
64
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
65
65
|
expect(dateInput).toHaveValue(dateTime.format('LL'));
|
|
66
66
|
expect(timeInput).toHaveValue(dateTime.format('LT'));
|
|
67
67
|
});
|
|
@@ -70,7 +70,7 @@ describe('<DateTimeInput />', () => {
|
|
|
70
70
|
const locale = 'en-US';
|
|
71
71
|
const timezone = 'US/Eastern';
|
|
72
72
|
const dateTime = _DateTime.DateTime.parse('2017-05-01T23:30Z', locale, timezone);
|
|
73
|
-
(0,
|
|
73
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
74
74
|
description: "date_time",
|
|
75
75
|
prevMonthLabel: "Previous month",
|
|
76
76
|
nextMonthLabel: "Next month",
|
|
@@ -82,8 +82,8 @@ describe('<DateTimeInput />', () => {
|
|
|
82
82
|
value: dateTime.toISOString(),
|
|
83
83
|
onChange: onChange
|
|
84
84
|
}));
|
|
85
|
-
const dateInput =
|
|
86
|
-
const timeInput =
|
|
85
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
86
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
87
87
|
expect(dateInput).toHaveValue(dateTime.format('LL'));
|
|
88
88
|
expect(timeInput).toHaveValue(dateTime.format('LT'));
|
|
89
89
|
});
|
|
@@ -93,7 +93,7 @@ describe('<DateTimeInput />', () => {
|
|
|
93
93
|
const value = _DateTime.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
94
94
|
const defaultValue = _DateTime.DateTime.parse('2016-04-01T17:00Z', locale, timezone);
|
|
95
95
|
const onChange = _vitest.vi.fn();
|
|
96
|
-
(0,
|
|
96
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
97
97
|
description: "date_time",
|
|
98
98
|
prevMonthLabel: "Previous month",
|
|
99
99
|
nextMonthLabel: "Next month",
|
|
@@ -106,8 +106,8 @@ describe('<DateTimeInput />', () => {
|
|
|
106
106
|
defaultValue: defaultValue.toISOString(),
|
|
107
107
|
onChange: onChange
|
|
108
108
|
}));
|
|
109
|
-
const dateInput =
|
|
110
|
-
const timeInput =
|
|
109
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
110
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
111
111
|
expect(dateInput).toHaveValue(value.format('LL'));
|
|
112
112
|
expect(timeInput).toHaveValue(value.format('LT'));
|
|
113
113
|
});
|
|
@@ -116,7 +116,7 @@ describe('<DateTimeInput />', () => {
|
|
|
116
116
|
const timezone = 'US/Eastern';
|
|
117
117
|
const dateObj = _DateTime.DateTime.parse('2017-04-01T18:30Z', locale, timezone);
|
|
118
118
|
const date = dateObj.toISOString().split('T')[0];
|
|
119
|
-
(0,
|
|
119
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
120
120
|
description: "date_time",
|
|
121
121
|
dateRenderLabel: "date-input",
|
|
122
122
|
prevMonthLabel: "Previous month",
|
|
@@ -127,14 +127,14 @@ describe('<DateTimeInput />', () => {
|
|
|
127
127
|
timezone: timezone,
|
|
128
128
|
defaultValue: date
|
|
129
129
|
}));
|
|
130
|
-
const dateInput =
|
|
131
|
-
const timeInput =
|
|
130
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
131
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
132
132
|
expect(dateInput).toHaveValue(dateObj.format('LL'));
|
|
133
133
|
expect(timeInput).toHaveValue('12:00 AM');
|
|
134
134
|
});
|
|
135
135
|
it('should call invalidDateTimeMessage if time is set w/o a date and is required', async () => {
|
|
136
136
|
const invalidDateTimeMessage = _vitest.vi.fn(_rawd => 'whoops');
|
|
137
|
-
const _render = (0,
|
|
137
|
+
const _render = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
138
138
|
description: "date_time",
|
|
139
139
|
dateRenderLabel: "date-input",
|
|
140
140
|
prevMonthLabel: "Previous month",
|
|
@@ -146,17 +146,17 @@ describe('<DateTimeInput />', () => {
|
|
|
146
146
|
invalidDateTimeMessage: invalidDateTimeMessage
|
|
147
147
|
})),
|
|
148
148
|
container = _render.container;
|
|
149
|
-
const timeInput =
|
|
149
|
+
const timeInput = _react.screen.getByLabelText('time-input *');
|
|
150
150
|
await _userEvent.default.type(timeInput, '1:00 PM');
|
|
151
|
-
|
|
152
|
-
await (0,
|
|
151
|
+
_react.fireEvent.blur(timeInput);
|
|
152
|
+
await (0, _react.waitFor)(() => {
|
|
153
153
|
expect(container).toHaveTextContent('whoops');
|
|
154
154
|
expect(invalidDateTimeMessage).toHaveBeenCalled();
|
|
155
155
|
});
|
|
156
156
|
});
|
|
157
157
|
it('should not call invalidDateTimeMessage if time is set w/o a date', async () => {
|
|
158
158
|
const invalidDateTimeMessage = _vitest.vi.fn(_rawd => 'whoops');
|
|
159
|
-
(0,
|
|
159
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
160
160
|
description: "date_time",
|
|
161
161
|
dateRenderLabel: "date-input",
|
|
162
162
|
prevMonthLabel: "Previous month",
|
|
@@ -166,10 +166,10 @@ describe('<DateTimeInput />', () => {
|
|
|
166
166
|
timezone: "US/Eastern",
|
|
167
167
|
invalidDateTimeMessage: invalidDateTimeMessage
|
|
168
168
|
}));
|
|
169
|
-
const timeInput =
|
|
169
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
170
170
|
await _userEvent.default.type(timeInput, '1:00 PM{enter}');
|
|
171
|
-
await (0,
|
|
172
|
-
const errorMessages =
|
|
171
|
+
await (0, _react.waitFor)(() => {
|
|
172
|
+
const errorMessages = _react.screen.queryByText('whoops');
|
|
173
173
|
expect(errorMessages).not.toBeInTheDocument();
|
|
174
174
|
expect(invalidDateTimeMessage).not.toHaveBeenCalled();
|
|
175
175
|
});
|
|
@@ -179,7 +179,7 @@ describe('<DateTimeInput />', () => {
|
|
|
179
179
|
const locale = 'en-US';
|
|
180
180
|
const timezone = 'US/Eastern';
|
|
181
181
|
const defaultValue = _DateTime.DateTime.parse('2017-05-01T17:00', locale, timezone);
|
|
182
|
-
(0,
|
|
182
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
183
183
|
description: "date_time",
|
|
184
184
|
dateRenderLabel: "date-input",
|
|
185
185
|
prevMonthLabel: "Previous month",
|
|
@@ -191,24 +191,24 @@ describe('<DateTimeInput />', () => {
|
|
|
191
191
|
onChange: onChange,
|
|
192
192
|
defaultValue: defaultValue.toISOString()
|
|
193
193
|
}));
|
|
194
|
-
const timeInput =
|
|
195
|
-
|
|
194
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
195
|
+
_react.fireEvent.change(timeInput, {
|
|
196
196
|
target: {
|
|
197
197
|
value: '3:00 AM'
|
|
198
198
|
}
|
|
199
199
|
});
|
|
200
|
-
|
|
200
|
+
_react.fireEvent.keyDown(timeInput, {
|
|
201
201
|
key: 'Enter',
|
|
202
202
|
code: 'Enter'
|
|
203
203
|
});
|
|
204
|
-
|
|
205
|
-
await (0,
|
|
204
|
+
_react.fireEvent.blur(timeInput);
|
|
205
|
+
await (0, _react.waitFor)(() => {
|
|
206
206
|
expect(onChange).toHaveBeenCalled();
|
|
207
207
|
expect(onChange.mock.calls[0][0].target.value).toMatch('3:00 AM');
|
|
208
208
|
});
|
|
209
209
|
});
|
|
210
210
|
it('should show correct message when TimeInput value changes', () => {
|
|
211
|
-
const _render2 = (0,
|
|
211
|
+
const _render2 = (0, _react.render)(_DateTimeInput || (_DateTimeInput = (0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
212
212
|
description: "date_time",
|
|
213
213
|
dateRenderLabel: "date-input",
|
|
214
214
|
prevMonthLabel: "Previous month",
|
|
@@ -220,24 +220,24 @@ describe('<DateTimeInput />', () => {
|
|
|
220
220
|
defaultValue: "2018-01-18T13:00"
|
|
221
221
|
}))),
|
|
222
222
|
container = _render2.container;
|
|
223
|
-
const timeInput =
|
|
224
|
-
|
|
223
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
224
|
+
_react.fireEvent.change(timeInput, {
|
|
225
225
|
target: {
|
|
226
226
|
value: '5:00 PM'
|
|
227
227
|
}
|
|
228
228
|
});
|
|
229
|
-
|
|
229
|
+
_react.fireEvent.keyDown(timeInput, {
|
|
230
230
|
key: 'Enter',
|
|
231
231
|
code: 'Enter'
|
|
232
232
|
});
|
|
233
|
-
|
|
233
|
+
_react.fireEvent.blur(timeInput);
|
|
234
234
|
expect(container).toHaveTextContent('Thursday, January 18, 2018 5:00 PM');
|
|
235
235
|
});
|
|
236
236
|
it('should show the formatted date-time message', () => {
|
|
237
237
|
const locale = 'en-US';
|
|
238
238
|
const timezone = 'US/Eastern';
|
|
239
239
|
const defaultValue = _DateTime.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
240
|
-
const _render3 = (0,
|
|
240
|
+
const _render3 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
241
241
|
description: "date_time",
|
|
242
242
|
dateRenderLabel: "date-input",
|
|
243
243
|
prevMonthLabel: "Previous month",
|
|
@@ -255,7 +255,7 @@ describe('<DateTimeInput />', () => {
|
|
|
255
255
|
const timezone = 'US/Eastern';
|
|
256
256
|
const locale = 'fr';
|
|
257
257
|
const defaultValue = _DateTime.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
258
|
-
const _render4 = (0,
|
|
258
|
+
const _render4 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
259
259
|
description: "date_time",
|
|
260
260
|
dateRenderLabel: "date-input",
|
|
261
261
|
prevMonthLabel: "Previous month",
|
|
@@ -272,7 +272,7 @@ describe('<DateTimeInput />', () => {
|
|
|
272
272
|
it('should provide the html elements for date and time input', () => {
|
|
273
273
|
let dref;
|
|
274
274
|
let tref;
|
|
275
|
-
(0,
|
|
275
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
276
276
|
description: "date_time",
|
|
277
277
|
dateRenderLabel: "date-input",
|
|
278
278
|
prevMonthLabel: "Previous month",
|
|
@@ -288,8 +288,8 @@ describe('<DateTimeInput />', () => {
|
|
|
288
288
|
tref = el;
|
|
289
289
|
}
|
|
290
290
|
}));
|
|
291
|
-
const dateInput =
|
|
292
|
-
const timeInput =
|
|
291
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
292
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
293
293
|
expect(dateInput).toEqual(dref);
|
|
294
294
|
expect(timeInput).toEqual(tref);
|
|
295
295
|
});
|
|
@@ -310,13 +310,16 @@ describe('<DateTimeInput />', () => {
|
|
|
310
310
|
value: dateTime.toISOString(),
|
|
311
311
|
onChange
|
|
312
312
|
};
|
|
313
|
-
const _render5 = (0,
|
|
313
|
+
const _render5 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
314
|
+
...props
|
|
315
|
+
})),
|
|
314
316
|
container = _render5.container,
|
|
315
317
|
rerender = _render5.rerender;
|
|
316
318
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
317
|
-
rerender(
|
|
319
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
320
|
+
...props,
|
|
318
321
|
value: "2018-03-29T16:30Z"
|
|
319
|
-
}))
|
|
322
|
+
}));
|
|
320
323
|
expect(container).toHaveTextContent('March 29, 2018 12:30 PM');
|
|
321
324
|
});
|
|
322
325
|
it('should update message when locale changed', () => {
|
|
@@ -336,13 +339,16 @@ describe('<DateTimeInput />', () => {
|
|
|
336
339
|
onChange,
|
|
337
340
|
value: dateTime.toISOString()
|
|
338
341
|
};
|
|
339
|
-
const _render6 = (0,
|
|
342
|
+
const _render6 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
343
|
+
...props
|
|
344
|
+
})),
|
|
340
345
|
container = _render6.container,
|
|
341
346
|
rerender = _render6.rerender;
|
|
342
347
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
343
|
-
rerender(
|
|
348
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
349
|
+
...props,
|
|
344
350
|
locale: "fr"
|
|
345
|
-
}))
|
|
351
|
+
}));
|
|
346
352
|
expect(container).toHaveTextContent('1 mai 2017 13:30');
|
|
347
353
|
});
|
|
348
354
|
it('should update message when timezone changed', () => {
|
|
@@ -362,17 +368,20 @@ describe('<DateTimeInput />', () => {
|
|
|
362
368
|
onChange,
|
|
363
369
|
value: dateTime.toISOString()
|
|
364
370
|
};
|
|
365
|
-
const _render7 = (0,
|
|
371
|
+
const _render7 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
372
|
+
...props
|
|
373
|
+
})),
|
|
366
374
|
container = _render7.container,
|
|
367
375
|
rerender = _render7.rerender;
|
|
368
376
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
369
|
-
rerender(
|
|
377
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
378
|
+
...props,
|
|
370
379
|
timezone: "Europe/Paris"
|
|
371
|
-
}))
|
|
380
|
+
}));
|
|
372
381
|
expect(container).toHaveTextContent('May 1, 2017 7:30 PM');
|
|
373
382
|
});
|
|
374
383
|
it('should show error message if initial value is invalid', async () => {
|
|
375
|
-
const _render8 = (0,
|
|
384
|
+
const _render8 = (0, _react.render)(_DateTimeInput2 || (_DateTimeInput2 = (0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
376
385
|
description: "date_time",
|
|
377
386
|
dateRenderLabel: "date-input",
|
|
378
387
|
prevMonthLabel: "Previous month",
|
|
@@ -382,14 +391,14 @@ describe('<DateTimeInput />', () => {
|
|
|
382
391
|
value: "totally not a date"
|
|
383
392
|
}))),
|
|
384
393
|
container = _render8.container;
|
|
385
|
-
const dateInput =
|
|
386
|
-
|
|
387
|
-
await (0,
|
|
394
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
395
|
+
_react.fireEvent.blur(dateInput);
|
|
396
|
+
await (0, _react.waitFor)(() => {
|
|
388
397
|
expect(container).toHaveTextContent('whoops');
|
|
389
398
|
});
|
|
390
399
|
});
|
|
391
400
|
it('should show error message if initial defaultValue is invalid', async () => {
|
|
392
|
-
const _render9 = (0,
|
|
401
|
+
const _render9 = (0, _react.render)(_DateTimeInput3 || (_DateTimeInput3 = (0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
393
402
|
description: "date_time",
|
|
394
403
|
dateRenderLabel: "date-input",
|
|
395
404
|
prevMonthLabel: "Previous month",
|
|
@@ -399,9 +408,9 @@ describe('<DateTimeInput />', () => {
|
|
|
399
408
|
defaultValue: "totally not a date"
|
|
400
409
|
}))),
|
|
401
410
|
container = _render9.container;
|
|
402
|
-
const dateInput =
|
|
403
|
-
|
|
404
|
-
await (0,
|
|
411
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
412
|
+
_react.fireEvent.blur(dateInput);
|
|
413
|
+
await (0, _react.waitFor)(() => {
|
|
405
414
|
expect(container).toHaveTextContent('whoops');
|
|
406
415
|
});
|
|
407
416
|
});
|
|
@@ -420,16 +429,19 @@ describe('<DateTimeInput />', () => {
|
|
|
420
429
|
timezone,
|
|
421
430
|
value: dateTime.toISOString()
|
|
422
431
|
};
|
|
423
|
-
const _render10 = (0,
|
|
432
|
+
const _render10 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
433
|
+
...props
|
|
434
|
+
})),
|
|
424
435
|
container = _render10.container,
|
|
425
436
|
rerender = _render10.rerender;
|
|
426
437
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
427
|
-
rerender(
|
|
438
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
439
|
+
...props,
|
|
428
440
|
value: "A very invalid date"
|
|
429
|
-
}))
|
|
430
|
-
const dateInput =
|
|
431
|
-
|
|
432
|
-
await (0,
|
|
441
|
+
}));
|
|
442
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
443
|
+
_react.fireEvent.blur(dateInput);
|
|
444
|
+
await (0, _react.waitFor)(() => {
|
|
433
445
|
expect(container).toHaveTextContent('whoops');
|
|
434
446
|
});
|
|
435
447
|
});
|
|
@@ -448,19 +460,22 @@ describe('<DateTimeInput />', () => {
|
|
|
448
460
|
timezone,
|
|
449
461
|
value: dateTime.toISOString()
|
|
450
462
|
};
|
|
451
|
-
const _render11 = (0,
|
|
463
|
+
const _render11 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
464
|
+
...props
|
|
465
|
+
})),
|
|
452
466
|
container = _render11.container,
|
|
453
467
|
rerender = _render11.rerender;
|
|
454
468
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
455
|
-
rerender(
|
|
469
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
470
|
+
...props,
|
|
456
471
|
messages: [{
|
|
457
472
|
text: 'message_text',
|
|
458
473
|
type: 'success'
|
|
459
474
|
}]
|
|
460
|
-
}))
|
|
461
|
-
const dateInput =
|
|
462
|
-
|
|
463
|
-
await (0,
|
|
475
|
+
}));
|
|
476
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
477
|
+
_react.fireEvent.blur(dateInput);
|
|
478
|
+
await (0, _react.waitFor)(() => {
|
|
464
479
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
465
480
|
expect(container).toHaveTextContent('message_text');
|
|
466
481
|
});
|
|
@@ -480,34 +495,37 @@ describe('<DateTimeInput />', () => {
|
|
|
480
495
|
timezone,
|
|
481
496
|
value: dateTime.toISOString()
|
|
482
497
|
};
|
|
483
|
-
const _render12 = (0,
|
|
498
|
+
const _render12 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
499
|
+
...props,
|
|
484
500
|
showMessages: false
|
|
485
|
-
}))
|
|
501
|
+
})),
|
|
486
502
|
container = _render12.container,
|
|
487
503
|
rerender = _render12.rerender;
|
|
488
504
|
expect(container).not.toHaveTextContent('2017');
|
|
489
|
-
rerender(
|
|
505
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
506
|
+
...props,
|
|
490
507
|
showMessages: false,
|
|
491
508
|
messages: [{
|
|
492
509
|
text: 'message_text',
|
|
493
510
|
type: 'success'
|
|
494
511
|
}]
|
|
495
|
-
}))
|
|
496
|
-
const dateInput =
|
|
497
|
-
|
|
498
|
-
await (0,
|
|
512
|
+
}));
|
|
513
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
514
|
+
_react.fireEvent.blur(dateInput);
|
|
515
|
+
await (0, _react.waitFor)(() => {
|
|
499
516
|
expect(container).not.toHaveTextContent('2017');
|
|
500
517
|
expect(container).toHaveTextContent('message_text');
|
|
501
518
|
});
|
|
502
|
-
rerender(
|
|
519
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
520
|
+
...props,
|
|
503
521
|
messages: [{
|
|
504
522
|
text: 'message_text',
|
|
505
523
|
type: 'success'
|
|
506
524
|
}],
|
|
507
525
|
showMessages: true
|
|
508
|
-
}))
|
|
509
|
-
|
|
510
|
-
await (0,
|
|
526
|
+
}));
|
|
527
|
+
_react.fireEvent.blur(_react.screen.getByLabelText('date-input'));
|
|
528
|
+
await (0, _react.waitFor)(() => {
|
|
511
529
|
expect(container).toHaveTextContent('2017');
|
|
512
530
|
expect(container).toHaveTextContent('message_text');
|
|
513
531
|
});
|
|
@@ -515,22 +533,22 @@ describe('<DateTimeInput />', () => {
|
|
|
515
533
|
it('should read locale and timezone from context', () => {
|
|
516
534
|
const onChange = _vitest.vi.fn();
|
|
517
535
|
const dateTime = _DateTime.DateTime.parse('2017-05-01T17:30Z', 'en-US', 'GMT');
|
|
518
|
-
const _render13 = (0,
|
|
519
|
-
/*#__PURE__*/
|
|
536
|
+
const _render13 = (0, _react.render)(
|
|
520
537
|
// Africa/Nairobi is GMT +3
|
|
521
|
-
|
|
538
|
+
(0, _jsxRuntime.jsx)(_ApplyLocale.ApplyLocale, {
|
|
522
539
|
locale: "fr",
|
|
523
|
-
timezone: "Africa/Nairobi"
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
540
|
+
timezone: "Africa/Nairobi",
|
|
541
|
+
children: (0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
542
|
+
description: "date_time",
|
|
543
|
+
dateRenderLabel: "date-input",
|
|
544
|
+
prevMonthLabel: "Previous month",
|
|
545
|
+
nextMonthLabel: "Next month",
|
|
546
|
+
timeRenderLabel: "time-input",
|
|
547
|
+
invalidDateTimeMessage: "whoops",
|
|
548
|
+
value: dateTime.toISOString(),
|
|
549
|
+
onChange: onChange
|
|
550
|
+
})
|
|
551
|
+
})),
|
|
534
552
|
container = _render13.container;
|
|
535
553
|
expect(container).toHaveTextContent('lundi 1 mai 2017 20:30');
|
|
536
554
|
});
|
|
@@ -547,17 +565,19 @@ describe('<DateTimeInput />', () => {
|
|
|
547
565
|
value: dateTime.toISOString(),
|
|
548
566
|
onChange
|
|
549
567
|
};
|
|
550
|
-
const _render14 = (0,
|
|
568
|
+
const _render14 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
569
|
+
...props,
|
|
551
570
|
dateFormat: "l" // localized numeric date like 9/4/2017
|
|
552
|
-
}))
|
|
571
|
+
})),
|
|
553
572
|
rerender = _render14.rerender;
|
|
554
|
-
const dateInput =
|
|
573
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
555
574
|
expect(dateInput).toHaveValue('5/1/2017');
|
|
556
|
-
rerender(
|
|
575
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
576
|
+
...props,
|
|
557
577
|
dateFormat: "yyyy MMMM"
|
|
558
|
-
}))
|
|
559
|
-
|
|
560
|
-
await (0,
|
|
578
|
+
}));
|
|
579
|
+
_react.fireEvent.blur(_react.screen.getByLabelText('date-input'));
|
|
580
|
+
await (0, _react.waitFor)(() => {
|
|
561
581
|
expect(dateInput).toHaveValue('2017 May');
|
|
562
582
|
});
|
|
563
583
|
});
|
|
@@ -576,15 +596,18 @@ describe('<DateTimeInput />', () => {
|
|
|
576
596
|
locale: 'en-US',
|
|
577
597
|
timezone: 'US/Eastern'
|
|
578
598
|
};
|
|
579
|
-
const _render15 = (0,
|
|
599
|
+
const _render15 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
600
|
+
...props
|
|
601
|
+
})),
|
|
580
602
|
container = _render15.container,
|
|
581
603
|
rerender = _render15.rerender;
|
|
582
604
|
expect(container).toHaveTextContent('Monday, May 1, 2017 1:30 PM');
|
|
583
|
-
rerender(
|
|
605
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
606
|
+
...props,
|
|
584
607
|
messageFormat: "l, LT"
|
|
585
|
-
}))
|
|
586
|
-
|
|
587
|
-
await (0,
|
|
608
|
+
}));
|
|
609
|
+
_react.fireEvent.blur(_react.screen.getByLabelText('date-input'));
|
|
610
|
+
await (0, _react.waitFor)(() => {
|
|
588
611
|
expect(container).toHaveTextContent('5/1/2017, 1:30 PM');
|
|
589
612
|
});
|
|
590
613
|
});
|
|
@@ -603,26 +626,29 @@ describe('<DateTimeInput />', () => {
|
|
|
603
626
|
timezone,
|
|
604
627
|
value: dateTime.toISOString()
|
|
605
628
|
};
|
|
606
|
-
const _render16 = (0,
|
|
629
|
+
const _render16 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
630
|
+
...props
|
|
631
|
+
})),
|
|
607
632
|
container = _render16.container,
|
|
608
633
|
rerender = _render16.rerender;
|
|
609
634
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
610
635
|
const newDateStr = '2022-03-29T19:00Z';
|
|
611
636
|
const newDateTime = _DateTime.DateTime.parse(newDateStr, locale, timezone);
|
|
612
|
-
rerender(
|
|
637
|
+
rerender((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
638
|
+
...props,
|
|
613
639
|
value: newDateStr
|
|
614
|
-
}))
|
|
615
|
-
const dateInput =
|
|
616
|
-
const timeInput =
|
|
617
|
-
|
|
618
|
-
await (0,
|
|
640
|
+
}));
|
|
641
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
642
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
643
|
+
_react.fireEvent.blur(dateInput);
|
|
644
|
+
await (0, _react.waitFor)(() => {
|
|
619
645
|
expect(dateInput).toHaveValue(newDateTime.format('LL'));
|
|
620
646
|
expect(timeInput).toHaveValue(newDateTime.format('LT'));
|
|
621
647
|
});
|
|
622
648
|
});
|
|
623
649
|
it("should throw warning if initialTimeForNewDate prop's value is not HH:MM", async () => {
|
|
624
650
|
const initialTimeForNewDate = 'WRONG_FORMAT';
|
|
625
|
-
(0,
|
|
651
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
626
652
|
description: "date_time",
|
|
627
653
|
dateRenderLabel: "date-input",
|
|
628
654
|
prevMonthLabel: "Previous month",
|
|
@@ -637,7 +663,7 @@ describe('<DateTimeInput />', () => {
|
|
|
637
663
|
});
|
|
638
664
|
it("should throw warning if date select and initialTimeForNewDate prop's value is not HH:MM", async () => {
|
|
639
665
|
const initialTimeForNewDate = 'WRONG_FORMAT';
|
|
640
|
-
(0,
|
|
666
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
641
667
|
description: "date_time",
|
|
642
668
|
dateRenderLabel: "date-input",
|
|
643
669
|
prevMonthLabel: "Previous month",
|
|
@@ -648,24 +674,24 @@ describe('<DateTimeInput />', () => {
|
|
|
648
674
|
timezone: 'US/Eastern',
|
|
649
675
|
initialTimeForNewDate: initialTimeForNewDate
|
|
650
676
|
}));
|
|
651
|
-
const dateInput =
|
|
652
|
-
|
|
677
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
678
|
+
_react.fireEvent.change(dateInput, {
|
|
653
679
|
target: {
|
|
654
680
|
value: 'May 1, 2017'
|
|
655
681
|
}
|
|
656
682
|
});
|
|
657
|
-
|
|
683
|
+
_react.fireEvent.keyDown(dateInput, {
|
|
658
684
|
key: 'Enter',
|
|
659
685
|
code: 'Enter'
|
|
660
686
|
});
|
|
661
|
-
|
|
662
|
-
await (0,
|
|
687
|
+
_react.fireEvent.blur(dateInput);
|
|
688
|
+
await (0, _react.waitFor)(() => {
|
|
663
689
|
expect(consoleErrorMock.mock.calls[0][0]).toBe(`Warning: [DateTimeInput] initialTimeForNewDate prop is not in the correct format. Please use HH:MM format.`);
|
|
664
690
|
});
|
|
665
691
|
});
|
|
666
692
|
it('should throw warning if initialTimeForNewDate prop hour and minute values are not in interval', async () => {
|
|
667
693
|
const initialTimeForNewDate = '99:99';
|
|
668
|
-
(0,
|
|
694
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
669
695
|
description: "date_time",
|
|
670
696
|
dateRenderLabel: "date-input",
|
|
671
697
|
prevMonthLabel: "Previous month",
|
|
@@ -676,18 +702,18 @@ describe('<DateTimeInput />', () => {
|
|
|
676
702
|
timezone: 'US/Eastern',
|
|
677
703
|
initialTimeForNewDate: initialTimeForNewDate
|
|
678
704
|
}));
|
|
679
|
-
const dateInput =
|
|
680
|
-
|
|
705
|
+
const dateInput = _react.screen.getByLabelText('date-input');
|
|
706
|
+
_react.fireEvent.change(dateInput, {
|
|
681
707
|
target: {
|
|
682
708
|
value: 'May 1, 2017'
|
|
683
709
|
}
|
|
684
710
|
});
|
|
685
|
-
|
|
711
|
+
_react.fireEvent.keyDown(dateInput, {
|
|
686
712
|
key: 'Enter',
|
|
687
713
|
code: 'Enter'
|
|
688
714
|
});
|
|
689
|
-
|
|
690
|
-
await (0,
|
|
715
|
+
_react.fireEvent.blur(dateInput);
|
|
716
|
+
await (0, _react.waitFor)(() => {
|
|
691
717
|
expect(consoleErrorMock.mock.calls[0][0]).toEqual(expect.stringContaining(`Warning: [DateTimeInput] 0 <= hour < 24 and 0 <= minute < 60 for initialTimeForNewDate prop.`));
|
|
692
718
|
});
|
|
693
719
|
});
|
|
@@ -696,7 +722,7 @@ describe('<DateTimeInput />', () => {
|
|
|
696
722
|
const timezone = 'US/Eastern';
|
|
697
723
|
const initialTimeForNewDate = '16:16';
|
|
698
724
|
const defaultValue = '2018-01-18T13:30';
|
|
699
|
-
const _render17 = (0,
|
|
725
|
+
const _render17 = (0, _react.render)((0, _jsxRuntime.jsx)(_index.DateTimeInput, {
|
|
700
726
|
description: "date_time",
|
|
701
727
|
dateRenderLabel: "date-input",
|
|
702
728
|
prevMonthLabel: "Previous month",
|
|
@@ -709,7 +735,7 @@ describe('<DateTimeInput />', () => {
|
|
|
709
735
|
initialTimeForNewDate: initialTimeForNewDate
|
|
710
736
|
})),
|
|
711
737
|
container = _render17.container;
|
|
712
|
-
const timeInput =
|
|
738
|
+
const timeInput = _react.screen.getByLabelText('time-input');
|
|
713
739
|
expect(timeInput).toHaveValue('1:30 PM');
|
|
714
740
|
expect(container).toHaveTextContent('Thursday, January 18, 2018 1:30 PM');
|
|
715
741
|
});
|