@mui/x-date-pickers 6.3.1 → 6.4.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/AdapterDateFns/AdapterDateFns.d.ts +3 -7
- package/AdapterDateFns/AdapterDateFns.js +2 -8
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +3 -7
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/AdapterDayjs/AdapterDayjs.d.ts +3 -9
- package/AdapterDayjs/AdapterDayjs.js +2 -3
- package/AdapterLuxon/AdapterLuxon.d.ts +3 -8
- package/AdapterLuxon/AdapterLuxon.js +6 -5
- package/AdapterMoment/AdapterMoment.d.ts +3 -9
- package/AdapterMoment/AdapterMoment.js +2 -2
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +5 -14
- package/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +6 -16
- package/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/CHANGELOG.md +57 -0
- package/DateCalendar/DateCalendar.js +2 -2
- package/DateCalendar/DayCalendar.js +11 -10
- package/DateCalendar/PickersCalendarHeader.js +2 -2
- package/DateCalendar/useCalendarState.d.ts +1 -1
- package/DatePicker/shared.d.ts +1 -1
- package/LocalizationProvider/LocalizationProvider.d.ts +10 -8
- package/LocalizationProvider/LocalizationProvider.js +3 -3
- package/MonthCalendar/MonthCalendar.js +2 -2
- package/index.js +1 -1
- package/internals/hooks/useField/useField.utils.d.ts +13 -13
- package/internals/hooks/useField/useField.utils.js +3 -2
- package/internals/hooks/useUtils.d.ts +1 -1
- package/internals/utils/date-utils.d.ts +6 -4
- package/internals/utils/date-utils.js +16 -0
- package/internals/utils/time-utils.d.ts +4 -4
- package/internals/utils/validation/extractValidationProps.d.ts +1 -1
- package/legacy/AdapterDateFns/AdapterDateFns.js +2 -8
- package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/legacy/AdapterDayjs/AdapterDayjs.js +2 -3
- package/legacy/AdapterLuxon/AdapterLuxon.js +6 -5
- package/legacy/AdapterMoment/AdapterMoment.js +2 -2
- package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/legacy/DateCalendar/DateCalendar.js +2 -2
- package/legacy/DateCalendar/DayCalendar.js +11 -10
- package/legacy/DateCalendar/PickersCalendarHeader.js +2 -2
- package/legacy/LocalizationProvider/LocalizationProvider.js +3 -3
- package/legacy/MonthCalendar/MonthCalendar.js +2 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/useField/useField.utils.js +5 -4
- package/legacy/internals/utils/date-utils.js +16 -0
- package/legacy/locales/csCZ.js +3 -3
- package/legacy/locales/index.js +1 -0
- package/legacy/locales/skSK.js +93 -0
- package/legacy/locales/ukUA.js +3 -1
- package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +2 -7
- package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +2 -0
- package/legacy/tests/describeGregorianAdapter/index.js +2 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +272 -200
- package/legacy/tests/describeGregorianAdapter/testLocalization.js +34 -0
- package/legacy/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/legacy/tests/describeHijriAdapter/testCalculations.js +101 -28
- package/legacy/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/legacy/tests/describeJalaliAdapter/testCalculations.js +157 -24
- package/legacy/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/locales/beBY.d.ts +3 -3
- package/locales/caES.d.ts +3 -3
- package/locales/csCZ.d.ts +3 -3
- package/locales/csCZ.js +3 -3
- package/locales/daDK.d.ts +3 -3
- package/locales/deDE.d.ts +3 -3
- package/locales/enUS.d.ts +3 -3
- package/locales/esES.d.ts +3 -3
- package/locales/faIR.d.ts +3 -3
- package/locales/fiFI.d.ts +3 -3
- package/locales/frFR.d.ts +3 -3
- package/locales/heIL.d.ts +3 -3
- package/locales/huHU.d.ts +3 -3
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/isIS.d.ts +3 -3
- package/locales/itIT.d.ts +3 -3
- package/locales/jaJP.d.ts +3 -3
- package/locales/koKR.d.ts +3 -3
- package/locales/kzKZ.d.ts +3 -3
- package/locales/nbNO.d.ts +3 -3
- package/locales/nlNL.d.ts +3 -3
- package/locales/plPL.d.ts +3 -3
- package/locales/ptBR.d.ts +3 -3
- package/locales/ruRU.d.ts +3 -3
- package/locales/skSK.d.ts +53 -0
- package/locales/skSK.js +61 -0
- package/locales/svSE.d.ts +3 -3
- package/locales/trTR.d.ts +3 -3
- package/locales/ukUA.d.ts +3 -3
- package/locales/ukUA.js +1 -1
- package/locales/urPK.d.ts +3 -3
- package/locales/utils/getPickersLocalization.d.ts +3 -3
- package/locales/zhCN.d.ts +3 -3
- package/models/adapters.d.ts +43 -35
- package/modern/AdapterDateFns/AdapterDateFns.js +2 -8
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/modern/AdapterDayjs/AdapterDayjs.js +2 -2
- package/modern/AdapterLuxon/AdapterLuxon.js +6 -5
- package/modern/AdapterMoment/AdapterMoment.js +2 -2
- package/modern/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/modern/DateCalendar/DateCalendar.js +2 -2
- package/modern/DateCalendar/DayCalendar.js +11 -10
- package/modern/DateCalendar/PickersCalendarHeader.js +2 -2
- package/modern/LocalizationProvider/LocalizationProvider.js +3 -3
- package/modern/MonthCalendar/MonthCalendar.js +2 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useField/useField.utils.js +3 -2
- package/modern/internals/utils/date-utils.js +16 -0
- package/modern/locales/csCZ.js +3 -3
- package/modern/locales/index.js +1 -0
- package/modern/locales/skSK.js +58 -0
- package/modern/locales/ukUA.js +1 -1
- package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +2 -7
- package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +2 -0
- package/modern/tests/describeGregorianAdapter/index.js +2 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +272 -198
- package/modern/tests/describeGregorianAdapter/testLocalization.js +34 -0
- package/modern/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/modern/tests/describeHijriAdapter/testCalculations.js +101 -28
- package/modern/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/modern/tests/describeJalaliAdapter/testCalculations.js +157 -24
- package/modern/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/node/AdapterDateFns/AdapterDateFns.js +2 -8
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/node/AdapterDayjs/AdapterDayjs.js +2 -2
- package/node/AdapterLuxon/AdapterLuxon.js +6 -5
- package/node/AdapterMoment/AdapterMoment.js +2 -2
- package/node/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/node/DateCalendar/DateCalendar.js +1 -1
- package/node/DateCalendar/DayCalendar.js +11 -10
- package/node/DateCalendar/PickersCalendarHeader.js +2 -2
- package/node/LocalizationProvider/LocalizationProvider.js +5 -5
- package/node/MonthCalendar/MonthCalendar.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/hooks/useField/useField.utils.js +3 -2
- package/node/internals/utils/date-utils.js +20 -2
- package/node/locales/csCZ.js +3 -3
- package/node/locales/index.js +11 -0
- package/node/locales/skSK.js +65 -0
- package/node/locales/ukUA.js +1 -1
- package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -9
- package/node/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +10 -0
- package/node/tests/describeGregorianAdapter/index.js +4 -3
- package/node/tests/describeGregorianAdapter/testCalculations.js +272 -198
- package/node/tests/describeGregorianAdapter/testLocalization.js +35 -0
- package/node/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/node/tests/describeHijriAdapter/testCalculations.js +100 -27
- package/node/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/node/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/node/tests/describeJalaliAdapter/testCalculations.js +156 -23
- package/node/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/package.json +1 -1
- package/tests/describeGregorianAdapter/describeGregorianAdapter.js +2 -7
- package/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +2 -0
- package/tests/describeGregorianAdapter/index.js +2 -1
- package/tests/describeGregorianAdapter/testCalculations.js +272 -198
- package/tests/describeGregorianAdapter/testLocalization.js +34 -0
- package/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/tests/describeHijriAdapter/testCalculations.js +101 -28
- package/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/tests/describeJalaliAdapter/testCalculations.js +157 -24
- package/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/themeAugmentation/props.d.ts +1 -1
|
@@ -3,16 +3,11 @@ import createDescribe from '@mui/monorepo/test/utils/createDescribe';
|
|
|
3
3
|
import { testCalculations } from './testCalculations';
|
|
4
4
|
import { testLocalization } from './testLocalization';
|
|
5
5
|
import { testFormat } from './testFormat';
|
|
6
|
-
export const TEST_DATE_ISO = '2018-10-30T11:44:00.000Z';
|
|
7
6
|
function innerGregorianDescribeAdapter(Adapter, params) {
|
|
8
|
-
const adapter = new Adapter(
|
|
9
|
-
locale: params.locale
|
|
10
|
-
});
|
|
7
|
+
const adapter = new Adapter();
|
|
11
8
|
describe(adapter.lib, () => {
|
|
12
9
|
const testSuitParams = _extends({}, params, {
|
|
13
|
-
adapter
|
|
14
|
-
testDateISO: TEST_DATE_ISO,
|
|
15
|
-
testDate: adapter.date(TEST_DATE_ISO)
|
|
10
|
+
adapter
|
|
16
11
|
});
|
|
17
12
|
testCalculations(testSuitParams);
|
|
18
13
|
testLocalization(testSuitParams);
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { describeGregorianAdapter
|
|
1
|
+
export { describeGregorianAdapter } from './describeGregorianAdapter';
|
|
2
|
+
export { TEST_DATE_ISO_STRING } from './describeGregorianAdapter.utils';
|
|
@@ -1,275 +1,349 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
+
import { TEST_DATE_ISO_STRING, TEST_DATE_LOCALE_STRING } from './describeGregorianAdapter.utils';
|
|
2
3
|
export const testCalculations = ({
|
|
3
|
-
adapter
|
|
4
|
-
testDate,
|
|
5
|
-
testDateISO,
|
|
6
|
-
formatDateTime
|
|
4
|
+
adapter
|
|
7
5
|
}) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
const testDateIso = adapter.date(TEST_DATE_ISO_STRING);
|
|
7
|
+
const testDateLocale = adapter.date(TEST_DATE_LOCALE_STRING);
|
|
8
|
+
describe('Method: date', () => {
|
|
9
|
+
it('should parse strings', () => {
|
|
10
|
+
expect(adapter.isEqual(testDateIso, adapter.date(TEST_DATE_ISO_STRING))).to.equal(true);
|
|
11
|
+
expect(adapter.isEqual(testDateLocale, adapter.date(TEST_DATE_LOCALE_STRING))).to.equal(true);
|
|
12
|
+
});
|
|
13
|
+
it('should parse native Date object', () => {
|
|
14
|
+
expect(adapter.isEqual(testDateIso, adapter.date(new Date(TEST_DATE_ISO_STRING)))).to.equal(true);
|
|
15
|
+
expect(adapter.isEqual(testDateLocale, adapter.date(new Date(TEST_DATE_LOCALE_STRING)))).to.equal(true);
|
|
16
|
+
});
|
|
17
|
+
it('should parse already-parsed object', () => {
|
|
18
|
+
expect(adapter.isEqual(testDateIso, adapter.date(adapter.date(TEST_DATE_ISO_STRING)))).to.equal(true);
|
|
19
|
+
expect(adapter.isEqual(testDateLocale, adapter.date(adapter.date(TEST_DATE_LOCALE_STRING)))).to.equal(true);
|
|
20
|
+
});
|
|
21
|
+
it('should parse null', () => {
|
|
22
|
+
expect(adapter.date(null)).to.equal(null);
|
|
23
|
+
});
|
|
24
|
+
it('should parse undefined', () => {
|
|
25
|
+
expect(adapter.date(undefined)).toEqualDateTime(new Date());
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
it('Method: toJsDate', () => {
|
|
29
|
+
expect(adapter.toJsDate(testDateIso)).to.be.instanceOf(Date);
|
|
30
|
+
expect(adapter.toJsDate(testDateLocale)).to.be.instanceOf(Date);
|
|
31
|
+
});
|
|
32
|
+
it('Method: parseISO', () => {
|
|
33
|
+
expect(adapter.parseISO(TEST_DATE_ISO_STRING)).toEqualDateTime(testDateIso);
|
|
34
|
+
});
|
|
35
|
+
it('Method: toISO', () => {
|
|
36
|
+
const outputtedISO = adapter.toISO(testDateIso);
|
|
37
|
+
if (adapter.lib === 'date-fns') {
|
|
38
|
+
// date-fns never suppress useless milliseconds in the end
|
|
39
|
+
expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING.replace('.000Z', 'Z'));
|
|
40
|
+
} else if (adapter.lib === 'luxon') {
|
|
41
|
+
// luxon does not shorthand +00:00 to Z, which is also valid ISO string
|
|
42
|
+
expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING.replace('Z', '+00:00'));
|
|
43
|
+
} else {
|
|
44
|
+
expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
it('Method: parse', () => {
|
|
48
|
+
// Date time
|
|
49
|
+
expect(adapter.parse('10/30/2018 11:44', adapter.formats.keyboardDateTime24h)).toEqualDateTime('2018-10-30T11:44:00.000Z');
|
|
14
50
|
|
|
15
|
-
//
|
|
16
|
-
expect(adapter.
|
|
51
|
+
// Date
|
|
52
|
+
expect(adapter.parse('10/30/2018', adapter.formats.keyboardDate)).toEqualDateTime('2018-10-30T00:00:00.000Z');
|
|
17
53
|
|
|
18
|
-
//
|
|
19
|
-
expect(adapter.
|
|
54
|
+
// Empty string
|
|
55
|
+
expect(adapter.parse('', adapter.formats.keyboardDate)).to.equal(null);
|
|
20
56
|
|
|
21
|
-
//
|
|
22
|
-
expect(
|
|
57
|
+
// Invalid input
|
|
58
|
+
expect(adapter.isValid(adapter.parse('99/99/9999', adapter.formats.keyboardDate))).to.equal(false);
|
|
59
|
+
});
|
|
60
|
+
it('Method: isNull', () => {
|
|
61
|
+
expect(adapter.isNull(null)).to.equal(true);
|
|
62
|
+
expect(adapter.isNull(testDateIso)).to.equal(false);
|
|
63
|
+
expect(adapter.isNull(testDateLocale)).to.equal(false);
|
|
23
64
|
});
|
|
24
65
|
it('Method: isValid', () => {
|
|
25
66
|
const invalidDate = adapter.date('2018-42-30T11:60:00.000Z');
|
|
26
|
-
expect(adapter.isValid(
|
|
67
|
+
expect(adapter.isValid(testDateIso)).to.equal(true);
|
|
68
|
+
expect(adapter.isValid(testDateLocale)).to.equal(true);
|
|
27
69
|
expect(adapter.isValid(invalidDate)).to.equal(false);
|
|
28
70
|
expect(adapter.isValid(undefined)).to.equal(true);
|
|
29
71
|
expect(adapter.isValid(null)).to.equal(false);
|
|
30
72
|
expect(adapter.isValid('2018-42-30T11:60:00.000Z')).to.equal(false);
|
|
31
73
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
74
|
+
describe('Method: getDiff', () => {
|
|
75
|
+
it('should compute the millisecond diff when there is no unit', () => {
|
|
76
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-10-29T11:44:00.000Z'))).to.equal(86400000);
|
|
77
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
|
|
78
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
|
|
79
|
+
});
|
|
80
|
+
it('should compute the diff in the provided unit (ISO)', () => {
|
|
81
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2017-09-29T11:44:00.000Z'), 'years')).to.equal(1);
|
|
82
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-08-29T11:44:00.000Z'), 'months')).to.equal(2);
|
|
83
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-05-29T11:44:00.000Z'), 'quarters')).to.equal(1);
|
|
84
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'days')).to.equal(31);
|
|
85
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'weeks')).to.equal(4);
|
|
86
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'hours')).to.equal(744);
|
|
87
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'minutes')).to.equal(44640);
|
|
88
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-10-30T10:44:00.000Z'), 'seconds')).to.equal(3600);
|
|
89
|
+
expect(adapter.getDiff(testDateIso, adapter.date('2018-10-30T10:44:00.000Z'), 'milliseconds')).to.equal(3600000);
|
|
90
|
+
});
|
|
91
|
+
it('should compute the diff in the provided unit (locale)', () => {
|
|
92
|
+
expect(adapter.getDiff(testDateLocale, adapter.date('2017-09-29'), 'years')).to.equal(1);
|
|
93
|
+
expect(adapter.getDiff(testDateLocale, adapter.date('2018-08-29'), 'months')).to.equal(2);
|
|
94
|
+
expect(adapter.getDiff(testDateLocale, adapter.date('2018-05-29'), 'quarters')).to.equal(1);
|
|
95
|
+
expect(adapter.getDiff(testDateLocale, adapter.date('2018-09-29'), 'days')).to.equal(31);
|
|
96
|
+
expect(adapter.getDiff(testDateLocale, adapter.date('2018-09-29'), 'weeks')).to.equal(4);
|
|
97
|
+
});
|
|
98
|
+
it('should compute the diff with string "comparing" param', () => {
|
|
99
|
+
expect(adapter.getDiff(testDateLocale, '2017-09-29', 'years')).to.equal(1);
|
|
100
|
+
expect(adapter.getDiff(testDateLocale, '2018-08-29', 'months')).to.equal(2);
|
|
101
|
+
expect(adapter.getDiff(testDateLocale, '2018-05-29', 'quarters')).to.equal(1);
|
|
102
|
+
expect(adapter.getDiff(testDateLocale, '2018-09-29', 'days')).to.equal(31);
|
|
103
|
+
expect(adapter.getDiff(testDateLocale, '2018-09-29', 'weeks')).to.equal(4);
|
|
104
|
+
});
|
|
35
105
|
});
|
|
36
|
-
it('Method:
|
|
37
|
-
expect(adapter.
|
|
38
|
-
expect(adapter.
|
|
106
|
+
it('Method: isEqual', () => {
|
|
107
|
+
expect(adapter.isEqual(adapter.date(null), null)).to.equal(true);
|
|
108
|
+
expect(adapter.isEqual(testDateIso, adapter.date(TEST_DATE_ISO_STRING))).to.equal(true);
|
|
109
|
+
expect(adapter.isEqual(null, testDateIso)).to.equal(false);
|
|
110
|
+
expect(adapter.isEqual(testDateLocale, adapter.date(TEST_DATE_LOCALE_STRING))).to.equal(true);
|
|
111
|
+
expect(adapter.isEqual(null, testDateLocale)).to.equal(false);
|
|
39
112
|
});
|
|
40
|
-
it('Method:
|
|
41
|
-
expect(adapter.
|
|
42
|
-
expect(adapter.
|
|
113
|
+
it('Method: isSameYear', () => {
|
|
114
|
+
expect(adapter.isSameYear(testDateIso, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
115
|
+
expect(adapter.isSameYear(testDateIso, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
116
|
+
expect(adapter.isSameYear(testDateLocale, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
117
|
+
expect(adapter.isSameYear(testDateLocale, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
43
118
|
});
|
|
44
|
-
it('Method:
|
|
45
|
-
expect(adapter.
|
|
46
|
-
expect(adapter.
|
|
119
|
+
it('Method: isSameMonth', () => {
|
|
120
|
+
expect(adapter.isSameMonth(testDateIso, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
121
|
+
expect(adapter.isSameMonth(testDateIso, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
122
|
+
expect(adapter.isSameMonth(testDateLocale, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
123
|
+
expect(adapter.isSameMonth(testDateLocale, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
47
124
|
});
|
|
48
|
-
it('Method:
|
|
49
|
-
expect(adapter.
|
|
50
|
-
expect(adapter.
|
|
125
|
+
it('Method: isSameDay', () => {
|
|
126
|
+
expect(adapter.isSameDay(testDateIso, adapter.date('2018-10-30T00:00:00.000Z'))).to.equal(true);
|
|
127
|
+
expect(adapter.isSameDay(testDateIso, adapter.date('2019-10-30T00:00:00.000Z'))).to.equal(false);
|
|
128
|
+
expect(adapter.isSameDay(testDateLocale, adapter.date('2018-10-30T00:00:00.000Z'))).to.equal(true);
|
|
129
|
+
expect(adapter.isSameDay(testDateLocale, adapter.date('2019-10-30T00:00:00.000Z'))).to.equal(false);
|
|
51
130
|
});
|
|
52
|
-
it('Method:
|
|
53
|
-
expect(adapter.
|
|
54
|
-
expect(adapter.
|
|
131
|
+
it('Method: isSameHour', () => {
|
|
132
|
+
expect(adapter.isSameHour(testDateIso, adapter.date('2018-10-30T11:00:00.000Z'))).to.equal(true);
|
|
133
|
+
expect(adapter.isSameHour(testDateIso, adapter.date('2018-10-30T12:00:00.000Z'))).to.equal(false);
|
|
55
134
|
});
|
|
56
|
-
it('Method:
|
|
57
|
-
expect(adapter.
|
|
58
|
-
expect(adapter.
|
|
135
|
+
it('Method: isAfter', () => {
|
|
136
|
+
expect(adapter.isAfter(adapter.date(), testDateIso)).to.equal(true);
|
|
137
|
+
expect(adapter.isAfter(testDateIso, adapter.date())).to.equal(false);
|
|
138
|
+
expect(adapter.isAfter(adapter.date(), testDateLocale)).to.equal(true);
|
|
139
|
+
expect(adapter.isAfter(testDateLocale, adapter.date())).to.equal(false);
|
|
140
|
+
});
|
|
141
|
+
it('Method: isAfterYear', () => {
|
|
142
|
+
const nextYearIso = adapter.addYears(testDateIso, 1);
|
|
143
|
+
expect(adapter.isAfterYear(nextYearIso, testDateIso)).to.equal(true);
|
|
144
|
+
expect(adapter.isAfterYear(testDateIso, nextYearIso)).to.equal(false);
|
|
145
|
+
const nextYearLocale = adapter.addYears(testDateLocale, 1);
|
|
146
|
+
expect(adapter.isAfterYear(nextYearLocale, testDateLocale)).to.equal(true);
|
|
147
|
+
expect(adapter.isAfterYear(testDateLocale, nextYearLocale)).to.equal(false);
|
|
148
|
+
});
|
|
149
|
+
it('Method: isAfterDay', () => {
|
|
150
|
+
const nextDayIso = adapter.addDays(testDateIso, 1);
|
|
151
|
+
expect(adapter.isAfterDay(nextDayIso, testDateIso)).to.equal(true);
|
|
152
|
+
expect(adapter.isAfterDay(testDateIso, nextDayIso)).to.equal(false);
|
|
153
|
+
const nextDayLocale = adapter.addDays(testDateLocale, 1);
|
|
154
|
+
expect(adapter.isAfterDay(nextDayLocale, testDateLocale)).to.equal(true);
|
|
155
|
+
expect(adapter.isAfterDay(testDateLocale, nextDayLocale)).to.equal(false);
|
|
156
|
+
});
|
|
157
|
+
it('Method: isBefore', () => {
|
|
158
|
+
expect(adapter.isBefore(testDateIso, adapter.date())).to.equal(true);
|
|
159
|
+
expect(adapter.isBefore(adapter.date(), testDateIso)).to.equal(false);
|
|
160
|
+
expect(adapter.isBefore(testDateLocale, adapter.date())).to.equal(true);
|
|
161
|
+
expect(adapter.isBefore(adapter.date(), testDateLocale)).to.equal(false);
|
|
162
|
+
});
|
|
163
|
+
it('Method: isBeforeYear', () => {
|
|
164
|
+
const nextYearIso = adapter.addYears(testDateIso, -1);
|
|
165
|
+
expect(adapter.isBeforeYear(nextYearIso, testDateIso)).to.equal(true);
|
|
166
|
+
expect(adapter.isBeforeYear(testDateIso, nextYearIso)).to.equal(false);
|
|
167
|
+
const nextYearLocale = adapter.addYears(testDateLocale, -1);
|
|
168
|
+
expect(adapter.isBeforeYear(nextYearLocale, testDateLocale)).to.equal(true);
|
|
169
|
+
expect(adapter.isBeforeYear(testDateLocale, nextYearLocale)).to.equal(false);
|
|
170
|
+
});
|
|
171
|
+
it('Method: isBeforeDay', () => {
|
|
172
|
+
const nextDayIso = adapter.addDays(testDateIso, -1);
|
|
173
|
+
expect(adapter.isBeforeDay(nextDayIso, testDateIso)).to.equal(true);
|
|
174
|
+
expect(adapter.isBeforeDay(testDateIso, nextDayIso)).to.equal(false);
|
|
175
|
+
const nextDayLocale = adapter.addDays(testDateLocale, -1);
|
|
176
|
+
expect(adapter.isBeforeDay(nextDayLocale, testDateLocale)).to.equal(true);
|
|
177
|
+
expect(adapter.isBeforeDay(testDateLocale, nextDayLocale)).to.equal(false);
|
|
178
|
+
});
|
|
179
|
+
describe('Method: isWithinRange', () => {
|
|
180
|
+
it('should work on simple examples', () => {
|
|
181
|
+
expect(adapter.isWithinRange(adapter.date('2019-10-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-11-01T00:00:00.000Z')])).to.equal(true);
|
|
182
|
+
expect(adapter.isWithinRange(adapter.date('2019-12-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-11-01T00:00:00.000Z')])).to.equal(false);
|
|
183
|
+
expect(adapter.isWithinRange(adapter.date('2019-10-01'), [adapter.date('2019-09-01'), adapter.date('2019-11-01')])).to.equal(true);
|
|
184
|
+
expect(adapter.isWithinRange(adapter.date('2019-12-01'), [adapter.date('2019-09-01'), adapter.date('2019-11-01')])).to.equal(false);
|
|
185
|
+
});
|
|
186
|
+
it('should use inclusivity of range', () => {
|
|
187
|
+
expect(adapter.isWithinRange(adapter.date('2019-09-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-12-01T00:00:00.000Z')])).to.equal(true);
|
|
188
|
+
expect(adapter.isWithinRange(adapter.date('2019-12-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-12-01T00:00:00.000Z')])).to.equal(true);
|
|
189
|
+
expect(adapter.isWithinRange(adapter.date('2019-09-01'), [adapter.date('2019-09-01'), adapter.date('2019-12-01')])).to.equal(true);
|
|
190
|
+
expect(adapter.isWithinRange(adapter.date('2019-12-01'), [adapter.date('2019-09-01'), adapter.date('2019-12-01')])).to.equal(true);
|
|
191
|
+
});
|
|
59
192
|
});
|
|
60
193
|
it('Method: startOfYear', () => {
|
|
61
|
-
|
|
194
|
+
const expected = '2018-01-01T00:00:00.000Z';
|
|
195
|
+
expect(adapter.startOfYear(testDateIso)).toEqualDateTime(expected);
|
|
196
|
+
expect(adapter.startOfYear(testDateLocale)).toEqualDateTime(expected);
|
|
62
197
|
});
|
|
63
198
|
it('Method: startOfMonth', () => {
|
|
64
|
-
|
|
199
|
+
const expected = '2018-10-01T00:00:00.000Z';
|
|
200
|
+
expect(adapter.startOfMonth(testDateIso)).toEqualDateTime(expected);
|
|
201
|
+
expect(adapter.startOfMonth(testDateLocale)).toEqualDateTime(expected);
|
|
65
202
|
});
|
|
66
203
|
it('Method: startOfWeek', () => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
expect(adapter.formatByString(adapter.startOfWeek(adapter.date('2018-10-28T00:00:00.000Z')), formatDateTime)).to.equal(adapter.lib === 'luxon' ? '2018-10-22 00:00:00' : '2018-10-28 00:00:00');
|
|
204
|
+
const expected = adapter.lib === 'luxon' ? '2018-10-29T00:00:00.000Z' : '2018-10-28T00:00:00.000Z';
|
|
205
|
+
expect(adapter.startOfWeek(testDateIso)).toEqualDateTime(expected);
|
|
206
|
+
expect(adapter.startOfWeek(testDateLocale)).toEqualDateTime(expected);
|
|
71
207
|
});
|
|
72
208
|
it('Method: startOfDay', () => {
|
|
73
|
-
|
|
209
|
+
const expected = '2018-10-30T00:00:00.000Z';
|
|
210
|
+
expect(adapter.startOfDay(testDateIso)).toEqualDateTime(expected);
|
|
211
|
+
expect(adapter.startOfDay(testDateLocale)).toEqualDateTime(expected);
|
|
74
212
|
});
|
|
75
213
|
it('Method: endOfYear', () => {
|
|
76
|
-
|
|
214
|
+
const expected = '2018-12-31T23:59:59.999Z';
|
|
215
|
+
expect(adapter.endOfYear(testDateIso)).toEqualDateTime(expected);
|
|
216
|
+
expect(adapter.endOfYear(testDateLocale)).toEqualDateTime(expected);
|
|
77
217
|
});
|
|
78
218
|
it('Method: endOfMonth', () => {
|
|
79
|
-
|
|
219
|
+
const expected = '2018-10-31T23:59:59.999Z';
|
|
220
|
+
expect(adapter.endOfMonth(testDateIso)).toEqualDateTime(expected);
|
|
221
|
+
expect(adapter.endOfMonth(testDateLocale)).toEqualDateTime(expected);
|
|
80
222
|
});
|
|
81
223
|
it('Method: endOfWeek', () => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
expect(adapter.formatByString(adapter.endOfWeek(adapter.date('2018-10-28T00:00:00.000Z')), formatDateTime)).to.equal(adapter.lib === 'luxon' ? '2018-10-28 23:59:59' : '2018-11-03 23:59:59');
|
|
224
|
+
const expected = adapter.lib === 'luxon' ? '2018-11-04T23:59:59.999Z' : '2018-11-03T23:59:59.999Z';
|
|
225
|
+
expect(adapter.endOfWeek(testDateIso)).toEqualDateTime(expected);
|
|
226
|
+
expect(adapter.endOfWeek(testDateLocale)).toEqualDateTime(expected);
|
|
86
227
|
});
|
|
87
228
|
it('Method: endOfDay', () => {
|
|
88
|
-
|
|
229
|
+
const expected = '2018-10-30T23:59:59.999Z';
|
|
230
|
+
expect(adapter.endOfDay(testDateIso)).toEqualDateTime(expected);
|
|
231
|
+
expect(adapter.endOfDay(testDateLocale)).toEqualDateTime(expected);
|
|
89
232
|
});
|
|
90
|
-
it('Method:
|
|
91
|
-
expect(adapter.
|
|
233
|
+
it('Method: addYears', () => {
|
|
234
|
+
expect(adapter.addYears(testDateIso, 2)).toEqualDateTime('2020-10-30T11:44:00.000Z');
|
|
235
|
+
expect(adapter.addYears(testDateIso, -2)).toEqualDateTime('2016-10-30T11:44:00.000Z');
|
|
92
236
|
});
|
|
93
|
-
it('Method:
|
|
94
|
-
expect(adapter.
|
|
237
|
+
it('Method: addMonths', () => {
|
|
238
|
+
expect(adapter.addMonths(testDateIso, 2)).toEqualDateTime('2018-12-30T11:44:00.000Z');
|
|
239
|
+
expect(adapter.addMonths(testDateIso, -2)).toEqualDateTime('2018-08-30T11:44:00.000Z');
|
|
240
|
+
expect(adapter.addMonths(testDateIso, 3)).toEqualDateTime('2019-01-30T11:44:00.000Z');
|
|
95
241
|
});
|
|
96
|
-
it('Method:
|
|
97
|
-
expect(adapter.
|
|
242
|
+
it('Method: addWeeks', () => {
|
|
243
|
+
expect(adapter.addWeeks(testDateIso, 2)).toEqualDateTime('2018-11-13T11:44:00.000Z');
|
|
244
|
+
expect(adapter.addWeeks(testDateIso, -2)).toEqualDateTime('2018-10-16T11:44:00.000Z');
|
|
98
245
|
});
|
|
99
|
-
it('Method:
|
|
100
|
-
expect(adapter.
|
|
246
|
+
it('Method: addDays', () => {
|
|
247
|
+
expect(adapter.addDays(testDateIso, 2)).toEqualDateTime('2018-11-01T11:44:00.000Z');
|
|
248
|
+
expect(adapter.addDays(testDateIso, -2)).toEqualDateTime('2018-10-28T11:44:00.000Z');
|
|
101
249
|
});
|
|
102
|
-
it('Method:
|
|
103
|
-
expect(adapter.
|
|
250
|
+
it('Method: addHours', () => {
|
|
251
|
+
expect(adapter.addHours(testDateIso, 2)).toEqualDateTime('2018-10-30T13:44:00.000Z');
|
|
252
|
+
expect(adapter.addHours(testDateIso, -2)).toEqualDateTime('2018-10-30T09:44:00.000Z');
|
|
253
|
+
expect(adapter.addHours(testDateIso, 15)).toEqualDateTime('2018-10-31T02:44:00.000Z');
|
|
104
254
|
});
|
|
105
|
-
it('Method:
|
|
106
|
-
expect(adapter.
|
|
255
|
+
it('Method: addMinutes', () => {
|
|
256
|
+
expect(adapter.addMinutes(testDateIso, 2)).toEqualDateTime('2018-10-30T11:46:00.000Z');
|
|
257
|
+
expect(adapter.addMinutes(testDateIso, -2)).toEqualDateTime('2018-10-30T11:42:00.000Z');
|
|
258
|
+
expect(adapter.addMinutes(testDateIso, 20)).toEqualDateTime('2018-10-30T12:04:00.000Z');
|
|
107
259
|
});
|
|
108
|
-
it('Method:
|
|
109
|
-
expect(adapter.
|
|
260
|
+
it('Method: addSeconds', () => {
|
|
261
|
+
expect(adapter.addSeconds(testDateIso, 2)).toEqualDateTime('2018-10-30T11:44:02.000Z');
|
|
262
|
+
expect(adapter.addSeconds(testDateIso, -2)).toEqualDateTime('2018-10-30T11:43:58.000Z');
|
|
263
|
+
expect(adapter.addSeconds(testDateIso, 70)).toEqualDateTime('2018-10-30T11:45:10.000Z');
|
|
110
264
|
});
|
|
111
265
|
it('Method: getYear', () => {
|
|
112
|
-
expect(adapter.getYear(
|
|
266
|
+
expect(adapter.getYear(testDateIso)).to.equal(2018);
|
|
113
267
|
});
|
|
114
268
|
it('Method: getMonth', () => {
|
|
115
|
-
expect(adapter.getMonth(
|
|
269
|
+
expect(adapter.getMonth(testDateIso)).to.equal(9);
|
|
116
270
|
});
|
|
117
|
-
it('Method:
|
|
118
|
-
expect(adapter.
|
|
119
|
-
});
|
|
120
|
-
it('Method: setMonth', () => {
|
|
121
|
-
const updatedTime = adapter.formatByString(adapter.setMonth(testDate, 4), formatDateTime);
|
|
122
|
-
expect(updatedTime).to.equal('2018-05-30 11:44:00');
|
|
271
|
+
it('Method: getDate', () => {
|
|
272
|
+
expect(adapter.getDate(testDateIso)).to.equal(30);
|
|
123
273
|
});
|
|
124
|
-
it('Method:
|
|
125
|
-
|
|
126
|
-
expect(updatedTime).to.equal('2018-10-30 00:44:00');
|
|
274
|
+
it('Method: getHours', () => {
|
|
275
|
+
expect(adapter.getHours(testDateIso)).to.equal(11);
|
|
127
276
|
});
|
|
128
|
-
it('Method:
|
|
129
|
-
|
|
130
|
-
expect(updatedTime).to.equal('2018-10-30 11:12:00');
|
|
277
|
+
it('Method: getMinutes', () => {
|
|
278
|
+
expect(adapter.getMinutes(testDateIso)).to.equal(44);
|
|
131
279
|
});
|
|
132
|
-
it('Method:
|
|
133
|
-
|
|
134
|
-
expect(updatedTime).to.equal('2018-10-30 11:12:00');
|
|
280
|
+
it('Method: getSeconds', () => {
|
|
281
|
+
expect(adapter.getSeconds(testDateIso)).to.equal(0);
|
|
135
282
|
});
|
|
136
283
|
it('Method: setYear', () => {
|
|
137
|
-
|
|
138
|
-
|
|
284
|
+
expect(adapter.setYear(testDateIso, 2011)).toEqualDateTime('2011-10-30T11:44:00.000Z');
|
|
285
|
+
});
|
|
286
|
+
it('Method: setMonth', () => {
|
|
287
|
+
expect(adapter.setMonth(testDateIso, 4)).toEqualDateTime('2018-05-30T11:44:00.000Z');
|
|
139
288
|
});
|
|
140
289
|
it('Method: setDate', () => {
|
|
141
|
-
|
|
142
|
-
expect(updatedTime).to.equal('2018-10-15 11:44:00');
|
|
290
|
+
expect(adapter.setDate(testDateIso, 15)).toEqualDateTime('2018-10-15T11:44:00.000Z');
|
|
143
291
|
});
|
|
144
|
-
it('Method:
|
|
145
|
-
|
|
146
|
-
expect(updatedValue).to.equal('2018-10-30 11:44:11');
|
|
292
|
+
it('Method: setHours', () => {
|
|
293
|
+
expect(adapter.setHours(testDateIso, 0)).toEqualDateTime('2018-10-30T00:44:00.000Z');
|
|
147
294
|
});
|
|
148
|
-
it('Method:
|
|
149
|
-
expect(adapter.
|
|
150
|
-
expect(adapter.isAfter(testDate, adapter.date())).to.equal(false);
|
|
295
|
+
it('Method: setMinutes', () => {
|
|
296
|
+
expect(adapter.setMinutes(testDateIso, 12)).toEqualDateTime('2018-10-30T11:12:00.000Z');
|
|
151
297
|
});
|
|
152
|
-
it('Method:
|
|
153
|
-
expect(adapter.
|
|
154
|
-
expect(adapter.isBefore(adapter.date(), testDate)).to.equal(false);
|
|
298
|
+
it('Method: setSeconds', () => {
|
|
299
|
+
expect(adapter.setSeconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:11.000Z');
|
|
155
300
|
});
|
|
156
|
-
it('Method:
|
|
157
|
-
|
|
158
|
-
expect(adapter.
|
|
159
|
-
expect(adapter.
|
|
301
|
+
it('Method: getDaysInMonth', () => {
|
|
302
|
+
expect(adapter.getDaysInMonth(testDateIso)).to.equal(31);
|
|
303
|
+
expect(adapter.getDaysInMonth(testDateLocale)).to.equal(31);
|
|
304
|
+
expect(adapter.getDaysInMonth(adapter.addMonths(testDateIso, 1))).to.equal(30);
|
|
160
305
|
});
|
|
161
|
-
it('Method:
|
|
162
|
-
|
|
163
|
-
expect(adapter.isBeforeDay(testDate, previousDay)).to.equal(false);
|
|
164
|
-
expect(adapter.isBeforeDay(previousDay, testDate)).to.equal(true);
|
|
306
|
+
it('Method: getNextMonth', () => {
|
|
307
|
+
expect(adapter.getNextMonth(testDateIso)).toEqualDateTime('2018-11-30T11:44:00.000Z');
|
|
165
308
|
});
|
|
166
|
-
it('Method:
|
|
167
|
-
|
|
168
|
-
expect(adapter.isAfterYear(nextYear, testDate)).to.equal(true);
|
|
169
|
-
expect(adapter.isAfterYear(testDate, nextYear)).to.equal(false);
|
|
309
|
+
it('Method: getPreviousMonth', () => {
|
|
310
|
+
expect(adapter.getPreviousMonth(testDateIso)).toEqualDateTime('2018-09-30T11:44:00.000Z');
|
|
170
311
|
});
|
|
171
|
-
it('Method:
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
|
|
312
|
+
it('Method: getMonthArray', () => {
|
|
313
|
+
const monthArray = adapter.getMonthArray(testDateIso);
|
|
314
|
+
let expectedDate = adapter.date('2018-01-01T00:00:00.000Z');
|
|
315
|
+
monthArray.forEach(month => {
|
|
316
|
+
expect(month).toEqualDateTime(expectedDate);
|
|
317
|
+
expectedDate = adapter.addMonths(expectedDate, 1);
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
it('Method: mergeDateAndTime', () => {
|
|
321
|
+
const mergedDate = adapter.mergeDateAndTime(testDateIso, adapter.date('2018-01-01T14:15:16.000Z'));
|
|
322
|
+
expect(adapter.toJsDate(mergedDate)).toEqualDateTime('2018-10-30T14:15:16.000Z');
|
|
323
|
+
});
|
|
324
|
+
it('Method: getWeekdays', () => {
|
|
325
|
+
const weekDays = adapter.getWeekdays();
|
|
326
|
+
let date = adapter.startOfWeek(testDateIso);
|
|
327
|
+
weekDays.forEach(dayLabel => {
|
|
328
|
+
expect(adapter.format(date, 'weekday').startsWith(dayLabel)).to.equal(true);
|
|
329
|
+
date = adapter.addDays(date, 1);
|
|
330
|
+
});
|
|
175
331
|
});
|
|
176
332
|
it('Method: getWeekArray', () => {
|
|
177
|
-
const weekArray = adapter.getWeekArray(
|
|
333
|
+
const weekArray = adapter.getWeekArray(testDateIso);
|
|
178
334
|
expect(weekArray).to.have.length(5);
|
|
179
335
|
weekArray.forEach(week => {
|
|
180
336
|
expect(week).to.have.length(7);
|
|
181
337
|
});
|
|
182
338
|
});
|
|
183
339
|
it('Method: getWeekNumber', () => {
|
|
184
|
-
expect(adapter.getWeekNumber(
|
|
340
|
+
expect(adapter.getWeekNumber(testDateIso)).to.equal(44);
|
|
185
341
|
});
|
|
186
342
|
it('Method: getYearRange', () => {
|
|
187
|
-
const yearRange = adapter.getYearRange(
|
|
343
|
+
const yearRange = adapter.getYearRange(testDateIso, adapter.setYear(testDateIso, 2124));
|
|
188
344
|
expect(yearRange).to.have.length(107);
|
|
189
345
|
expect(adapter.getYear(yearRange[yearRange.length - 1])).to.equal(2124);
|
|
190
|
-
const emptyYearRange = adapter.getYearRange(
|
|
346
|
+
const emptyYearRange = adapter.getYearRange(testDateIso, adapter.setYear(testDateIso, adapter.getYear(testDateIso) - 1));
|
|
191
347
|
expect(emptyYearRange).to.have.length(0);
|
|
192
348
|
});
|
|
193
|
-
it('Method: getDiff', () => {
|
|
194
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-10-29T11:44:00.000Z'))).to.equal(86400000);
|
|
195
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
|
|
196
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
|
|
197
|
-
|
|
198
|
-
// With units
|
|
199
|
-
expect(adapter.getDiff(testDate, adapter.date('2017-09-29T11:44:00.000Z'), 'years')).to.equal(1);
|
|
200
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-08-29T11:44:00.000Z'), 'months')).to.equal(2);
|
|
201
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-05-29T11:44:00.000Z'), 'quarters')).to.equal(1);
|
|
202
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-09-29T11:44:00.000Z'), 'days')).to.equal(31);
|
|
203
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-09-29T11:44:00.000Z'), 'weeks')).to.equal(4);
|
|
204
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-09-29T11:44:00.000Z'), 'hours')).to.equal(744);
|
|
205
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-09-29T11:44:00.000Z'), 'minutes')).to.equal(44640);
|
|
206
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-10-30T10:44:00.000Z'), 'seconds')).to.equal(3600);
|
|
207
|
-
expect(adapter.getDiff(testDate, adapter.date('2018-10-30T10:44:00.000Z'), 'milliseconds')).to.equal(3600000);
|
|
208
|
-
});
|
|
209
|
-
it('Method: mergeDateAndTime', () => {
|
|
210
|
-
const mergedDate = adapter.mergeDateAndTime(testDate, adapter.date('2018-01-01T14:15:16.000Z'));
|
|
211
|
-
expect(adapter.toJsDate(mergedDate).toISOString()).to.equal('2018-10-30T14:15:16.000Z');
|
|
212
|
-
});
|
|
213
|
-
it('Method: isEqual', () => {
|
|
214
|
-
expect(adapter.isEqual(adapter.date(null), null)).to.equal(true);
|
|
215
|
-
expect(adapter.isEqual(testDate, adapter.date(testDateISO))).to.equal(true);
|
|
216
|
-
expect(adapter.isEqual(null, adapter.date(testDateISO))).to.equal(false);
|
|
217
|
-
});
|
|
218
|
-
it('Method: parseISO', () => {
|
|
219
|
-
const parsedDate = adapter.parseISO(testDateISO);
|
|
220
|
-
const outputtedISO = adapter.toISO(parsedDate);
|
|
221
|
-
if (adapter.lib === 'date-fns') {
|
|
222
|
-
// date-fns never suppress useless milliseconds in the end
|
|
223
|
-
expect(outputtedISO).to.equal(testDateISO.replace('.000Z', 'Z'));
|
|
224
|
-
} else if (adapter.lib === 'luxon') {
|
|
225
|
-
// luxon does not shorthand +00:00 to Z, which is also valid ISO string
|
|
226
|
-
expect(outputtedISO).to.equal(testDateISO.replace('Z', '+00:00'));
|
|
227
|
-
} else {
|
|
228
|
-
expect(outputtedISO).to.equal(testDateISO);
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
it('Method: parse', () => {
|
|
232
|
-
const parsedDate = adapter.parse('2018-10-30 11:44:00', formatDateTime);
|
|
233
|
-
expect(adapter.isEqual(parsedDate, testDate)).to.equal(true);
|
|
234
|
-
expect(adapter.parse('', formatDateTime)).to.equal(null);
|
|
235
|
-
|
|
236
|
-
// Invalid input
|
|
237
|
-
const invalidateParsedDate = adapter.parse('99-99-9999', formatDateTime);
|
|
238
|
-
expect(adapter.isValid(invalidateParsedDate)).to.equal(false);
|
|
239
|
-
});
|
|
240
|
-
it('Method: isNull', () => {
|
|
241
|
-
expect(adapter.isNull(null)).to.equal(true);
|
|
242
|
-
expect(adapter.isNull(testDate)).to.equal(false);
|
|
243
|
-
});
|
|
244
|
-
it('Method: isSameDay', () => {
|
|
245
|
-
expect(adapter.isSameDay(testDate, adapter.date('2018-10-30T00:00:00.000Z'))).to.equal(true);
|
|
246
|
-
expect(adapter.isSameDay(testDate, adapter.date('2019-10-30T00:00:00.000Z'))).to.equal(false);
|
|
247
|
-
});
|
|
248
|
-
it('Method: isSameMonth', () => {
|
|
249
|
-
expect(adapter.isSameMonth(testDate, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
250
|
-
expect(adapter.isSameMonth(testDate, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
251
|
-
});
|
|
252
|
-
it('Method: isSameYear', () => {
|
|
253
|
-
expect(adapter.isSameYear(testDate, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
|
|
254
|
-
expect(adapter.isSameYear(testDate, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
|
|
255
|
-
});
|
|
256
|
-
it('Method: isSameHour', () => {
|
|
257
|
-
expect(adapter.isSameHour(testDate, adapter.date(testDateISO))).to.equal(true);
|
|
258
|
-
expect(adapter.isSameHour(testDate, adapter.addDays(adapter.date(testDateISO), 5))).to.equal(false);
|
|
259
|
-
});
|
|
260
|
-
it('Method: getCurrentLocaleCode', () => {
|
|
261
|
-
// Returns the default location
|
|
262
|
-
expect(adapter.getCurrentLocaleCode()).to.match(/en/);
|
|
263
|
-
});
|
|
264
|
-
it('Method: toJsDate', () => {
|
|
265
|
-
expect(adapter.toJsDate(testDate)).to.be.instanceOf(Date);
|
|
266
|
-
});
|
|
267
|
-
it('Method: isWithinRange', () => {
|
|
268
|
-
expect(adapter.isWithinRange(adapter.date('2019-10-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-11-01T00:00:00.000Z')])).to.equal(true);
|
|
269
|
-
expect(adapter.isWithinRange(adapter.date('2019-12-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-11-01T00:00:00.000Z')])).to.equal(false);
|
|
270
|
-
|
|
271
|
-
// Should use inclusivity of range
|
|
272
|
-
expect(adapter.isWithinRange(adapter.date('2019-09-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-12-01T00:00:00.000Z')])).to.equal(true);
|
|
273
|
-
expect(adapter.isWithinRange(adapter.date('2019-12-01T00:00:00.000Z'), [adapter.date('2019-09-01T00:00:00.000Z'), adapter.date('2019-12-01T00:00:00.000Z')])).to.equal(true);
|
|
274
|
-
});
|
|
275
349
|
};
|
|
@@ -1,16 +1,50 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
+
import sinon from 'sinon';
|
|
3
|
+
import { cleanText } from 'test/utils/pickers-utils';
|
|
4
|
+
import { TEST_DATE_ISO_STRING } from './describeGregorianAdapter.utils';
|
|
2
5
|
export const testLocalization = ({
|
|
3
6
|
adapter
|
|
4
7
|
}) => {
|
|
8
|
+
const testDateIso = adapter.date(TEST_DATE_ISO_STRING);
|
|
5
9
|
it('Method: formatNumber', () => {
|
|
6
10
|
expect(adapter.formatNumber('1')).to.equal('1');
|
|
7
11
|
});
|
|
8
12
|
it('Method: getMeridiemText', () => {
|
|
9
13
|
expect(adapter.getMeridiemText('am')).to.equal('AM');
|
|
10
14
|
expect(adapter.getMeridiemText('pm')).to.equal('PM');
|
|
15
|
+
|
|
16
|
+
// Moment only translates for 12-hour cycle.
|
|
17
|
+
if (adapter.lib === 'moment') {
|
|
18
|
+
const stub = sinon.stub(adapter, 'is12HourCycleInCurrentLocale').returns(false);
|
|
19
|
+
expect(adapter.getMeridiemText('am')).to.equal('AM');
|
|
20
|
+
expect(adapter.getMeridiemText('pm')).to.equal('PM');
|
|
21
|
+
stub.restore();
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
it('Method: expandFormat', () => {
|
|
25
|
+
const testFormat = formatKey => {
|
|
26
|
+
const formatString = adapter.formats[formatKey];
|
|
27
|
+
const expandedFormat = cleanText(adapter.expandFormat(formatString));
|
|
28
|
+
if (expandedFormat === formatString) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// The expanded format should be fully expanded
|
|
33
|
+
expect(cleanText(adapter.expandFormat(expandedFormat))).to.equal(expandedFormat);
|
|
34
|
+
|
|
35
|
+
// Both format should be equivalent
|
|
36
|
+
expect(cleanText(adapter.formatByString(testDateIso, expandedFormat))).to.equal(cleanText(adapter.format(testDateIso, formatKey)));
|
|
37
|
+
};
|
|
38
|
+
Object.keys(adapter.formats).forEach(formatKey => {
|
|
39
|
+
testFormat(formatKey);
|
|
40
|
+
});
|
|
11
41
|
});
|
|
12
42
|
it('Method: getFormatHelperText', () => {
|
|
13
43
|
expect(adapter.getFormatHelperText(adapter.formats.keyboardDate)).to.equal(adapter.lib === 'luxon' ? 'm/d/yyyy' : 'mm/dd/yyyy');
|
|
14
44
|
expect(adapter.getFormatHelperText(adapter.formats.keyboardDateTime12h)).to.equal(adapter.lib === 'luxon' ? 'm/d/yyyy hh:mm (a|p)m' : 'mm/dd/yyyy hh:mm (a|p)m');
|
|
15
45
|
});
|
|
46
|
+
it('Method: getCurrentLocaleCode', () => {
|
|
47
|
+
// Returns the default locale
|
|
48
|
+
expect(adapter.getCurrentLocaleCode()).to.match(/en/);
|
|
49
|
+
});
|
|
16
50
|
};
|