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