@mui/x-date-pickers 6.15.0 → 6.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/CHANGELOG.md +144 -0
  2. package/DateCalendar/DateCalendar.js +9 -3
  3. package/DateCalendar/DateCalendar.types.d.ts +1 -1
  4. package/DateCalendar/DayCalendar.d.ts +6 -5
  5. package/DateCalendar/DayCalendar.js +20 -8
  6. package/DateCalendar/PickersFadeTransitionGroup.js +6 -6
  7. package/DateCalendar/PickersSlideTransition.d.ts +0 -1
  8. package/DateCalendar/PickersSlideTransition.js +5 -5
  9. package/DateCalendar/dayCalendarClasses.d.ts +2 -0
  10. package/DateCalendar/dayCalendarClasses.js +1 -1
  11. package/DateField/DateField.js +32 -4
  12. package/DateField/DateField.types.d.ts +3 -2
  13. package/DatePicker/DatePicker.js +6 -2
  14. package/DateTimeField/DateTimeField.js +32 -4
  15. package/DateTimeField/DateTimeField.types.d.ts +3 -2
  16. package/DateTimePicker/DateTimePicker.js +6 -2
  17. package/DateTimePicker/DateTimePickerToolbar.js +1 -0
  18. package/DesktopDatePicker/DesktopDatePicker.js +6 -2
  19. package/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -2
  20. package/MobileDatePicker/MobileDatePicker.js +6 -2
  21. package/MobileDateTimePicker/MobileDateTimePicker.js +6 -2
  22. package/MonthCalendar/MonthCalendar.js +4 -1
  23. package/StaticDatePicker/StaticDatePicker.js +6 -2
  24. package/StaticDateTimePicker/StaticDateTimePicker.js +6 -2
  25. package/TimeField/TimeField.js +29 -4
  26. package/TimeField/TimeField.types.d.ts +3 -2
  27. package/TimePicker/TimePickerToolbar.js +1 -0
  28. package/YearCalendar/PickersYear.js +1 -1
  29. package/YearCalendar/YearCalendar.js +6 -3
  30. package/hooks/index.d.ts +1 -0
  31. package/hooks/index.js +1 -0
  32. package/hooks/package.json +6 -0
  33. package/hooks/useClearableField.d.ts +25 -0
  34. package/hooks/useClearableField.js +79 -0
  35. package/icons/index.d.ts +6 -0
  36. package/icons/index.js +8 -1
  37. package/index.d.ts +1 -0
  38. package/index.js +3 -2
  39. package/internals/constants/dimensions.d.ts +2 -1
  40. package/internals/constants/dimensions.js +2 -1
  41. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  42. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +3 -2
  43. package/internals/hooks/useField/index.d.ts +1 -1
  44. package/internals/hooks/useField/useField.js +27 -7
  45. package/internals/hooks/useField/useField.types.d.ts +37 -1
  46. package/internals/index.d.ts +1 -1
  47. package/internals/models/props/toolbar.d.ts +3 -0
  48. package/internals/models/validation.d.ts +3 -0
  49. package/internals/utils/date-utils.d.ts +1 -0
  50. package/internals/utils/date-utils.js +4 -0
  51. package/legacy/DateCalendar/DateCalendar.js +9 -3
  52. package/legacy/DateCalendar/DayCalendar.js +24 -11
  53. package/legacy/DateCalendar/PickersFadeTransitionGroup.js +6 -6
  54. package/legacy/DateCalendar/PickersSlideTransition.js +5 -5
  55. package/legacy/DateCalendar/dayCalendarClasses.js +1 -1
  56. package/legacy/DateField/DateField.js +30 -3
  57. package/legacy/DatePicker/DatePicker.js +6 -2
  58. package/legacy/DateTimeField/DateTimeField.js +30 -3
  59. package/legacy/DateTimePicker/DateTimePicker.js +6 -2
  60. package/legacy/DateTimePicker/DateTimePickerToolbar.js +1 -0
  61. package/legacy/DesktopDatePicker/DesktopDatePicker.js +6 -2
  62. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -2
  63. package/legacy/MobileDatePicker/MobileDatePicker.js +6 -2
  64. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +6 -2
  65. package/legacy/MonthCalendar/MonthCalendar.js +4 -1
  66. package/legacy/StaticDatePicker/StaticDatePicker.js +6 -2
  67. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +6 -2
  68. package/legacy/TimeField/TimeField.js +27 -3
  69. package/legacy/TimePicker/TimePickerToolbar.js +1 -0
  70. package/legacy/YearCalendar/PickersYear.js +1 -1
  71. package/legacy/YearCalendar/YearCalendar.js +6 -4
  72. package/legacy/hooks/index.js +1 -0
  73. package/legacy/hooks/useClearableField.js +80 -0
  74. package/legacy/icons/index.js +8 -1
  75. package/legacy/index.js +3 -2
  76. package/legacy/internals/constants/dimensions.js +2 -1
  77. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  78. package/legacy/internals/hooks/useField/useField.js +31 -8
  79. package/legacy/internals/utils/date-utils.js +6 -0
  80. package/legacy/locales/beBY.js +2 -0
  81. package/legacy/locales/caES.js +2 -0
  82. package/legacy/locales/csCZ.js +2 -0
  83. package/legacy/locales/daDK.js +2 -0
  84. package/legacy/locales/deDE.js +2 -0
  85. package/legacy/locales/elGR.js +2 -0
  86. package/legacy/locales/enUS.js +1 -0
  87. package/legacy/locales/esES.js +2 -0
  88. package/legacy/locales/faIR.js +2 -0
  89. package/legacy/locales/fiFI.js +2 -0
  90. package/legacy/locales/frFR.js +2 -0
  91. package/legacy/locales/heIL.js +2 -0
  92. package/legacy/locales/huHU.js +1 -0
  93. package/legacy/locales/isIS.js +2 -0
  94. package/legacy/locales/itIT.js +2 -0
  95. package/legacy/locales/jaJP.js +2 -0
  96. package/legacy/locales/koKR.js +2 -0
  97. package/legacy/locales/kzKZ.js +2 -0
  98. package/legacy/locales/nbNO.js +2 -0
  99. package/legacy/locales/nlNL.js +2 -0
  100. package/legacy/locales/plPL.js +2 -0
  101. package/legacy/locales/ptBR.js +2 -0
  102. package/legacy/locales/roRO.js +1 -0
  103. package/legacy/locales/ruRU.js +2 -0
  104. package/legacy/locales/skSK.js +2 -0
  105. package/legacy/locales/svSE.js +2 -0
  106. package/legacy/locales/trTR.js +2 -0
  107. package/legacy/locales/ukUA.js +2 -0
  108. package/legacy/locales/urPK.js +2 -0
  109. package/legacy/locales/viVN.js +2 -0
  110. package/legacy/locales/zhCN.js +2 -0
  111. package/legacy/locales/zhHK.js +2 -0
  112. package/locales/beBY.d.ts +1 -0
  113. package/locales/beBY.js +2 -0
  114. package/locales/caES.d.ts +1 -0
  115. package/locales/caES.js +2 -0
  116. package/locales/csCZ.d.ts +1 -0
  117. package/locales/csCZ.js +2 -0
  118. package/locales/daDK.d.ts +1 -0
  119. package/locales/daDK.js +2 -0
  120. package/locales/deDE.d.ts +1 -0
  121. package/locales/deDE.js +2 -0
  122. package/locales/elGR.d.ts +1 -0
  123. package/locales/elGR.js +2 -0
  124. package/locales/enUS.d.ts +1 -0
  125. package/locales/enUS.js +1 -0
  126. package/locales/esES.d.ts +1 -0
  127. package/locales/esES.js +2 -0
  128. package/locales/faIR.d.ts +1 -0
  129. package/locales/faIR.js +2 -0
  130. package/locales/fiFI.d.ts +1 -0
  131. package/locales/fiFI.js +2 -0
  132. package/locales/frFR.d.ts +1 -0
  133. package/locales/frFR.js +2 -0
  134. package/locales/heIL.d.ts +1 -0
  135. package/locales/heIL.js +2 -0
  136. package/locales/huHU.d.ts +1 -0
  137. package/locales/huHU.js +1 -0
  138. package/locales/isIS.d.ts +1 -0
  139. package/locales/isIS.js +2 -0
  140. package/locales/itIT.d.ts +1 -0
  141. package/locales/itIT.js +2 -0
  142. package/locales/jaJP.d.ts +1 -0
  143. package/locales/jaJP.js +2 -0
  144. package/locales/koKR.d.ts +1 -0
  145. package/locales/koKR.js +2 -0
  146. package/locales/kzKZ.d.ts +1 -0
  147. package/locales/kzKZ.js +2 -0
  148. package/locales/nbNO.d.ts +1 -0
  149. package/locales/nbNO.js +2 -0
  150. package/locales/nlNL.d.ts +1 -0
  151. package/locales/nlNL.js +2 -0
  152. package/locales/plPL.d.ts +1 -0
  153. package/locales/plPL.js +2 -0
  154. package/locales/ptBR.d.ts +1 -0
  155. package/locales/ptBR.js +2 -0
  156. package/locales/roRO.d.ts +1 -0
  157. package/locales/roRO.js +1 -0
  158. package/locales/ruRU.d.ts +1 -0
  159. package/locales/ruRU.js +2 -0
  160. package/locales/skSK.d.ts +1 -0
  161. package/locales/skSK.js +2 -0
  162. package/locales/svSE.d.ts +1 -0
  163. package/locales/svSE.js +2 -0
  164. package/locales/trTR.d.ts +1 -0
  165. package/locales/trTR.js +2 -0
  166. package/locales/ukUA.d.ts +1 -0
  167. package/locales/ukUA.js +2 -0
  168. package/locales/urPK.d.ts +1 -0
  169. package/locales/urPK.js +2 -0
  170. package/locales/utils/getPickersLocalization.d.ts +1 -0
  171. package/locales/utils/pickersLocaleTextApi.d.ts +1 -0
  172. package/locales/viVN.d.ts +1 -0
  173. package/locales/viVN.js +2 -0
  174. package/locales/zhCN.d.ts +1 -0
  175. package/locales/zhCN.js +2 -0
  176. package/locales/zhHK.d.ts +1 -0
  177. package/locales/zhHK.js +2 -0
  178. package/models/adapters.d.ts +1 -0
  179. package/models/fields.d.ts +2 -0
  180. package/modern/DateCalendar/DateCalendar.js +9 -3
  181. package/modern/DateCalendar/DayCalendar.js +27 -13
  182. package/modern/DateCalendar/PickersFadeTransitionGroup.js +6 -6
  183. package/modern/DateCalendar/PickersSlideTransition.js +5 -5
  184. package/modern/DateCalendar/dayCalendarClasses.js +1 -1
  185. package/modern/DateField/DateField.js +32 -4
  186. package/modern/DatePicker/DatePicker.js +6 -2
  187. package/modern/DateTimeField/DateTimeField.js +32 -4
  188. package/modern/DateTimePicker/DateTimePicker.js +6 -2
  189. package/modern/DateTimePicker/DateTimePickerToolbar.js +1 -0
  190. package/modern/DesktopDatePicker/DesktopDatePicker.js +6 -2
  191. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -2
  192. package/modern/MobileDatePicker/MobileDatePicker.js +6 -2
  193. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +6 -2
  194. package/modern/MonthCalendar/MonthCalendar.js +4 -1
  195. package/modern/StaticDatePicker/StaticDatePicker.js +6 -2
  196. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +6 -2
  197. package/modern/TimeField/TimeField.js +29 -4
  198. package/modern/TimePicker/TimePickerToolbar.js +1 -0
  199. package/modern/YearCalendar/PickersYear.js +1 -1
  200. package/modern/YearCalendar/YearCalendar.js +5 -3
  201. package/modern/hooks/index.js +1 -0
  202. package/modern/hooks/useClearableField.js +78 -0
  203. package/modern/icons/index.js +8 -1
  204. package/modern/index.js +3 -2
  205. package/modern/internals/constants/dimensions.js +2 -1
  206. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  207. package/modern/internals/hooks/useField/useField.js +26 -7
  208. package/modern/internals/utils/date-utils.js +4 -0
  209. package/modern/locales/beBY.js +2 -0
  210. package/modern/locales/caES.js +2 -0
  211. package/modern/locales/csCZ.js +2 -0
  212. package/modern/locales/daDK.js +2 -0
  213. package/modern/locales/deDE.js +2 -0
  214. package/modern/locales/elGR.js +2 -0
  215. package/modern/locales/enUS.js +1 -0
  216. package/modern/locales/esES.js +2 -0
  217. package/modern/locales/faIR.js +2 -0
  218. package/modern/locales/fiFI.js +2 -0
  219. package/modern/locales/frFR.js +2 -0
  220. package/modern/locales/heIL.js +2 -0
  221. package/modern/locales/huHU.js +1 -0
  222. package/modern/locales/isIS.js +2 -0
  223. package/modern/locales/itIT.js +2 -0
  224. package/modern/locales/jaJP.js +2 -0
  225. package/modern/locales/koKR.js +2 -0
  226. package/modern/locales/kzKZ.js +2 -0
  227. package/modern/locales/nbNO.js +2 -0
  228. package/modern/locales/nlNL.js +2 -0
  229. package/modern/locales/plPL.js +2 -0
  230. package/modern/locales/ptBR.js +2 -0
  231. package/modern/locales/roRO.js +1 -0
  232. package/modern/locales/ruRU.js +2 -0
  233. package/modern/locales/skSK.js +2 -0
  234. package/modern/locales/svSE.js +2 -0
  235. package/modern/locales/trTR.js +2 -0
  236. package/modern/locales/ukUA.js +2 -0
  237. package/modern/locales/urPK.js +2 -0
  238. package/modern/locales/viVN.js +2 -0
  239. package/modern/locales/zhCN.js +2 -0
  240. package/modern/locales/zhHK.js +2 -0
  241. package/node/DateCalendar/DateCalendar.js +10 -5
  242. package/node/DateCalendar/DayCalendar.js +26 -12
  243. package/node/DateCalendar/PickersFadeTransitionGroup.js +6 -6
  244. package/node/DateCalendar/PickersSlideTransition.js +5 -7
  245. package/node/DateCalendar/dateCalendarClasses.js +1 -2
  246. package/node/DateCalendar/dayCalendarClasses.js +1 -2
  247. package/node/DateCalendar/pickersFadeTransitionGroupClasses.js +1 -2
  248. package/node/DateCalendar/pickersSlideTransitionClasses.js +1 -2
  249. package/node/DateField/DateField.js +33 -6
  250. package/node/DatePicker/DatePicker.js +7 -4
  251. package/node/DatePicker/DatePickerToolbar.js +1 -2
  252. package/node/DatePicker/datePickerToolbarClasses.js +1 -2
  253. package/node/DateTimeField/DateTimeField.js +33 -6
  254. package/node/DateTimePicker/DateTimePicker.js +7 -4
  255. package/node/DateTimePicker/DateTimePickerTabs.js +1 -2
  256. package/node/DateTimePicker/DateTimePickerToolbar.js +1 -0
  257. package/node/DateTimePicker/dateTimePickerTabsClasses.js +1 -2
  258. package/node/DateTimePicker/dateTimePickerToolbarClasses.js +1 -2
  259. package/node/DayCalendarSkeleton/dayCalendarSkeletonClasses.js +1 -2
  260. package/node/DesktopDatePicker/DesktopDatePicker.js +7 -4
  261. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +7 -4
  262. package/node/DesktopTimePicker/DesktopTimePicker.js +1 -2
  263. package/node/DigitalClock/DigitalClock.js +1 -2
  264. package/node/DigitalClock/digitalClockClasses.js +1 -2
  265. package/node/LocalizationProvider/LocalizationProvider.js +2 -4
  266. package/node/MobileDatePicker/MobileDatePicker.js +7 -4
  267. package/node/MobileDateTimePicker/MobileDateTimePicker.js +7 -4
  268. package/node/MobileTimePicker/MobileTimePicker.js +1 -2
  269. package/node/MonthCalendar/MonthCalendar.js +5 -3
  270. package/node/MonthCalendar/PickersMonth.js +2 -3
  271. package/node/MonthCalendar/monthCalendarClasses.js +1 -2
  272. package/node/MonthCalendar/pickersMonthClasses.js +1 -2
  273. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -2
  274. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -3
  275. package/node/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +1 -2
  276. package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +1 -2
  277. package/node/PickersCalendarHeader/PickersCalendarHeader.js +1 -2
  278. package/node/PickersCalendarHeader/pickersCalendarHeaderClasses.js +1 -2
  279. package/node/PickersDay/PickersDay.js +1 -2
  280. package/node/PickersDay/pickersDayClasses.js +1 -2
  281. package/node/PickersLayout/PickersLayout.js +3 -6
  282. package/node/PickersLayout/pickersLayoutClasses.js +1 -2
  283. package/node/PickersLayout/usePickerLayout.js +1 -2
  284. package/node/StaticDatePicker/StaticDatePicker.js +7 -4
  285. package/node/StaticDateTimePicker/StaticDateTimePicker.js +7 -4
  286. package/node/StaticTimePicker/StaticTimePicker.js +1 -2
  287. package/node/TimeClock/TimeClock.js +1 -2
  288. package/node/TimeClock/clockClasses.js +1 -2
  289. package/node/TimeClock/clockNumberClasses.js +1 -2
  290. package/node/TimeClock/clockPointerClasses.js +1 -2
  291. package/node/TimeClock/shared.js +2 -4
  292. package/node/TimeClock/timeClockClasses.js +1 -2
  293. package/node/TimeField/TimeField.js +30 -6
  294. package/node/TimePicker/TimePicker.js +1 -2
  295. package/node/TimePicker/TimePickerToolbar.js +1 -0
  296. package/node/TimePicker/timePickerToolbarClasses.js +1 -2
  297. package/node/YearCalendar/PickersYear.js +3 -4
  298. package/node/YearCalendar/YearCalendar.js +6 -5
  299. package/node/YearCalendar/pickersYearClasses.js +1 -2
  300. package/node/YearCalendar/yearCalendarClasses.js +1 -2
  301. package/node/hooks/index.js +12 -0
  302. package/node/hooks/useClearableField.js +87 -0
  303. package/node/icons/index.js +15 -15
  304. package/node/index.js +13 -1
  305. package/node/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +2 -3
  306. package/node/internals/components/PickerViewRoot/PickerViewRoot.js +2 -3
  307. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +2 -3
  308. package/node/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js +1 -2
  309. package/node/internals/components/PickersToolbar.js +2 -3
  310. package/node/internals/components/PickersToolbarButton.js +2 -3
  311. package/node/internals/components/PickersToolbarText.js +2 -3
  312. package/node/internals/components/pickersPopperClasses.js +1 -2
  313. package/node/internals/components/pickersToolbarButtonClasses.js +1 -2
  314. package/node/internals/components/pickersToolbarClasses.js +1 -2
  315. package/node/internals/components/pickersToolbarTextClasses.js +1 -2
  316. package/node/internals/constants/dimensions.js +8 -13
  317. package/node/internals/hooks/useDefaultReduceAnimations.js +1 -2
  318. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +3 -1
  319. package/node/internals/hooks/useField/useField.js +26 -7
  320. package/node/internals/utils/date-utils.js +7 -2
  321. package/node/internals/utils/getDefaultReferenceDate.js +1 -2
  322. package/node/internals/utils/utils.js +1 -2
  323. package/node/internals/utils/validation/extractValidationProps.js +3 -6
  324. package/node/internals/utils/valueManagers.js +3 -5
  325. package/node/locales/beBY.js +3 -2
  326. package/node/locales/caES.js +3 -2
  327. package/node/locales/csCZ.js +3 -2
  328. package/node/locales/daDK.js +3 -2
  329. package/node/locales/deDE.js +3 -2
  330. package/node/locales/elGR.js +3 -2
  331. package/node/locales/enUS.js +3 -4
  332. package/node/locales/esES.js +3 -2
  333. package/node/locales/faIR.js +3 -2
  334. package/node/locales/fiFI.js +3 -2
  335. package/node/locales/frFR.js +3 -2
  336. package/node/locales/heIL.js +3 -2
  337. package/node/locales/huHU.js +2 -2
  338. package/node/locales/isIS.js +3 -2
  339. package/node/locales/itIT.js +3 -2
  340. package/node/locales/jaJP.js +3 -2
  341. package/node/locales/koKR.js +3 -2
  342. package/node/locales/kzKZ.js +3 -2
  343. package/node/locales/nbNO.js +3 -2
  344. package/node/locales/nlNL.js +3 -2
  345. package/node/locales/plPL.js +3 -2
  346. package/node/locales/ptBR.js +3 -2
  347. package/node/locales/roRO.js +2 -2
  348. package/node/locales/ruRU.js +3 -2
  349. package/node/locales/skSK.js +3 -2
  350. package/node/locales/svSE.js +3 -2
  351. package/node/locales/trTR.js +3 -2
  352. package/node/locales/ukUA.js +3 -2
  353. package/node/locales/urPK.js +3 -2
  354. package/node/locales/viVN.js +3 -2
  355. package/node/locales/zhCN.js +3 -2
  356. package/node/locales/zhHK.js +3 -2
  357. package/package.json +5 -5
  358. package/legacy/tests/describe.types.js +0 -1
  359. package/legacy/tests/describeAdapters/describeAdapters.js +0 -29
  360. package/legacy/tests/describeAdapters/index.js +0 -1
  361. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -32
  362. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -1
  363. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -2
  364. package/legacy/tests/describeGregorianAdapter/index.js +0 -2
  365. package/legacy/tests/describeGregorianAdapter/testCalculations.js +0 -707
  366. package/legacy/tests/describeGregorianAdapter/testFormat.js +0 -26
  367. package/legacy/tests/describeGregorianAdapter/testLocalization.js +0 -49
  368. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.js +0 -21
  369. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -1
  370. package/legacy/tests/describeHijriAdapter/index.js +0 -1
  371. package/legacy/tests/describeHijriAdapter/testCalculations.js +0 -167
  372. package/legacy/tests/describeHijriAdapter/testLocalization.js +0 -20
  373. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -21
  374. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -1
  375. package/legacy/tests/describeJalaliAdapter/index.js +0 -1
  376. package/legacy/tests/describeJalaliAdapter/testCalculations.js +0 -236
  377. package/legacy/tests/describeJalaliAdapter/testLocalization.js +0 -20
  378. package/legacy/tests/describePicker/describePicker.js +0 -159
  379. package/legacy/tests/describePicker/describePicker.types.js +0 -1
  380. package/legacy/tests/describePicker/index.js +0 -1
  381. package/legacy/tests/describeValidation/describeValidation.js +0 -31
  382. package/legacy/tests/describeValidation/describeValidation.types.js +0 -1
  383. package/legacy/tests/describeValidation/index.js +0 -1
  384. package/legacy/tests/describeValidation/testDayViewValidation.js +0 -281
  385. package/legacy/tests/describeValidation/testMinutesViewValidation.js +0 -194
  386. package/legacy/tests/describeValidation/testMonthViewValidation.js +0 -136
  387. package/legacy/tests/describeValidation/testTextFieldValidation.js +0 -463
  388. package/legacy/tests/describeValidation/testYearViewValidation.js +0 -95
  389. package/legacy/tests/describeValue/describeValue.js +0 -57
  390. package/legacy/tests/describeValue/describeValue.types.js +0 -1
  391. package/legacy/tests/describeValue/index.js +0 -1
  392. package/legacy/tests/describeValue/testControlledUnControlled.js +0 -237
  393. package/legacy/tests/describeValue/testPickerActionBar.js +0 -250
  394. package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -362
  395. package/legacy/tests/describeValue/testShortcuts.js +0 -119
  396. package/modern/tests/describe.types.js +0 -1
  397. package/modern/tests/describeAdapters/describeAdapters.js +0 -29
  398. package/modern/tests/describeAdapters/index.js +0 -1
  399. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -29
  400. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -1
  401. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -2
  402. package/modern/tests/describeGregorianAdapter/index.js +0 -2
  403. package/modern/tests/describeGregorianAdapter/testCalculations.js +0 -706
  404. package/modern/tests/describeGregorianAdapter/testFormat.js +0 -27
  405. package/modern/tests/describeGregorianAdapter/testLocalization.js +0 -50
  406. package/modern/tests/describeHijriAdapter/describeHijriAdapter.js +0 -21
  407. package/modern/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -1
  408. package/modern/tests/describeHijriAdapter/index.js +0 -1
  409. package/modern/tests/describeHijriAdapter/testCalculations.js +0 -164
  410. package/modern/tests/describeHijriAdapter/testLocalization.js +0 -21
  411. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -21
  412. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -1
  413. package/modern/tests/describeJalaliAdapter/index.js +0 -1
  414. package/modern/tests/describeJalaliAdapter/testCalculations.js +0 -237
  415. package/modern/tests/describeJalaliAdapter/testLocalization.js +0 -21
  416. package/modern/tests/describePicker/describePicker.js +0 -162
  417. package/modern/tests/describePicker/describePicker.types.js +0 -1
  418. package/modern/tests/describePicker/index.js +0 -1
  419. package/modern/tests/describeValidation/describeValidation.js +0 -31
  420. package/modern/tests/describeValidation/describeValidation.types.js +0 -1
  421. package/modern/tests/describeValidation/index.js +0 -1
  422. package/modern/tests/describeValidation/testDayViewValidation.js +0 -280
  423. package/modern/tests/describeValidation/testMinutesViewValidation.js +0 -193
  424. package/modern/tests/describeValidation/testMonthViewValidation.js +0 -137
  425. package/modern/tests/describeValidation/testTextFieldValidation.js +0 -470
  426. package/modern/tests/describeValidation/testYearViewValidation.js +0 -94
  427. package/modern/tests/describeValue/describeValue.js +0 -59
  428. package/modern/tests/describeValue/describeValue.types.js +0 -1
  429. package/modern/tests/describeValue/index.js +0 -1
  430. package/modern/tests/describeValue/testControlledUnControlled.js +0 -239
  431. package/modern/tests/describeValue/testPickerActionBar.js +0 -254
  432. package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -371
  433. package/modern/tests/describeValue/testShortcuts.js +0 -112
  434. package/node/tests/describe.types.js +0 -5
  435. package/node/tests/describeAdapters/describeAdapters.js +0 -37
  436. package/node/tests/describeAdapters/index.js +0 -12
  437. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -37
  438. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -5
  439. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -10
  440. package/node/tests/describeGregorianAdapter/index.js +0 -19
  441. package/node/tests/describeGregorianAdapter/testCalculations.js +0 -711
  442. package/node/tests/describeGregorianAdapter/testFormat.js +0 -34
  443. package/node/tests/describeGregorianAdapter/testLocalization.js +0 -57
  444. package/node/tests/describeHijriAdapter/describeHijriAdapter.js +0 -29
  445. package/node/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -5
  446. package/node/tests/describeHijriAdapter/index.js +0 -12
  447. package/node/tests/describeHijriAdapter/testCalculations.js +0 -171
  448. package/node/tests/describeHijriAdapter/testLocalization.js +0 -28
  449. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -29
  450. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -5
  451. package/node/tests/describeJalaliAdapter/index.js +0 -12
  452. package/node/tests/describeJalaliAdapter/testCalculations.js +0 -244
  453. package/node/tests/describeJalaliAdapter/testLocalization.js +0 -28
  454. package/node/tests/describePicker/describePicker.js +0 -173
  455. package/node/tests/describePicker/describePicker.types.js +0 -5
  456. package/node/tests/describePicker/index.js +0 -12
  457. package/node/tests/describeValidation/describeValidation.js +0 -39
  458. package/node/tests/describeValidation/describeValidation.types.js +0 -5
  459. package/node/tests/describeValidation/index.js +0 -12
  460. package/node/tests/describeValidation/testDayViewValidation.js +0 -290
  461. package/node/tests/describeValidation/testMinutesViewValidation.js +0 -203
  462. package/node/tests/describeValidation/testMonthViewValidation.js +0 -147
  463. package/node/tests/describeValidation/testTextFieldValidation.js +0 -480
  464. package/node/tests/describeValidation/testYearViewValidation.js +0 -104
  465. package/node/tests/describeValue/describeValue.js +0 -69
  466. package/node/tests/describeValue/describeValue.types.js +0 -5
  467. package/node/tests/describeValue/index.js +0 -12
  468. package/node/tests/describeValue/testControlledUnControlled.js +0 -248
  469. package/node/tests/describeValue/testPickerActionBar.js +0 -264
  470. package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -381
  471. package/node/tests/describeValue/testShortcuts.js +0 -122
  472. package/tests/describe.types.js +0 -1
  473. package/tests/describeAdapters/describeAdapters.js +0 -29
  474. package/tests/describeAdapters/index.js +0 -1
  475. package/tests/describeGregorianAdapter/describeGregorianAdapter.js +0 -30
  476. package/tests/describeGregorianAdapter/describeGregorianAdapter.types.js +0 -1
  477. package/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +0 -2
  478. package/tests/describeGregorianAdapter/index.js +0 -2
  479. package/tests/describeGregorianAdapter/testCalculations.js +0 -706
  480. package/tests/describeGregorianAdapter/testFormat.js +0 -27
  481. package/tests/describeGregorianAdapter/testLocalization.js +0 -50
  482. package/tests/describeHijriAdapter/describeHijriAdapter.js +0 -21
  483. package/tests/describeHijriAdapter/describeHijriAdapter.types.js +0 -1
  484. package/tests/describeHijriAdapter/index.js +0 -1
  485. package/tests/describeHijriAdapter/testCalculations.js +0 -164
  486. package/tests/describeHijriAdapter/testLocalization.js +0 -21
  487. package/tests/describeJalaliAdapter/describeJalaliAdapter.js +0 -21
  488. package/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +0 -1
  489. package/tests/describeJalaliAdapter/index.js +0 -1
  490. package/tests/describeJalaliAdapter/testCalculations.js +0 -237
  491. package/tests/describeJalaliAdapter/testLocalization.js +0 -21
  492. package/tests/describePicker/describePicker.js +0 -162
  493. package/tests/describePicker/describePicker.types.js +0 -1
  494. package/tests/describePicker/index.js +0 -1
  495. package/tests/describeValidation/describeValidation.js +0 -31
  496. package/tests/describeValidation/describeValidation.types.js +0 -1
  497. package/tests/describeValidation/index.js +0 -1
  498. package/tests/describeValidation/testDayViewValidation.js +0 -280
  499. package/tests/describeValidation/testMinutesViewValidation.js +0 -193
  500. package/tests/describeValidation/testMonthViewValidation.js +0 -137
  501. package/tests/describeValidation/testTextFieldValidation.js +0 -470
  502. package/tests/describeValidation/testYearViewValidation.js +0 -94
  503. package/tests/describeValue/describeValue.js +0 -59
  504. package/tests/describeValue/describeValue.types.js +0 -1
  505. package/tests/describeValue/index.js +0 -1
  506. package/tests/describeValue/testControlledUnControlled.js +0 -239
  507. package/tests/describeValue/testPickerActionBar.js +0 -254
  508. package/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -371
  509. package/tests/describeValue/testShortcuts.js +0 -112
@@ -1,706 +0,0 @@
1
- import { expect } from 'chai';
2
- import { getDateOffset } from 'test/utils/pickers';
3
- import { TEST_DATE_ISO_STRING, TEST_DATE_LOCALE_STRING } from './describeGregorianAdapter.utils';
4
-
5
- /**
6
- * To check if the date has the right offset even after changing it's date parts,
7
- * we convert it to a different timezone that always has the same offset,
8
- * then we check that both dates have the same hour value.
9
- */
10
- // We change to
11
- const expectSameTimeInMonacoTZ = (adapter, value) => {
12
- const valueInMonacoTz = adapter.setTimezone(value, 'Europe/Monaco');
13
- expect(adapter.getHours(value)).to.equal(adapter.getHours(valueInMonacoTz));
14
- };
15
- export const testCalculations = ({
16
- adapter,
17
- adapterTZ,
18
- adapterFr,
19
- setDefaultTimezone,
20
- getLocaleFromDate
21
- }) => {
22
- const testDateIso = adapter.date(TEST_DATE_ISO_STRING);
23
- const testDateLastNonDSTDay = adapterTZ.isTimezoneCompatible ? adapterTZ.dateWithTimezone('2022-03-27', 'Europe/Paris') : adapterTZ.date('2022-03-27');
24
- const testDateLocale = adapter.date(TEST_DATE_LOCALE_STRING);
25
- describe('Method: date', () => {
26
- it('should parse strings', () => {
27
- expect(adapter.date(TEST_DATE_ISO_STRING)).toEqualDateTime(testDateIso);
28
- expect(adapter.date(TEST_DATE_LOCALE_STRING)).toEqualDateTime(testDateLocale);
29
- });
30
- it('should parse native Date object', () => {
31
- expect(adapter.date(new Date(TEST_DATE_ISO_STRING))).toEqualDateTime(testDateIso);
32
- expect(adapter.date(new Date(TEST_DATE_LOCALE_STRING))).toEqualDateTime(testDateLocale);
33
- });
34
- it('should parse already-parsed object', () => {
35
- expect(adapter.date(testDateIso)).toEqualDateTime(testDateIso);
36
- expect(adapter.date(testDateLocale)).toEqualDateTime(testDateLocale);
37
- });
38
- it('should parse null', () => {
39
- expect(adapter.date(null)).to.equal(null);
40
- });
41
- it('should parse undefined', () => {
42
- expect(Math.abs(adapter.toJsDate(adapter.date(undefined)).getTime() - Date.now())).to.be.lessThan(5);
43
- });
44
- });
45
- describe('Method: dateWithTimezone', () => {
46
- it('should parse ISO strings', () => {
47
- if (adapter.isTimezoneCompatible) {
48
- const test = (timezone, expectedTimezones = timezone) => {
49
- [adapterTZ, adapterFr].forEach(instance => {
50
- const dateWithZone = instance.dateWithTimezone(TEST_DATE_ISO_STRING, timezone);
51
- expect(instance.getTimezone(dateWithZone)).to.equal(expectedTimezones);
52
-
53
- // Should keep the time of the value in the UTC timezone
54
- expect(dateWithZone).toEqualDateTime(TEST_DATE_ISO_STRING);
55
- });
56
- };
57
- test('UTC');
58
- test('system');
59
- test('America/New_York');
60
- test('Europe/Paris');
61
- setDefaultTimezone('America/New_York');
62
- test('default', 'America/New_York');
63
- setDefaultTimezone('Europe/Paris');
64
- test('default', 'Europe/Paris');
65
-
66
- // Reset to the default timezone
67
- setDefaultTimezone(undefined);
68
- } else {
69
- expect(adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'system')).toEqualDateTime(TEST_DATE_ISO_STRING);
70
- expect(adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'default')).toEqualDateTime(TEST_DATE_ISO_STRING);
71
- }
72
- });
73
- it('should parse locale strings', () => {
74
- if (adapter.isTimezoneCompatible) {
75
- const test = timezone => {
76
- [adapterTZ, adapterFr].forEach(instance => {
77
- const dateWithZone = instance.dateWithTimezone(TEST_DATE_LOCALE_STRING, timezone);
78
- expect(instance.getTimezone(dateWithZone)).to.equal(timezone);
79
-
80
- // Should keep the time of the date in the target timezone
81
- expect(instance.format(dateWithZone, 'fullTime24h')).to.equal('00:00');
82
- });
83
- };
84
- test('UTC');
85
- test('system');
86
- test('America/New_York');
87
- test('Europe/Paris');
88
- } else {
89
- expect(adapter.dateWithTimezone(TEST_DATE_LOCALE_STRING, 'system')).toEqualDateTime(TEST_DATE_LOCALE_STRING);
90
- }
91
- });
92
- it('should parse null', () => {
93
- expect(adapter.dateWithTimezone(null, 'system')).to.equal(null);
94
- if (adapter.isTimezoneCompatible) {
95
- expect(adapter.dateWithTimezone(null, 'UTC')).to.equal(null);
96
- expect(adapter.dateWithTimezone(null, 'America/New_York')).to.equal(null);
97
- }
98
- });
99
- it('should parse undefined', () => {
100
- if (adapter.isTimezoneCompatible) {
101
- const testTodayZone = timezone => {
102
- const dateWithZone = adapterTZ.dateWithTimezone(undefined, timezone);
103
- expect(adapterTZ.getTimezone(dateWithZone)).to.equal(timezone);
104
- expect(adapterTZ.getDiff(dateWithZone, adapterTZ.date(new Date()))).to.be.lessThan(5);
105
- expect(Math.abs(adapterTZ.toJsDate(dateWithZone).getTime() - Date.now())).to.be.lessThan(5);
106
- };
107
- testTodayZone('system');
108
- testTodayZone('UTC');
109
- testTodayZone('America/New_York');
110
- } else {
111
- expect(Math.abs(adapterTZ.toJsDate(adapter.dateWithTimezone(undefined, 'system')).getTime() - Date.now())).to.be.lessThan(5);
112
- }
113
- });
114
- });
115
- it('Method: getTimezone', () => {
116
- if (!adapter.isTimezoneCompatible) {
117
- return;
118
- }
119
- const testTimezone = (timezone, expectedTimezone = timezone) => {
120
- expect(adapter.getTimezone(adapter.dateWithTimezone(undefined, timezone))).to.equal(expectedTimezone);
121
- };
122
- testTimezone('system');
123
- testTimezone('Europe/Paris');
124
- testTimezone('America/New_York');
125
- testTimezone('UTC');
126
- setDefaultTimezone('America/Chicago');
127
- testTimezone('default', 'America/Chicago');
128
- setDefaultTimezone(undefined);
129
- });
130
- it('Method: setTimezone', () => {
131
- if (adapter.isTimezoneCompatible) {
132
- const test = timezone => {
133
- setDefaultTimezone(timezone);
134
- const dateWithLocaleTimezone = adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'system');
135
- const dateWithDefaultTimezone = adapter.setTimezone(dateWithLocaleTimezone, 'default');
136
- expect(adapter.getTimezone(dateWithDefaultTimezone)).to.equal(timezone);
137
- };
138
- test('America/New_York');
139
- test('Europe/Paris');
140
-
141
- // Reset to the default timezone
142
- setDefaultTimezone(undefined);
143
- } else {
144
- const systemDate = adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'system');
145
- expect(adapter.setTimezone(systemDate, 'default')).toEqualDateTime(systemDate);
146
- expect(adapter.setTimezone(systemDate, 'system')).toEqualDateTime(systemDate);
147
- const defaultDate = adapter.dateWithTimezone(TEST_DATE_ISO_STRING, 'default');
148
- expect(adapter.setTimezone(systemDate, 'default')).toEqualDateTime(defaultDate);
149
- expect(adapter.setTimezone(systemDate, 'system')).toEqualDateTime(defaultDate);
150
- }
151
- });
152
- it('Method: toJsDate', () => {
153
- expect(adapter.toJsDate(testDateIso)).to.be.instanceOf(Date);
154
- expect(adapter.toJsDate(testDateLocale)).to.be.instanceOf(Date);
155
- });
156
- it('Method: parseISO', () => {
157
- expect(adapter.parseISO(TEST_DATE_ISO_STRING)).toEqualDateTime(testDateIso);
158
- });
159
- it('Method: toISO', () => {
160
- const outputtedISO = adapter.toISO(testDateIso);
161
- if (adapter.lib === 'date-fns') {
162
- // date-fns never suppress useless milliseconds in the end
163
- expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING.replace('.000Z', 'Z'));
164
- } else {
165
- expect(outputtedISO).to.equal(TEST_DATE_ISO_STRING);
166
- }
167
- });
168
- it('Method: parse', () => {
169
- // Date time
170
- expect(adapter.parse('10/30/2018 11:44', adapter.formats.keyboardDateTime24h)).toEqualDateTime('2018-10-30T11:44:00.000Z');
171
-
172
- // Date
173
- expect(adapter.parse('10/30/2018', adapter.formats.keyboardDate)).toEqualDateTime('2018-10-30T00:00:00.000Z');
174
-
175
- // Empty string
176
- expect(adapter.parse('', adapter.formats.keyboardDate)).to.equal(null);
177
-
178
- // Invalid input
179
- expect(adapter.isValid(adapter.parse('99/99/9999', adapter.formats.keyboardDate))).to.equal(false);
180
- });
181
- it('Method: isNull', () => {
182
- expect(adapter.isNull(null)).to.equal(true);
183
- expect(adapter.isNull(testDateIso)).to.equal(false);
184
- expect(adapter.isNull(testDateLocale)).to.equal(false);
185
- });
186
- it('Method: isValid', () => {
187
- const invalidDate = adapter.date('2018-42-30T11:60:00.000Z');
188
- expect(adapter.isValid(testDateIso)).to.equal(true);
189
- expect(adapter.isValid(testDateLocale)).to.equal(true);
190
- expect(adapter.isValid(invalidDate)).to.equal(false);
191
- expect(adapter.isValid(undefined)).to.equal(true);
192
- expect(adapter.isValid(null)).to.equal(false);
193
- expect(adapter.isValid('2018-42-30T11:60:00.000Z')).to.equal(false);
194
- });
195
- describe('Method: getDiff', () => {
196
- it('should compute the millisecond diff when there is no unit', () => {
197
- expect(adapter.getDiff(testDateIso, adapter.date('2018-10-29T11:44:00.000Z'))).to.equal(86400000);
198
- expect(adapter.getDiff(testDateIso, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
199
- expect(adapter.getDiff(testDateIso, adapter.date('2018-10-31T11:44:00.000Z'))).to.equal(-86400000);
200
- });
201
- it('should compute the diff in the provided unit (ISO)', () => {
202
- expect(adapter.getDiff(testDateIso, adapter.date('2017-09-29T11:44:00.000Z'), 'years')).to.equal(1);
203
- expect(adapter.getDiff(testDateIso, adapter.date('2018-08-29T11:44:00.000Z'), 'months')).to.equal(2);
204
- expect(adapter.getDiff(testDateIso, adapter.date('2018-05-29T11:44:00.000Z'), 'quarters')).to.equal(1);
205
- expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'days')).to.equal(31);
206
- expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'weeks')).to.equal(4);
207
- expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'hours')).to.equal(744);
208
- expect(adapter.getDiff(testDateIso, adapter.date('2018-09-29T11:44:00.000Z'), 'minutes')).to.equal(44640);
209
- expect(adapter.getDiff(testDateIso, adapter.date('2018-10-30T10:44:00.000Z'), 'seconds')).to.equal(3600);
210
- expect(adapter.getDiff(testDateIso, adapter.date('2018-10-30T10:44:00.000Z'), 'milliseconds')).to.equal(3600000);
211
- });
212
- it('should compute the diff in the provided unit (locale)', () => {
213
- expect(adapter.getDiff(testDateLocale, adapter.date('2017-09-29'), 'years')).to.equal(1);
214
- expect(adapter.getDiff(testDateLocale, adapter.date('2018-08-29'), 'months')).to.equal(2);
215
- expect(adapter.getDiff(testDateLocale, adapter.date('2018-05-29'), 'quarters')).to.equal(1);
216
- expect(adapter.getDiff(testDateLocale, adapter.date('2018-09-29'), 'days')).to.equal(31);
217
- expect(adapter.getDiff(testDateLocale, adapter.date('2018-09-29'), 'weeks')).to.equal(4);
218
- });
219
- it('should compute the diff with string "comparing" param', () => {
220
- expect(adapter.getDiff(testDateLocale, '2017-09-29', 'years')).to.equal(1);
221
- expect(adapter.getDiff(testDateLocale, '2018-08-29', 'months')).to.equal(2);
222
- expect(adapter.getDiff(testDateLocale, '2018-05-29', 'quarters')).to.equal(1);
223
- expect(adapter.getDiff(testDateLocale, '2018-09-29', 'days')).to.equal(31);
224
- expect(adapter.getDiff(testDateLocale, '2018-09-29', 'weeks')).to.equal(4);
225
- });
226
- });
227
- describe('Method: isEqual', () => {
228
- it('should work in the same timezone', () => {
229
- expect(adapter.isEqual(adapter.date(null), null)).to.equal(true);
230
- expect(adapter.isEqual(testDateIso, adapter.date(TEST_DATE_ISO_STRING))).to.equal(true);
231
- expect(adapter.isEqual(null, testDateIso)).to.equal(false);
232
- expect(adapter.isEqual(testDateLocale, adapter.date(TEST_DATE_LOCALE_STRING))).to.equal(true);
233
- expect(adapter.isEqual(null, testDateLocale)).to.equal(false);
234
- });
235
- it('should work with different timezones', function test() {
236
- if (!adapter.isTimezoneCompatible) {
237
- this.skip();
238
- }
239
- const dateInLondonTZ = adapterTZ.setTimezone(testDateIso, 'Europe/London');
240
- const dateInParisTZ = adapterTZ.setTimezone(testDateIso, 'Europe/Paris');
241
- expect(adapterTZ.isEqual(dateInLondonTZ, dateInParisTZ)).to.equal(true);
242
- });
243
- });
244
- describe('Method: isSameYear', () => {
245
- it('should work in the same timezone', () => {
246
- expect(adapter.isSameYear(testDateIso, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
247
- expect(adapter.isSameYear(testDateIso, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
248
- expect(adapter.isSameYear(testDateLocale, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
249
- expect(adapter.isSameYear(testDateLocale, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
250
- });
251
- it('should work with different timezones', function test() {
252
- if (!adapter.isTimezoneCompatible) {
253
- this.skip();
254
- }
255
-
256
- // Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone.
257
- // The adapter should still consider that they are in the same year.
258
- const dateInLondonTZ = adapterTZ.endOfYear(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
259
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
260
- expect(adapterTZ.isSameYear(dateInLondonTZ, dateInParisTZ)).to.equal(true);
261
- expect(adapterTZ.isSameYear(dateInParisTZ, dateInLondonTZ)).to.equal(true);
262
- });
263
- });
264
- describe('Method: isSameMonth', () => {
265
- it('should work in the same timezone', () => {
266
- expect(adapter.isSameMonth(testDateIso, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
267
- expect(adapter.isSameMonth(testDateIso, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
268
- expect(adapter.isSameMonth(testDateLocale, adapter.date('2018-10-01T00:00:00.000Z'))).to.equal(true);
269
- expect(adapter.isSameMonth(testDateLocale, adapter.date('2019-10-01T00:00:00.000Z'))).to.equal(false);
270
- });
271
- it('should work with different timezones', function test() {
272
- if (!adapter.isTimezoneCompatible) {
273
- this.skip();
274
- }
275
-
276
- // Both dates below have the same timestamp, but they are not in the same month when represented in their respective timezone.
277
- // The adapter should still consider that they are in the same month.
278
- const dateInLondonTZ = adapterTZ.endOfMonth(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
279
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
280
- expect(adapterTZ.isSameMonth(dateInLondonTZ, dateInParisTZ)).to.equal(true);
281
- expect(adapterTZ.isSameMonth(dateInParisTZ, dateInLondonTZ)).to.equal(true);
282
- });
283
- });
284
- describe('Method: isSameDay', () => {
285
- it('should work in the same timezone', () => {
286
- expect(adapter.isSameDay(testDateIso, adapter.date('2018-10-30T00:00:00.000Z'))).to.equal(true);
287
- expect(adapter.isSameDay(testDateIso, adapter.date('2019-10-30T00:00:00.000Z'))).to.equal(false);
288
- expect(adapter.isSameDay(testDateLocale, adapter.date('2018-10-30T00:00:00.000Z'))).to.equal(true);
289
- expect(adapter.isSameDay(testDateLocale, adapter.date('2019-10-30T00:00:00.000Z'))).to.equal(false);
290
- });
291
- it('should work with different timezones', function test() {
292
- if (!adapter.isTimezoneCompatible) {
293
- this.skip();
294
- }
295
-
296
- // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
297
- // The adapter should still consider that they are in the same day.
298
- const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
299
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
300
- expect(adapterTZ.isSameDay(dateInLondonTZ, dateInParisTZ)).to.equal(true);
301
- expect(adapterTZ.isSameDay(dateInParisTZ, dateInLondonTZ)).to.equal(true);
302
- });
303
- });
304
- describe('Method: isSameHour', () => {
305
- it('should work in the same timezone', () => {
306
- expect(adapter.isSameHour(testDateIso, adapter.date('2018-10-30T11:00:00.000Z'))).to.equal(true);
307
- expect(adapter.isSameHour(testDateIso, adapter.date('2018-10-30T12:00:00.000Z'))).to.equal(false);
308
- });
309
- it('should work with different timezones', function test() {
310
- if (!adapter.isTimezoneCompatible) {
311
- this.skip();
312
- }
313
-
314
- // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
315
- // The adapter should still consider that they are in the same day.
316
- const dateInLondonTZ = adapterTZ.setTimezone(testDateIso, 'Europe/London');
317
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
318
- expect(adapterTZ.isSameHour(dateInLondonTZ, dateInParisTZ)).to.equal(true);
319
- expect(adapterTZ.isSameHour(dateInParisTZ, dateInLondonTZ)).to.equal(true);
320
- });
321
- });
322
- describe('Method: isAfter', () => {
323
- it('should work with the same timezone', () => {
324
- expect(adapter.isAfter(adapter.date(), testDateIso)).to.equal(true);
325
- expect(adapter.isAfter(testDateIso, adapter.date())).to.equal(false);
326
- expect(adapter.isAfter(adapter.date(), testDateLocale)).to.equal(true);
327
- expect(adapter.isAfter(testDateLocale, adapter.date())).to.equal(false);
328
- });
329
- it('should work with different timezones', function test() {
330
- if (!adapter.isTimezoneCompatible) {
331
- this.skip();
332
- }
333
- const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
334
- const dateInParisTZ = adapterTZ.addMinutes(adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/Paris')), 30);
335
- expect(adapter.isAfter(dateInLondonTZ, dateInParisTZ)).to.equal(true);
336
- expect(adapter.isAfter(dateInParisTZ, dateInLondonTZ)).to.equal(false);
337
- });
338
- });
339
- describe('Method: isAfterYear', () => {
340
- it('should work in the same timezone', () => {
341
- const nextYearIso = adapter.addYears(testDateIso, 1);
342
- expect(adapter.isAfterYear(nextYearIso, testDateIso)).to.equal(true);
343
- expect(adapter.isAfterYear(testDateIso, nextYearIso)).to.equal(false);
344
- const nextYearLocale = adapter.addYears(testDateLocale, 1);
345
- expect(adapter.isAfterYear(nextYearLocale, testDateLocale)).to.equal(true);
346
- expect(adapter.isAfterYear(testDateLocale, nextYearLocale)).to.equal(false);
347
- });
348
- it('should work with different timezones', function test() {
349
- if (!adapter.isTimezoneCompatible) {
350
- this.skip();
351
- }
352
-
353
- // Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone.
354
- // The adapter should still consider that they are in the same year.
355
- const dateInLondonTZ = adapterTZ.endOfYear(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
356
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
357
- expect(adapterTZ.isAfterYear(dateInLondonTZ, dateInParisTZ)).to.equal(false);
358
- expect(adapterTZ.isAfterYear(dateInParisTZ, dateInLondonTZ)).to.equal(false);
359
- });
360
- });
361
- describe('Method: isAfterDay', () => {
362
- it('should work with the same timezone', () => {
363
- const nextDayIso = adapter.addDays(testDateIso, 1);
364
- expect(adapter.isAfterDay(nextDayIso, testDateIso)).to.equal(true);
365
- expect(adapter.isAfterDay(testDateIso, nextDayIso)).to.equal(false);
366
- const nextDayLocale = adapter.addDays(testDateLocale, 1);
367
- expect(adapter.isAfterDay(nextDayLocale, testDateLocale)).to.equal(true);
368
- expect(adapter.isAfterDay(testDateLocale, nextDayLocale)).to.equal(false);
369
- });
370
- it('should work with different timezones', function test() {
371
- if (!adapter.isTimezoneCompatible) {
372
- this.skip();
373
- }
374
-
375
- // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
376
- // The adapter should still consider that they are in the same day.
377
- const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
378
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
379
- expect(adapterTZ.isAfterDay(dateInLondonTZ, dateInParisTZ)).to.equal(false);
380
- expect(adapterTZ.isAfterDay(dateInParisTZ, dateInLondonTZ)).to.equal(false);
381
-
382
- // Both dates below have the same day when represented in their respective timezone,
383
- // But not when represented in the same timezone
384
- // The adapter should consider that they are not in the same day
385
- const dateInLondonTZ2 = adapterTZ.startOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
386
- const dateInParisTZ2 = adapterTZ.addHours(adapterTZ.setTimezone(dateInLondonTZ2, 'Europe/Paris'), -1);
387
- expect(adapterTZ.isAfterDay(dateInLondonTZ2, dateInParisTZ2)).to.equal(true);
388
- expect(adapterTZ.isAfterDay(dateInParisTZ2, dateInLondonTZ2)).to.equal(false);
389
- });
390
- });
391
- describe('Method: isBefore', () => {
392
- it('should work with the same timezone', () => {
393
- expect(adapter.isBefore(testDateIso, adapter.date())).to.equal(true);
394
- expect(adapter.isBefore(adapter.date(), testDateIso)).to.equal(false);
395
- expect(adapter.isBefore(testDateLocale, adapter.date())).to.equal(true);
396
- expect(adapter.isBefore(adapter.date(), testDateLocale)).to.equal(false);
397
- });
398
- it('should work with different timezones', function test() {
399
- if (!adapter.isTimezoneCompatible) {
400
- this.skip();
401
- }
402
- const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
403
- const dateInParisTZ = adapterTZ.addMinutes(adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/Paris')), 30);
404
- expect(adapter.isBefore(dateInLondonTZ, dateInParisTZ)).to.equal(false);
405
- expect(adapter.isBefore(dateInParisTZ, dateInLondonTZ)).to.equal(true);
406
- });
407
- });
408
- describe('Method: isBeforeYear', () => {
409
- it('should work in the same timezone', () => {
410
- const nextYearIso = adapter.addYears(testDateIso, -1);
411
- expect(adapter.isBeforeYear(nextYearIso, testDateIso)).to.equal(true);
412
- expect(adapter.isBeforeYear(testDateIso, nextYearIso)).to.equal(false);
413
- const nextYearLocale = adapter.addYears(testDateLocale, -1);
414
- expect(adapter.isBeforeYear(nextYearLocale, testDateLocale)).to.equal(true);
415
- expect(adapter.isBeforeYear(testDateLocale, nextYearLocale)).to.equal(false);
416
- });
417
- it('should work with different timezones', function test() {
418
- if (!adapter.isTimezoneCompatible) {
419
- this.skip();
420
- }
421
-
422
- // Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone.
423
- // The adapter should still consider that they are in the same year.
424
- const dateInLondonTZ = adapterTZ.endOfYear(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
425
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
426
- expect(adapterTZ.isBeforeYear(dateInLondonTZ, dateInParisTZ)).to.equal(false);
427
- expect(adapterTZ.isBeforeYear(dateInParisTZ, dateInLondonTZ)).to.equal(false);
428
- });
429
- });
430
- describe('Method: isBeforeDay', () => {
431
- it('should work with the same timezone', () => {
432
- const previousDayIso = adapter.addDays(testDateIso, -1);
433
- expect(adapter.isBeforeDay(previousDayIso, testDateIso)).to.equal(true);
434
- expect(adapter.isBeforeDay(testDateIso, previousDayIso)).to.equal(false);
435
- const previousDayLocale = adapter.addDays(testDateLocale, -1);
436
- expect(adapter.isBeforeDay(previousDayLocale, testDateLocale)).to.equal(true);
437
- expect(adapter.isBeforeDay(testDateLocale, previousDayLocale)).to.equal(false);
438
- });
439
- it('should work with different timezones', function test() {
440
- if (!adapter.isTimezoneCompatible) {
441
- this.skip();
442
- }
443
-
444
- // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone.
445
- // The adapter should still consider that they are in the same day.
446
- const dateInLondonTZ = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
447
- const dateInParisTZ = adapterTZ.setTimezone(dateInLondonTZ, 'Europe/Paris');
448
- expect(adapterTZ.isBeforeDay(dateInLondonTZ, dateInParisTZ)).to.equal(false);
449
- expect(adapterTZ.isBeforeDay(dateInParisTZ, dateInLondonTZ)).to.equal(false);
450
-
451
- // Both dates below have the same day when represented in their respective timezone,
452
- // But not when represented in the same timezone
453
- // The adapter should consider that they are not in the same day
454
- const dateInLondonTZ2 = adapterTZ.endOfDay(adapterTZ.setTimezone(testDateIso, 'Europe/London'));
455
- const dateInParisTZ2 = adapterTZ.addHours(adapterTZ.setTimezone(dateInLondonTZ2, 'Europe/Paris'), -1);
456
- expect(adapterTZ.isBeforeDay(dateInLondonTZ2, dateInParisTZ2)).to.equal(false);
457
- expect(adapterTZ.isBeforeDay(dateInParisTZ2, dateInLondonTZ2)).to.equal(true);
458
- });
459
- });
460
- describe('Method: isWithinRange', () => {
461
- it('should work on simple examples', () => {
462
- 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);
463
- 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);
464
- expect(adapter.isWithinRange(adapter.date('2019-10-01'), [adapter.date('2019-09-01'), adapter.date('2019-11-01')])).to.equal(true);
465
- expect(adapter.isWithinRange(adapter.date('2019-12-01'), [adapter.date('2019-09-01'), adapter.date('2019-11-01')])).to.equal(false);
466
- });
467
- it('should use inclusivity of range', () => {
468
- 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);
469
- 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);
470
- expect(adapter.isWithinRange(adapter.date('2019-09-01'), [adapter.date('2019-09-01'), adapter.date('2019-12-01')])).to.equal(true);
471
- expect(adapter.isWithinRange(adapter.date('2019-12-01'), [adapter.date('2019-09-01'), adapter.date('2019-12-01')])).to.equal(true);
472
- });
473
- });
474
- it('Method: startOfYear', () => {
475
- const expected = '2018-01-01T00:00:00.000Z';
476
- expect(adapter.startOfYear(testDateIso)).toEqualDateTime(expected);
477
- expect(adapter.startOfYear(testDateLocale)).toEqualDateTime(expected);
478
- });
479
- it('Method: startOfMonth', () => {
480
- const expected = '2018-10-01T00:00:00.000Z';
481
- expect(adapter.startOfMonth(testDateIso)).toEqualDateTime(expected);
482
- expect(adapter.startOfMonth(testDateLocale)).toEqualDateTime(expected);
483
- });
484
- it('Method: startOfWeek', () => {
485
- const expected = adapter.lib === 'luxon' ? '2018-10-29T00:00:00.000Z' : '2018-10-28T00:00:00.000Z';
486
- expect(adapter.startOfWeek(testDateIso)).toEqualDateTime(expected);
487
- expect(adapter.startOfWeek(testDateLocale)).toEqualDateTime(expected);
488
- });
489
- it('Method: startOfDay', () => {
490
- const expected = '2018-10-30T00:00:00.000Z';
491
- expect(adapter.startOfDay(testDateIso)).toEqualDateTime(expected);
492
- expect(adapter.startOfDay(testDateLocale)).toEqualDateTime(expected);
493
- });
494
- it('Method: endOfYear', () => {
495
- const expected = '2018-12-31T23:59:59.999Z';
496
- expect(adapter.endOfYear(testDateIso)).toEqualDateTime(expected);
497
- expect(adapter.endOfYear(testDateLocale)).toEqualDateTime(expected);
498
- });
499
- describe('Method: endOfMonth', () => {
500
- it('should handle basic usecases', () => {
501
- const expected = '2018-10-31T23:59:59.999Z';
502
- expect(adapter.endOfMonth(testDateIso)).toEqualDateTime(expected);
503
- expect(adapter.endOfMonth(testDateLocale)).toEqualDateTime(expected);
504
- });
505
- it('should update the offset when entering DST', function test() {
506
- if (!adapterTZ.isTimezoneCompatible) {
507
- this.skip();
508
- }
509
- expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
510
- expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.endOfMonth(testDateLastNonDSTDay));
511
- });
512
- });
513
- it('Method: endOfWeek', () => {
514
- const expected = adapter.lib === 'luxon' ? '2018-11-04T23:59:59.999Z' : '2018-11-03T23:59:59.999Z';
515
- expect(adapter.endOfWeek(testDateIso)).toEqualDateTime(expected);
516
- expect(adapter.endOfWeek(testDateLocale)).toEqualDateTime(expected);
517
- });
518
- it('Method: endOfDay', () => {
519
- const expected = '2018-10-30T23:59:59.999Z';
520
- expect(adapter.endOfDay(testDateIso)).toEqualDateTime(expected);
521
- expect(adapter.endOfDay(testDateLocale)).toEqualDateTime(expected);
522
- });
523
- it('Method: addYears', () => {
524
- expect(adapter.addYears(testDateIso, 2)).toEqualDateTime('2020-10-30T11:44:00.000Z');
525
- expect(adapter.addYears(testDateIso, -2)).toEqualDateTime('2016-10-30T11:44:00.000Z');
526
- });
527
- describe('Method: addMonths', () => {
528
- it('should handle basic usecases', () => {
529
- expect(adapter.addMonths(testDateIso, 2)).toEqualDateTime('2018-12-30T11:44:00.000Z');
530
- expect(adapter.addMonths(testDateIso, -2)).toEqualDateTime('2018-08-30T11:44:00.000Z');
531
- expect(adapter.addMonths(testDateIso, 3)).toEqualDateTime('2019-01-30T11:44:00.000Z');
532
- });
533
- it('should update the offset when entering DST', function test() {
534
- if (!adapterTZ.isTimezoneCompatible) {
535
- this.skip();
536
- }
537
- expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
538
- expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addMonths(testDateLastNonDSTDay, 1));
539
- });
540
- });
541
- describe('Method: addWeeks', () => {
542
- it('should handle basic usecases', () => {
543
- expect(adapter.addWeeks(testDateIso, 2)).toEqualDateTime('2018-11-13T11:44:00.000Z');
544
- expect(adapter.addWeeks(testDateIso, -2)).toEqualDateTime('2018-10-16T11:44:00.000Z');
545
- });
546
- it('should update the offset when entering DST', function test() {
547
- if (!adapterTZ.isTimezoneCompatible) {
548
- this.skip();
549
- }
550
- expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
551
- expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addWeeks(testDateLastNonDSTDay, 1));
552
- });
553
- });
554
- describe('Method: addWeeks', () => {
555
- it('should handle basic usecases', () => {
556
- expect(adapter.addDays(testDateIso, 2)).toEqualDateTime('2018-11-01T11:44:00.000Z');
557
- expect(adapter.addDays(testDateIso, -2)).toEqualDateTime('2018-10-28T11:44:00.000Z');
558
- });
559
- it('should update the offset when entering DST', function test() {
560
- if (!adapterTZ.isTimezoneCompatible) {
561
- this.skip();
562
- }
563
- expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay);
564
- expectSameTimeInMonacoTZ(adapterTZ, adapterTZ.addDays(testDateLastNonDSTDay, 1));
565
- });
566
- });
567
- it('Method: addHours', () => {
568
- expect(adapter.addHours(testDateIso, 2)).toEqualDateTime('2018-10-30T13:44:00.000Z');
569
- expect(adapter.addHours(testDateIso, -2)).toEqualDateTime('2018-10-30T09:44:00.000Z');
570
- expect(adapter.addHours(testDateIso, 15)).toEqualDateTime('2018-10-31T02:44:00.000Z');
571
- });
572
- it('Method: addMinutes', () => {
573
- expect(adapter.addMinutes(testDateIso, 2)).toEqualDateTime('2018-10-30T11:46:00.000Z');
574
- expect(adapter.addMinutes(testDateIso, -2)).toEqualDateTime('2018-10-30T11:42:00.000Z');
575
- expect(adapter.addMinutes(testDateIso, 20)).toEqualDateTime('2018-10-30T12:04:00.000Z');
576
- });
577
- it('Method: addSeconds', () => {
578
- expect(adapter.addSeconds(testDateIso, 2)).toEqualDateTime('2018-10-30T11:44:02.000Z');
579
- expect(adapter.addSeconds(testDateIso, -2)).toEqualDateTime('2018-10-30T11:43:58.000Z');
580
- expect(adapter.addSeconds(testDateIso, 70)).toEqualDateTime('2018-10-30T11:45:10.000Z');
581
- });
582
- it('Method: getYear', () => {
583
- expect(adapter.getYear(testDateIso)).to.equal(2018);
584
- });
585
- it('Method: getMonth', () => {
586
- expect(adapter.getMonth(testDateIso)).to.equal(9);
587
- });
588
- it('Method: getDate', () => {
589
- expect(adapter.getDate(testDateIso)).to.equal(30);
590
- });
591
- it('Method: getHours', () => {
592
- expect(adapter.getHours(testDateIso)).to.equal(11);
593
- });
594
- it('Method: getMinutes', () => {
595
- expect(adapter.getMinutes(testDateIso)).to.equal(44);
596
- });
597
- it('Method: getSeconds', () => {
598
- expect(adapter.getSeconds(testDateIso)).to.equal(0);
599
- });
600
- it('Method: getMilliseconds', () => {
601
- expect(adapter.getMilliseconds(testDateIso)).to.equal(0);
602
- });
603
- it('Method: setYear', () => {
604
- expect(adapter.setYear(testDateIso, 2011)).toEqualDateTime('2011-10-30T11:44:00.000Z');
605
- });
606
- it('Method: setMonth', () => {
607
- expect(adapter.setMonth(testDateIso, 4)).toEqualDateTime('2018-05-30T11:44:00.000Z');
608
- });
609
- it('Method: setDate', () => {
610
- expect(adapter.setDate(testDateIso, 15)).toEqualDateTime('2018-10-15T11:44:00.000Z');
611
- });
612
- it('Method: setHours', () => {
613
- expect(adapter.setHours(testDateIso, 0)).toEqualDateTime('2018-10-30T00:44:00.000Z');
614
- });
615
- it('Method: setMinutes', () => {
616
- expect(adapter.setMinutes(testDateIso, 12)).toEqualDateTime('2018-10-30T11:12:00.000Z');
617
- });
618
- it('Method: setSeconds', () => {
619
- expect(adapter.setSeconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:11.000Z');
620
- });
621
- it('Method: setMilliseconds', () => {
622
- expect(adapter.setMilliseconds(testDateIso, 11)).toEqualDateTime('2018-10-30T11:44:00.011Z');
623
- });
624
- it('Method: getDaysInMonth', () => {
625
- expect(adapter.getDaysInMonth(testDateIso)).to.equal(31);
626
- expect(adapter.getDaysInMonth(testDateLocale)).to.equal(31);
627
- expect(adapter.getDaysInMonth(adapter.addMonths(testDateIso, 1))).to.equal(30);
628
- });
629
- it('Method: getNextMonth', () => {
630
- expect(adapter.getNextMonth(testDateIso)).toEqualDateTime('2018-11-30T11:44:00.000Z');
631
- });
632
- it('Method: getPreviousMonth', () => {
633
- expect(adapter.getPreviousMonth(testDateIso)).toEqualDateTime('2018-09-30T11:44:00.000Z');
634
- });
635
- it('Method: getMonthArray', () => {
636
- const monthArray = adapter.getMonthArray(testDateIso);
637
- let expectedDate = adapter.date('2018-01-01T00:00:00.000Z');
638
- monthArray.forEach(month => {
639
- expect(month).toEqualDateTime(expectedDate);
640
- expectedDate = adapter.addMonths(expectedDate, 1);
641
- });
642
- });
643
- it('Method: mergeDateAndTime', () => {
644
- const mergedDate = adapter.mergeDateAndTime(testDateIso, adapter.date('2018-01-01T14:15:16.000Z'));
645
- expect(adapter.toJsDate(mergedDate)).toEqualDateTime('2018-10-30T14:15:16.000Z');
646
- });
647
- it('Method: getWeekdays', () => {
648
- const weekDays = adapter.getWeekdays();
649
- let date = adapter.startOfWeek(testDateIso);
650
- weekDays.forEach(dayLabel => {
651
- expect(adapter.format(date, 'weekday').startsWith(dayLabel)).to.equal(true);
652
- date = adapter.addDays(date, 1);
653
- });
654
- });
655
- describe('Method: getWeekArray', () => {
656
- it('should work without timezones', () => {
657
- const weekArray = adapter.getWeekArray(testDateIso);
658
- let expectedDate = adapter.startOfWeek(adapter.startOfMonth(testDateIso));
659
- expect(weekArray).to.have.length(5);
660
- weekArray.forEach(week => {
661
- expect(week).to.have.length(7);
662
- week.forEach(day => {
663
- expect(day).toEqualDateTime(expectedDate);
664
- expectedDate = adapter.addDays(expectedDate, 1);
665
- });
666
- });
667
- });
668
- it('should respect the DST', function test() {
669
- if (!adapterTZ.isTimezoneCompatible) {
670
- this.skip();
671
- }
672
- const referenceDate = adapterTZ.dateWithTimezone('2022-03-17', 'Europe/Paris');
673
- const weekArray = adapterTZ.getWeekArray(referenceDate);
674
- let expectedDate = adapter.startOfWeek(adapter.startOfMonth(referenceDate));
675
- expect(weekArray).to.have.length(5);
676
- weekArray.forEach(week => {
677
- expect(week).to.have.length(7);
678
- week.forEach(day => {
679
- expect(adapterTZ.startOfDay(day)).toEqualDateTime(adapterTZ.startOfDay(expectedDate));
680
- expectedDate = adapterTZ.addDays(expectedDate, 1);
681
- expect(getDateOffset(adapterTZ, day)).to.equal(adapterTZ.isAfter(day, testDateLastNonDSTDay) ? 120 : 60);
682
- });
683
- });
684
- });
685
- it('should respect the locale of the adapter, not the locale of the date', function test() {
686
- const dateFr = adapterFr.dateWithTimezone('2022-03-17', 'default');
687
- const weekArray = adapter.getWeekArray(dateFr);
688
- if (getLocaleFromDate) {
689
- expect(getLocaleFromDate(weekArray[0][0])).to.match(/en/);
690
- }
691
-
692
- // Week should start on Monday (28th of March) for adapters supporting locale-based week start.
693
- expect(adapter.getDate(weekArray[0][0])).to.equal(adapter.lib === 'luxon' ? 28 : 27);
694
- });
695
- });
696
- it('Method: getWeekNumber', () => {
697
- expect(adapter.getWeekNumber(testDateIso)).to.equal(44);
698
- });
699
- it('Method: getYearRange', () => {
700
- const yearRange = adapter.getYearRange(testDateIso, adapter.setYear(testDateIso, 2124));
701
- expect(yearRange).to.have.length(107);
702
- expect(adapter.getYear(yearRange[yearRange.length - 1])).to.equal(2124);
703
- const emptyYearRange = adapter.getYearRange(testDateIso, adapter.setYear(testDateIso, adapter.getYear(testDateIso) - 1));
704
- expect(emptyYearRange).to.have.length(0);
705
- });
706
- };