@checkdigit/time 4.0.0-PR.18-81a3 → 4.0.0-PR.18-e0fa

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 (250) hide show
  1. package/README.md +0 -2
  2. package/package.json +1 -1
  3. package/src/date-fns/_lib/addLeadingZeros/test.mts +0 -12
  4. package/src/date-fns/_lib/getRoundingMethod/test.mts +0 -50
  5. package/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/test.mts +0 -25
  6. package/src/date-fns/add/test.mts +0 -95
  7. package/src/date-fns/addBusinessDays/test.mts +0 -78
  8. package/src/date-fns/addDays/test.mts +0 -90
  9. package/src/date-fns/addHours/test.mts +0 -30
  10. package/src/date-fns/addISOWeekYears/test.mts +0 -41
  11. package/src/date-fns/addMilliseconds/test.mts +0 -30
  12. package/src/date-fns/addMinutes/test.mts +0 -30
  13. package/src/date-fns/addMonths/test.mts +0 -123
  14. package/src/date-fns/addQuarters/test.mts +0 -47
  15. package/src/date-fns/addSeconds/test.mts +0 -30
  16. package/src/date-fns/addWeeks/test.mts +0 -30
  17. package/src/date-fns/addYears/test.mts +0 -46
  18. package/src/date-fns/areIntervalsOverlapping/test.mts +0 -231
  19. package/src/date-fns/clamp/test.mts +0 -36
  20. package/src/date-fns/closestIndexTo/test.mts +0 -51
  21. package/src/date-fns/closestTo/test.mts +0 -49
  22. package/src/date-fns/compareAsc/test.mts +0 -58
  23. package/src/date-fns/compareDesc/test.mts +0 -58
  24. package/src/date-fns/constructFrom/test.mts +0 -47
  25. package/src/date-fns/constructNow/test.mts +0 -37
  26. package/src/date-fns/daysToWeeks/test.mts +0 -36
  27. package/src/date-fns/differenceInBusinessDays/test.mts +0 -102
  28. package/src/date-fns/differenceInCalendarDays/test.mts +0 -206
  29. package/src/date-fns/differenceInCalendarISOWeekYears/test.mts +0 -93
  30. package/src/date-fns/differenceInCalendarISOWeeks/test.mts +0 -89
  31. package/src/date-fns/differenceInCalendarMonths/test.mts +0 -82
  32. package/src/date-fns/differenceInCalendarQuarters/test.mts +0 -82
  33. package/src/date-fns/differenceInCalendarWeeks/test.mts +0 -136
  34. package/src/date-fns/differenceInCalendarYears/test.mts +0 -82
  35. package/src/date-fns/differenceInDays/test.mts +0 -175
  36. package/src/date-fns/differenceInHours/test.mts +0 -122
  37. package/src/date-fns/differenceInISOWeekYears/test.mts +0 -93
  38. package/src/date-fns/differenceInMilliseconds/test.mts +0 -53
  39. package/src/date-fns/differenceInMinutes/test.mts +0 -123
  40. package/src/date-fns/differenceInMonths/test.mts +0 -121
  41. package/src/date-fns/differenceInQuarters/test.mts +0 -109
  42. package/src/date-fns/differenceInSeconds/test.mts +0 -144
  43. package/src/date-fns/differenceInWeeks/test.mts +0 -111
  44. package/src/date-fns/differenceInYears/test.mts +0 -97
  45. package/src/date-fns/eachDayOfInterval/test.mts +0 -164
  46. package/src/date-fns/eachHourOfInterval/test.mts +0 -154
  47. package/src/date-fns/eachMinuteOfInterval/test.mts +0 -159
  48. package/src/date-fns/eachMonthOfInterval/test.mts +0 -151
  49. package/src/date-fns/eachQuarterOfInterval/test.mts +0 -136
  50. package/src/date-fns/eachWeekOfInterval/test.mts +0 -177
  51. package/src/date-fns/eachWeekendOfInterval/test.mts +0 -67
  52. package/src/date-fns/eachWeekendOfMonth/test.mts +0 -23
  53. package/src/date-fns/eachWeekendOfYear/test.mts +0 -18
  54. package/src/date-fns/eachYearOfInterval/test.mts +0 -136
  55. package/src/date-fns/endOfDay/test.mts +0 -27
  56. package/src/date-fns/endOfDecade/test.mts +0 -32
  57. package/src/date-fns/endOfHour/test.mts +0 -26
  58. package/src/date-fns/endOfISOWeek/test.mts +0 -27
  59. package/src/date-fns/endOfISOWeekYear/test.mts +0 -36
  60. package/src/date-fns/endOfMinute/test.mts +0 -26
  61. package/src/date-fns/endOfMonth/test.mts +0 -41
  62. package/src/date-fns/endOfQuarter/test.mts +0 -27
  63. package/src/date-fns/endOfSecond/test.mts +0 -26
  64. package/src/date-fns/endOfToday/test.mts +0 -19
  65. package/src/date-fns/endOfTomorrow/test.mts +0 -29
  66. package/src/date-fns/endOfWeek/test.mts +0 -86
  67. package/src/date-fns/endOfYear/test.mts +0 -27
  68. package/src/date-fns/endOfYesterday/test.mts +0 -29
  69. package/src/date-fns/format/test.mts +0 -909
  70. package/src/date-fns/formatDistance/test.mts +0 -189
  71. package/src/date-fns/formatDistanceStrict/test.mts +0 -329
  72. package/src/date-fns/formatDistanceToNow/test.mts +0 -196
  73. package/src/date-fns/formatDistanceToNowStrict/test.mts +0 -293
  74. package/src/date-fns/formatDuration/test.mts +0 -74
  75. package/src/date-fns/formatISO/test.mts +0 -55
  76. package/src/date-fns/formatISO9075/test.mts +0 -35
  77. package/src/date-fns/formatISODuration/test.mts +0 -75
  78. package/src/date-fns/formatRFC3339/test.mts +0 -41
  79. package/src/date-fns/formatRFC7231/test.mts +0 -18
  80. package/src/date-fns/formatRelative/test.mts +0 -92
  81. package/src/date-fns/fp/_lib/convertToFP/test.mts +0 -114
  82. package/src/date-fns/fromUnixTime/test.mts +0 -14
  83. package/src/date-fns/getDate/test.mts +0 -19
  84. package/src/date-fns/getDay/test.mts +0 -19
  85. package/src/date-fns/getDayOfYear/test.mts +0 -27
  86. package/src/date-fns/getDaysInMonth/test.mts +0 -33
  87. package/src/date-fns/getDaysInYear/test.mts +0 -35
  88. package/src/date-fns/getDecade/test.mts +0 -24
  89. package/src/date-fns/getDefaultOptions/test.mts +0 -58
  90. package/src/date-fns/getHours/test.mts +0 -19
  91. package/src/date-fns/getISODay/test.mts +0 -24
  92. package/src/date-fns/getISOWeek/test.mts +0 -54
  93. package/src/date-fns/getISOWeekYear/test.mts +0 -27
  94. package/src/date-fns/getISOWeeksInYear/test.mts +0 -37
  95. package/src/date-fns/getMilliseconds/test.mts +0 -19
  96. package/src/date-fns/getMinutes/test.mts +0 -19
  97. package/src/date-fns/getMonth/test.mts +0 -19
  98. package/src/date-fns/getOverlappingDaysInIntervals/test.mts +0 -243
  99. package/src/date-fns/getQuarter/test.mts +0 -19
  100. package/src/date-fns/getSeconds/test.mts +0 -19
  101. package/src/date-fns/getTime/test.mts +0 -21
  102. package/src/date-fns/getUnixTime/test.mts +0 -26
  103. package/src/date-fns/getWeek/test.mts +0 -56
  104. package/src/date-fns/getWeekOfMonth/test.mts +0 -75
  105. package/src/date-fns/getWeekYear/test.mts +0 -49
  106. package/src/date-fns/getWeeksInMonth/test.mts +0 -51
  107. package/src/date-fns/getYear/test.mts +0 -19
  108. package/src/date-fns/hoursToMilliseconds/test.mts +0 -23
  109. package/src/date-fns/hoursToMinutes/test.mts +0 -25
  110. package/src/date-fns/hoursToSeconds/test.mts +0 -25
  111. package/src/date-fns/interval/test.mts +0 -42
  112. package/src/date-fns/intervalToDuration/test.mts +0 -235
  113. package/src/date-fns/intlFormat/test.mts +0 -88
  114. package/src/date-fns/intlFormatDistance/test.mts +0 -588
  115. package/src/date-fns/isAfter/test.mts +0 -39
  116. package/src/date-fns/isBefore/test.mts +0 -39
  117. package/src/date-fns/isDate/test.mts +0 -72
  118. package/src/date-fns/isEqual/test.mts +0 -34
  119. package/src/date-fns/isExists/test.mts +0 -14
  120. package/src/date-fns/isFirstDayOfMonth/test.mts +0 -25
  121. package/src/date-fns/isFriday/test.mts +0 -24
  122. package/src/date-fns/isFuture/test.mts +0 -34
  123. package/src/date-fns/isLastDayOfMonth/test.mts +0 -25
  124. package/src/date-fns/isLeapYear/test.mts +0 -35
  125. package/src/date-fns/isMatch/test.mts +0 -27
  126. package/src/date-fns/isMonday/test.mts +0 -24
  127. package/src/date-fns/isPast/test.mts +0 -34
  128. package/src/date-fns/isSameDay/test.mts +0 -37
  129. package/src/date-fns/isSameHour/test.mts +0 -37
  130. package/src/date-fns/isSameISOWeek/test.mts +0 -34
  131. package/src/date-fns/isSameISOWeekYear/test.mts +0 -48
  132. package/src/date-fns/isSameMinute/test.mts +0 -37
  133. package/src/date-fns/isSameMonth/test.mts +0 -34
  134. package/src/date-fns/isSameQuarter/test.mts +0 -34
  135. package/src/date-fns/isSameSecond/test.mts +0 -43
  136. package/src/date-fns/isSameWeek/test.mts +0 -58
  137. package/src/date-fns/isSameYear/test.mts +0 -34
  138. package/src/date-fns/isSaturday/test.mts +0 -24
  139. package/src/date-fns/isSunday/test.mts +0 -24
  140. package/src/date-fns/isThisHour/test.mts +0 -34
  141. package/src/date-fns/isThisISOWeek/test.mts +0 -34
  142. package/src/date-fns/isThisMinute/test.mts +0 -34
  143. package/src/date-fns/isThisMonth/test.mts +0 -34
  144. package/src/date-fns/isThisQuarter/test.mts +0 -34
  145. package/src/date-fns/isThisSecond/test.mts +0 -34
  146. package/src/date-fns/isThisWeek/test.mts +0 -39
  147. package/src/date-fns/isThisYear/test.mts +0 -34
  148. package/src/date-fns/isThursday/test.mts +0 -24
  149. package/src/date-fns/isToday/test.mts +0 -34
  150. package/src/date-fns/isTomorrow/test.mts +0 -34
  151. package/src/date-fns/isTuesday/test.mts +0 -24
  152. package/src/date-fns/isValid/test.mts +0 -24
  153. package/src/date-fns/isWednesday/test.mts +0 -24
  154. package/src/date-fns/isWeekend/test.mts +0 -24
  155. package/src/date-fns/isWithinInterval/test.mts +0 -92
  156. package/src/date-fns/isYesterday/test.mts +0 -34
  157. package/src/date-fns/lastDayOfDecade/test.mts +0 -32
  158. package/src/date-fns/lastDayOfISOWeek/test.mts +0 -27
  159. package/src/date-fns/lastDayOfISOWeekYear/test.mts +0 -36
  160. package/src/date-fns/lastDayOfMonth/test.mts +0 -41
  161. package/src/date-fns/lastDayOfQuarter/test.mts +0 -27
  162. package/src/date-fns/lastDayOfWeek/test.mts +0 -86
  163. package/src/date-fns/lastDayOfYear/test.mts +0 -27
  164. package/src/date-fns/lightFormat/test.mts +0 -126
  165. package/src/date-fns/max/test.mts +0 -34
  166. package/src/date-fns/milliseconds/test.mts +0 -62
  167. package/src/date-fns/millisecondsToHours/test.mts +0 -24
  168. package/src/date-fns/millisecondsToMinutes/test.mts +0 -24
  169. package/src/date-fns/millisecondsToSeconds/test.mts +0 -24
  170. package/src/date-fns/min/test.mts +0 -34
  171. package/src/date-fns/minutesToHours/test.mts +0 -24
  172. package/src/date-fns/minutesToMilliseconds/test.mts +0 -23
  173. package/src/date-fns/minutesToSeconds/test.mts +0 -23
  174. package/src/date-fns/monthsToQuarters/test.mts +0 -24
  175. package/src/date-fns/monthsToYears/test.mts +0 -24
  176. package/src/date-fns/nextDay/test.mts +0 -44
  177. package/src/date-fns/nextFriday/test.mts +0 -24
  178. package/src/date-fns/nextMonday/test.mts +0 -24
  179. package/src/date-fns/nextSaturday/test.mts +0 -24
  180. package/src/date-fns/nextSunday/test.mts +0 -24
  181. package/src/date-fns/nextThursday/test.mts +0 -24
  182. package/src/date-fns/nextTuesday/test.mts +0 -23
  183. package/src/date-fns/nextWednesday/test.mts +0 -24
  184. package/src/date-fns/parse/test.mts +0 -2202
  185. package/src/date-fns/parseISO/test.mts +0 -362
  186. package/src/date-fns/parseJSON/test.mts +0 -129
  187. package/src/date-fns/previousDay/test.mts +0 -42
  188. package/src/date-fns/previousFriday/test.mts +0 -22
  189. package/src/date-fns/previousMonday/test.mts +0 -22
  190. package/src/date-fns/previousSaturday/test.mts +0 -22
  191. package/src/date-fns/previousSunday/test.mts +0 -22
  192. package/src/date-fns/previousThursday/test.mts +0 -22
  193. package/src/date-fns/previousTuesday/test.mts +0 -22
  194. package/src/date-fns/previousWednesday/test.mts +0 -22
  195. package/src/date-fns/quartersToMonths/test.mts +0 -24
  196. package/src/date-fns/quartersToYears/test.mts +0 -24
  197. package/src/date-fns/roundToNearestHours/test.mts +0 -200
  198. package/src/date-fns/roundToNearestMinutes/test.mts +0 -208
  199. package/src/date-fns/secondsToHours/test.mts +0 -24
  200. package/src/date-fns/secondsToMilliseconds/test.mts +0 -14
  201. package/src/date-fns/secondsToMinutes/test.mts +0 -24
  202. package/src/date-fns/set/test.mts +0 -121
  203. package/src/date-fns/setDate/test.mts +0 -30
  204. package/src/date-fns/setDay/test.mts +0 -112
  205. package/src/date-fns/setDayOfYear/test.mts +0 -30
  206. package/src/date-fns/setDefaultOptions/test.mts +0 -498
  207. package/src/date-fns/setHours/test.mts +0 -30
  208. package/src/date-fns/setISODay/test.mts +0 -59
  209. package/src/date-fns/setISOWeek/test.mts +0 -41
  210. package/src/date-fns/setISOWeekYear/test.mts +0 -50
  211. package/src/date-fns/setMilliseconds/test.mts +0 -30
  212. package/src/date-fns/setMinutes/test.mts +0 -30
  213. package/src/date-fns/setMonth/test.mts +0 -46
  214. package/src/date-fns/setQuarter/test.mts +0 -46
  215. package/src/date-fns/setSeconds/test.mts +0 -30
  216. package/src/date-fns/setWeek/test.mts +0 -63
  217. package/src/date-fns/setWeekYear/test.mts +0 -72
  218. package/src/date-fns/setYear/test.mts +0 -30
  219. package/src/date-fns/startOfDay/test.mts +0 -27
  220. package/src/date-fns/startOfDecade/test.mts +0 -32
  221. package/src/date-fns/startOfHour/test.mts +0 -27
  222. package/src/date-fns/startOfISOWeek/test.mts +0 -27
  223. package/src/date-fns/startOfISOWeekYear/test.mts +0 -41
  224. package/src/date-fns/startOfMinute/test.mts +0 -27
  225. package/src/date-fns/startOfMonth/test.mts +0 -27
  226. package/src/date-fns/startOfQuarter/test.mts +0 -27
  227. package/src/date-fns/startOfSecond/test.mts +0 -27
  228. package/src/date-fns/startOfToday/test.mts +0 -19
  229. package/src/date-fns/startOfTomorrow/test.mts +0 -29
  230. package/src/date-fns/startOfWeek/test.mts +0 -86
  231. package/src/date-fns/startOfWeekYear/test.mts +0 -58
  232. package/src/date-fns/startOfYear/test.mts +0 -38
  233. package/src/date-fns/startOfYesterday/test.mts +0 -29
  234. package/src/date-fns/sub/test.mts +0 -83
  235. package/src/date-fns/subBusinessDays/test.mts +0 -40
  236. package/src/date-fns/subDays/test.mts +0 -30
  237. package/src/date-fns/subHours/test.mts +0 -30
  238. package/src/date-fns/subISOWeekYears/test.mts +0 -41
  239. package/src/date-fns/subMilliseconds/test.mts +0 -30
  240. package/src/date-fns/subMinutes/test.mts +0 -30
  241. package/src/date-fns/subMonths/test.mts +0 -47
  242. package/src/date-fns/subQuarters/test.mts +0 -47
  243. package/src/date-fns/subSeconds/test.mts +0 -30
  244. package/src/date-fns/subWeeks/test.mts +0 -30
  245. package/src/date-fns/subYears/test.mts +0 -46
  246. package/src/date-fns/toDate/test.mts +0 -35
  247. package/src/date-fns/weeksToDays/test.mts +0 -24
  248. package/src/date-fns/yearsToDays/test.mts +0 -24
  249. package/src/date-fns/yearsToMonths/test.mts +0 -24
  250. package/src/date-fns/yearsToQuarters/test.mts +0 -24
@@ -1,30 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { setDate } from './index';
3
-
4
- describe('setDate', () => {
5
- it('sets the day of the month', () => {
6
- const result = setDate(new Date(2014, 8 /* Sep */, 1), 30);
7
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 30));
8
- });
9
-
10
- it('accepts a timestamp', () => {
11
- const result = setDate(new Date(2014, 8 /* Sep */, 1).getTime(), 25);
12
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 25));
13
- });
14
-
15
- it('does not mutate the original date', () => {
16
- const date = new Date(2014, 8 /* Sep */, 1);
17
- setDate(date, 20);
18
- expect(date).toEqual(new Date(2014, 8 /* Sep */, 1));
19
- });
20
-
21
- it('returns `Invalid Date` if the given date is invalid', () => {
22
- const result = setDate(new Date(NaN), 30);
23
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
24
- });
25
-
26
- it('returns `Invalid Date` if the given amount is NaN', () => {
27
- const result = setDate(new Date(2014, 8 /* Sep */, 1), NaN);
28
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
29
- });
30
- });
@@ -1,112 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { setDay } from './index';
3
-
4
- describe('setDay', () => {
5
- it('sets the day of the week', () => {
6
- const result = setDay(new Date(2014, 8 /* Sep */, 1), 0);
7
- expect(result).toEqual(new Date(2014, 7 /* Aug */, 31));
8
- });
9
-
10
- it('allows to specify which day is the first day of the week', () => {
11
- const result = setDay(new Date(2014, 8 /* Sep */, 1), 0, {
12
- weekStartsOn: 1,
13
- });
14
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 7));
15
- });
16
-
17
- it('allows to specify which day is the first day of the week in locale', () => {
18
- const result = setDay(new Date(2014, 8 /* Sep */, 1), 0, {
19
- locale: {
20
- options: { weekStartsOn: 1 },
21
- },
22
- });
23
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 7));
24
- });
25
-
26
- it('`options.weekStartsOn` overwrites the first day of the week specified in locale', () => {
27
- const result = setDay(new Date(2014, 8 /* Sep */, 1), 0, {
28
- weekStartsOn: 1,
29
- locale: {
30
- options: { weekStartsOn: 0 },
31
- },
32
- });
33
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 7));
34
- });
35
-
36
- it('specifies Monday as the first day of the week', () => {
37
- const result = setDay(new Date(2014, 8 /* Sep */, 6), 1, {
38
- weekStartsOn: 1,
39
- });
40
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 1));
41
- });
42
-
43
- it('specifies Tuesday as the first day of the week', () => {
44
- const result = setDay(new Date(2014, 8 /* Sep */, 6), 1, {
45
- weekStartsOn: 2,
46
- });
47
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 8));
48
- });
49
-
50
- describe('the day index is more than 6', () => {
51
- it('sets the day of the next week', () => {
52
- const result = setDay(new Date(2014, 8 /* Sep */, 1), 8);
53
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 8));
54
- });
55
-
56
- it('allows to specify which day is the first day of the week', () => {
57
- const result = setDay(new Date(2014, 8 /* Sep */, 1), 7, {
58
- weekStartsOn: 1,
59
- });
60
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 8));
61
- });
62
-
63
- it('sets the day of another week in the future', () => {
64
- const result = setDay(new Date(2014, 8 /* Sep */, 1), 14, {
65
- weekStartsOn: 1,
66
- });
67
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 15));
68
- });
69
- });
70
-
71
- describe('the day index is less than 0', () => {
72
- it('sets the day of the last week', () => {
73
- const result = setDay(new Date(2014, 8 /* Sep */, 1), -6);
74
- expect(result).toEqual(new Date(2014, 7 /* Aug */, 25));
75
- });
76
-
77
- it('allows to specify which day is the first day of the week', () => {
78
- const result = setDay(new Date(2014, 8 /* Sep */, 1), -7, {
79
- weekStartsOn: 1,
80
- });
81
- expect(result).toEqual(new Date(2014, 7 /* Aug */, 25));
82
- });
83
-
84
- it('set the day of another week in the past', () => {
85
- const result = setDay(new Date(2014, 8 /* Sep */, 1), -14, {
86
- weekStartsOn: 1,
87
- });
88
- expect(result).toEqual(new Date(2014, 7 /* Aug */, 18));
89
- });
90
- });
91
-
92
- it('accepts a timestamp', () => {
93
- const result = setDay(new Date(2014, 8 /* Sep */, 1).getTime(), 3);
94
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 3));
95
- });
96
-
97
- it('does not mutate the original date', () => {
98
- const date = new Date(2014, 8 /* Sep */, 1);
99
- setDay(date, 3);
100
- expect(date).toEqual(new Date(2014, 8 /* Sep */, 1));
101
- });
102
-
103
- it('returns `Invalid Date` if the given date is invalid', () => {
104
- const result = setDay(new Date(NaN), 0);
105
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
106
- });
107
-
108
- it('returns `Invalid Date` if the given amount is NaN', () => {
109
- const result = setDay(new Date(2014, 8 /* Sep */, 1), NaN);
110
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
111
- });
112
- });
@@ -1,30 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { setDayOfYear } from './index';
3
-
4
- describe('setDayOfYear', () => {
5
- it('sets the day of the year', () => {
6
- const result = setDayOfYear(new Date(2014, 6 /* Jul */, 2), 2);
7
- expect(result).toEqual(new Date(2014, 0 /* Jan */, 2));
8
- });
9
-
10
- it('accepts a timestamp', () => {
11
- const result = setDayOfYear(new Date(2014, 6 /* Jul */, 2).getTime(), 60);
12
- expect(result).toEqual(new Date(2014, 2 /* Mar */, 1));
13
- });
14
-
15
- it('does not mutate the original date', () => {
16
- const date = new Date(2014, 6 /* Jul */, 2);
17
- setDayOfYear(date, 365);
18
- expect(date).toEqual(new Date(2014, 6 /* Jul */, 2));
19
- });
20
-
21
- it('returns `Invalid Date` if the given date is invalid', () => {
22
- const result = setDayOfYear(new Date(NaN), 2);
23
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
24
- });
25
-
26
- it('returns `Invalid Date` if the given amount is NaN', () => {
27
- const result = setDayOfYear(new Date(2014, 6 /* Jul */, 2), NaN);
28
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
29
- });
30
- });
@@ -1,498 +0,0 @@
1
- import { afterEach, beforeAll, describe, expect, it } from 'vitest';
2
- import { setDefaultOptions } from './index';
3
- import type { DefaultOptions } from '../_lib/defaultOptions/index';
4
- import { getDefaultOptions as getInternalDefaultOptions } from '../_lib/defaultOptions/index';
5
- import { enUS } from '../locale/en-US/index';
6
- import { differenceInCalendarWeeks } from '../differenceInCalendarWeeks/index';
7
- import { eachWeekOfInterval } from '../eachWeekOfInterval/index';
8
- import { endOfWeek } from '../endOfWeek/index';
9
- import { format } from '../format/index';
10
- import { formatDistance } from '../formatDistance/index';
11
- import { formatDistanceStrict } from '../formatDistanceStrict/index';
12
- import { formatDuration } from '../formatDuration/index';
13
- import { formatRelative } from '../formatRelative/index';
14
- import { getWeek } from '../getWeek/index';
15
- import { getWeekOfMonth } from '../getWeekOfMonth/index';
16
- import { getWeeksInMonth } from '../getWeeksInMonth/index';
17
- import { getWeekYear } from '../getWeekYear/index';
18
- import { isMatch } from '../isMatch/index';
19
- import { isSameWeek } from '../isSameWeek/index';
20
- import { lastDayOfWeek } from '../lastDayOfWeek/index';
21
- import { parse } from '../parse/index';
22
- import { setDay } from '../setDay/index';
23
- import { setWeek } from '../setWeek/index';
24
- import { setWeekYear } from '../setWeekYear/index';
25
- import { startOfWeek } from '../startOfWeek/index';
26
- import { startOfWeekYear } from '../startOfWeekYear/index';
27
- import { resetDefaultOptions } from '../_lib/test/index';
28
- import { Locale } from '../types';
29
- import { before } from 'node:test';
30
-
31
- describe.skip('setDefaultOptions', () => {
32
- afterEach(resetDefaultOptions);
33
-
34
- let eo: Locale;
35
- beforeAll(async () => {
36
- // @ts-expect-error
37
- ({ eo } = await import('../locale/eo/index'));
38
- });
39
-
40
- it('changes the internal `defaultOptions` object', () => {
41
- setDefaultOptions({
42
- weekStartsOn: 1,
43
- firstWeekContainsDate: 4,
44
- locale: eo,
45
- });
46
- expect(getInternalDefaultOptions()).toEqual({
47
- weekStartsOn: 1,
48
- firstWeekContainsDate: 4,
49
- locale: eo,
50
- });
51
- });
52
-
53
- it('merges with previous `defaultOptions` calls', () => {
54
- setDefaultOptions({ weekStartsOn: 1 });
55
- setDefaultOptions({ firstWeekContainsDate: 4 });
56
- setDefaultOptions({ locale: eo });
57
- expect(getInternalDefaultOptions()).toEqual({
58
- weekStartsOn: 1,
59
- firstWeekContainsDate: 4,
60
- locale: eo,
61
- });
62
- });
63
-
64
- it('setting an option to `undefined` deletes it', () => {
65
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
66
- setDefaultOptions({ weekStartsOn: undefined });
67
- expect(getInternalDefaultOptions()).toEqual({
68
- firstWeekContainsDate: 4,
69
- });
70
- });
71
-
72
- it('does not mutate the argument', () => {
73
- const argument: DefaultOptions = { weekStartsOn: 1 };
74
- setDefaultOptions(argument);
75
- expect(argument).toEqual({ weekStartsOn: 1 });
76
- });
77
-
78
- describe('locale', () => {
79
- it('format', () => {
80
- // For reference: not setting any options
81
- expect(format(new Date(2014, 0, 1), 'PPPpp')).toEqual('January 1st, 2014 at 12:00:00 AM');
82
-
83
- setDefaultOptions({ locale: eo });
84
-
85
- expect(format(new Date(2014, 0, 1), 'PPPpp')).toEqual('2014-januaro-01 00:00:00');
86
-
87
- // Manually set `locale` take priority over `defaultOptions.locale`
88
- expect(format(new Date(2014, 0, 1), 'PPPpp', { locale: enUS })).toEqual('January 1st, 2014 at 12:00:00 AM');
89
- });
90
-
91
- it('formatDistance', () => {
92
- // For reference: not setting any options
93
- expect(formatDistance(new Date(2014, 0, 1), new Date(2015, 0, 1))).toEqual('about 1 year');
94
-
95
- setDefaultOptions({ locale: eo });
96
-
97
- expect(formatDistance(new Date(2014, 0, 1), new Date(2015, 0, 1))).toEqual('proksimume 1 jaro');
98
-
99
- // Manually set `locale` take priority over `defaultOptions.locale`
100
- expect(
101
- formatDistance(new Date(2014, 0, 1), new Date(2015, 0, 1), {
102
- locale: enUS,
103
- }),
104
- ).toEqual('about 1 year');
105
- });
106
-
107
- it('formatDistanceStrict', () => {
108
- // For reference: not setting any options
109
- expect(formatDistanceStrict(new Date(2014, 0, 1), new Date(2015, 0, 1))).toEqual('1 year');
110
-
111
- setDefaultOptions({ locale: eo });
112
-
113
- expect(formatDistanceStrict(new Date(2014, 0, 1), new Date(2015, 0, 1))).toEqual('1 jaro');
114
-
115
- // Manually set `locale` take priority over `defaultOptions.locale`
116
- expect(
117
- formatDistanceStrict(new Date(2014, 0, 1), new Date(2015, 0, 1), {
118
- locale: enUS,
119
- }),
120
- ).toEqual('1 year');
121
- });
122
-
123
- it('formatDuration', () => {
124
- // For reference: not setting any options
125
- expect(formatDuration({ years: 1 })).toEqual('1 year');
126
-
127
- setDefaultOptions({ locale: eo });
128
-
129
- expect(formatDuration({ years: 1 })).toEqual('1 jaro');
130
-
131
- // Manually set `locale` take priority over `defaultOptions.locale`
132
- expect(formatDuration({ years: 1 }, { locale: enUS })).toEqual('1 year');
133
- });
134
-
135
- it('formatRelative', () => {
136
- // For reference: not setting any options
137
- expect(formatRelative(new Date(2014, 0, 1), new Date(2014, 0, 2))).toEqual('yesterday at 12:00 AM');
138
-
139
- setDefaultOptions({ locale: eo });
140
-
141
- expect(formatRelative(new Date(2014, 0, 1), new Date(2014, 0, 2))).toEqual('hieraŭ je 00:00');
142
-
143
- // Manually set `locale` take priority over `defaultOptions.locale`
144
- expect(
145
- formatRelative(new Date(2014, 0, 1), new Date(2014, 0, 2), {
146
- locale: enUS,
147
- }),
148
- ).toEqual('yesterday at 12:00 AM');
149
- });
150
-
151
- it('isMatch', () => {
152
- // For reference: not setting any options
153
- expect(isMatch('January 1st, 2014 at 12:00:00 AM', 'PPPpp')).toBe(true);
154
-
155
- setDefaultOptions({ locale: eo });
156
-
157
- expect(isMatch('2014-januaro-01 00:00:00', 'PPPpp')).toBe(true);
158
-
159
- // Manually set `locale` take priority over `defaultOptions.locale`
160
- expect(isMatch('January 1st, 2014 at 12:00:00 AM', 'PPPpp', { locale: enUS })).toBe(true);
161
- });
162
-
163
- it('parse', () => {
164
- // For reference: not setting any options
165
- expect(parse('January 1st, 2014 at 12:00:00 AM', 'PPPpp', new Date())).toEqual(new Date(2014, 0, 1));
166
-
167
- setDefaultOptions({ locale: eo });
168
-
169
- expect(parse('2014-januaro-01 00:00:00', 'PPPpp', new Date())).toEqual(new Date(2014, 0, 1));
170
-
171
- // Manually set `locale` take priority over `defaultOptions.locale`
172
- expect(
173
- parse('January 1st, 2014 at 12:00:00 AM', 'PPPpp', new Date(), {
174
- locale: enUS,
175
- }),
176
- ).toEqual(new Date(2014, 0, 1));
177
- });
178
- });
179
-
180
- describe('weekStartsOn', () => {
181
- it('differenceInCalendarWeeks', () => {
182
- // For reference: not setting any options
183
- expect(
184
- differenceInCalendarWeeks(new Date(2014, 6 /* Jul */, 8, 18, 0), new Date(2014, 5 /* Jun */, 29, 6, 0)),
185
- ).toBe(1);
186
-
187
- setDefaultOptions({ weekStartsOn: 1 });
188
-
189
- expect(
190
- differenceInCalendarWeeks(new Date(2014, 6 /* Jul */, 8, 18, 0), new Date(2014, 5 /* Jun */, 29, 6, 0)),
191
- ).toBe(2);
192
-
193
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
194
- expect(
195
- differenceInCalendarWeeks(new Date(2014, 6 /* Jul */, 8, 18, 0), new Date(2014, 5 /* Jun */, 29, 6, 0), {
196
- weekStartsOn: 0,
197
- }),
198
- ).toBe(1);
199
- });
200
-
201
- it('eachWeekOfInterval', () => {
202
- // For reference: not setting any options
203
- expect(
204
- eachWeekOfInterval({
205
- start: new Date(2014, 9 /* Oct */, 6),
206
- end: new Date(2014, 10 /* Nov */, 23),
207
- }),
208
- ).toEqual([
209
- new Date(2014, 9 /* Oct */, 5),
210
- new Date(2014, 9 /* Oct */, 12),
211
- new Date(2014, 9 /* Oct */, 19),
212
- new Date(2014, 9 /* Oct */, 26),
213
- new Date(2014, 10 /* Nov */, 2),
214
- new Date(2014, 10 /* Nov */, 9),
215
- new Date(2014, 10 /* Nov */, 16),
216
- new Date(2014, 10 /* Nov */, 23),
217
- ]);
218
-
219
- setDefaultOptions({ weekStartsOn: 1 });
220
-
221
- expect(
222
- eachWeekOfInterval({
223
- start: new Date(2014, 9 /* Oct */, 6, 6, 35),
224
- end: new Date(2014, 10 /* Nov */, 25, 22, 15),
225
- }),
226
- ).toEqual([
227
- new Date(2014, 9 /* Oct */, 6),
228
- new Date(2014, 9 /* Oct */, 13),
229
- new Date(2014, 9 /* Oct */, 20),
230
- new Date(2014, 9 /* Oct */, 27),
231
- new Date(2014, 10 /* Nov */, 3),
232
- new Date(2014, 10 /* Nov */, 10),
233
- new Date(2014, 10 /* Nov */, 17),
234
- new Date(2014, 10 /* Nov */, 24),
235
- ]);
236
-
237
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
238
- expect(
239
- eachWeekOfInterval(
240
- {
241
- start: new Date(2014, 9 /* Oct */, 6),
242
- end: new Date(2014, 10 /* Nov */, 23),
243
- },
244
- {
245
- weekStartsOn: 0,
246
- },
247
- ),
248
- ).toEqual([
249
- new Date(2014, 9 /* Oct */, 5),
250
- new Date(2014, 9 /* Oct */, 12),
251
- new Date(2014, 9 /* Oct */, 19),
252
- new Date(2014, 9 /* Oct */, 26),
253
- new Date(2014, 10 /* Nov */, 2),
254
- new Date(2014, 10 /* Nov */, 9),
255
- new Date(2014, 10 /* Nov */, 16),
256
- new Date(2014, 10 /* Nov */, 23),
257
- ]);
258
- });
259
-
260
- it('endOfWeek', () => {
261
- // For reference: not setting any options
262
- expect(endOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0))).toEqual(
263
- new Date(2014, 8 /* Sep */, 6, 23, 59, 59, 999),
264
- );
265
-
266
- setDefaultOptions({ weekStartsOn: 1 });
267
-
268
- expect(endOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0))).toEqual(
269
- new Date(2014, 8 /* Sep */, 7, 23, 59, 59, 999),
270
- );
271
-
272
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
273
- expect(
274
- endOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0), {
275
- weekStartsOn: 0,
276
- }),
277
- ).toEqual(new Date(2014, 8 /* Sep */, 6, 23, 59, 59, 999));
278
- });
279
-
280
- it('getWeekOfMonth', () => {
281
- // For reference: not setting any options
282
- expect(getWeekOfMonth(new Date(2017, 10 /* Nov */, 15))).toBe(3);
283
-
284
- setDefaultOptions({ weekStartsOn: 1 });
285
-
286
- expect(getWeekOfMonth(new Date(2017, 9 /* Oct */, 31))).toBe(6);
287
-
288
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
289
- expect(
290
- getWeekOfMonth(new Date(2017, 10 /* Nov */, 15), {
291
- weekStartsOn: 0,
292
- }),
293
- ).toBe(3);
294
- });
295
-
296
- it('getWeeksInMonth', () => {
297
- // For reference: not setting any options
298
- expect(getWeeksInMonth(new Date(2015, 1 /* Feb */, 8, 18, 0))).toBe(4);
299
-
300
- setDefaultOptions({ weekStartsOn: 1 });
301
-
302
- expect(getWeeksInMonth(new Date(2015, 1 /* Feb */, 8, 18, 0))).toBe(5);
303
-
304
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
305
- expect(
306
- getWeeksInMonth(new Date(2015, 1 /* Feb */, 8, 18, 0), {
307
- weekStartsOn: 0,
308
- }),
309
- ).toBe(4);
310
- });
311
-
312
- it('isSameWeek', () => {
313
- // For reference: not setting any options
314
- expect(isSameWeek(new Date(2014, 7 /* Aug */, 31), new Date(2014, 8 /* Sep */, 4))).toBe(true);
315
-
316
- setDefaultOptions({ weekStartsOn: 1 });
317
-
318
- expect(isSameWeek(new Date(2014, 7 /* Aug */, 31), new Date(2014, 8 /* Sep */, 4))).toBe(false);
319
-
320
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
321
- expect(
322
- isSameWeek(new Date(2014, 7 /* Aug */, 31), new Date(2014, 8 /* Sep */, 4), {
323
- weekStartsOn: 0,
324
- }),
325
- ).toBe(true);
326
- });
327
-
328
- it('lastDayOfWeek', () => {
329
- // For reference: not setting any options
330
- expect(lastDayOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0))).toEqual(new Date(2014, 8 /* Sep */, 6));
331
-
332
- setDefaultOptions({ weekStartsOn: 1 });
333
-
334
- expect(lastDayOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0))).toEqual(new Date(2014, 8 /* Sep */, 7));
335
-
336
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
337
- expect(
338
- lastDayOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0), {
339
- weekStartsOn: 0,
340
- }),
341
- ).toEqual(new Date(2014, 8 /* Sep */, 6));
342
- });
343
-
344
- it('setDay', () => {
345
- // For reference: not setting any options
346
- expect(setDay(new Date(2014, 8 /* Sep */, 1), 0)).toEqual(new Date(2014, 7 /* Aug */, 31));
347
-
348
- setDefaultOptions({ weekStartsOn: 1 });
349
-
350
- expect(setDay(new Date(2014, 8 /* Sep */, 1), 0)).toEqual(new Date(2014, 8 /* Sep */, 7));
351
-
352
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
353
- expect(
354
- setDay(new Date(2014, 8 /* Sep */, 1), 0, {
355
- weekStartsOn: 0,
356
- }),
357
- ).toEqual(new Date(2014, 7 /* Aug */, 31));
358
- });
359
-
360
- it('startOfWeek', () => {
361
- // For reference: not setting any options
362
- expect(startOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0))).toEqual(new Date(2014, 7 /* Aug */, 31));
363
-
364
- setDefaultOptions({ weekStartsOn: 1 });
365
-
366
- expect(startOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0))).toEqual(new Date(2014, 8 /* Sep */, 1));
367
-
368
- // Manually set `weekStartsOn` take priority over `defaultOptions.weekStartsOn`
369
- expect(
370
- startOfWeek(new Date(2014, 8 /* Sep */, 2, 11, 55, 0), {
371
- weekStartsOn: 0,
372
- }),
373
- ).toEqual(new Date(2014, 7 /* Aug */, 31));
374
- });
375
- });
376
-
377
- describe('firstWeekContainsDate', () => {
378
- it('format', () => {
379
- // For reference: not setting any options
380
- expect(format(new Date(1986, 3 /* Apr */, 6), 'w wo ww')).toBe('15 15th 15');
381
-
382
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
383
-
384
- expect(format(new Date(1986, 3 /* Apr */, 6), 'w wo ww')).toBe('14 14th 14');
385
-
386
- // Manually set `firstWeekContainsDate` take priority over `defaultOptions.firstWeekContainsDate`
387
- expect(
388
- format(new Date(1986, 3 /* Apr */, 6), 'w wo ww', {
389
- weekStartsOn: 0,
390
- firstWeekContainsDate: 1,
391
- }),
392
- ).toBe('15 15th 15');
393
- });
394
-
395
- it('getWeek', () => {
396
- // For reference: not setting any options
397
- expect(getWeek(new Date(2005, 0 /* Jan */, 2))).toBe(2);
398
-
399
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
400
-
401
- expect(getWeek(new Date(2005, 0 /* Jan */, 2))).toBe(53);
402
-
403
- // Manually set `firstWeekContainsDate` take priority over `defaultOptions.firstWeekContainsDate`
404
- expect(
405
- getWeek(new Date(2005, 0 /* Jan */, 2), {
406
- weekStartsOn: 0,
407
- firstWeekContainsDate: 1,
408
- }),
409
- ).toBe(2);
410
- });
411
-
412
- it('getWeekYear', () => {
413
- // For reference: not setting any options
414
- expect(getWeekYear(new Date(2004, 11 /* Dec */, 26))).toBe(2005);
415
-
416
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
417
-
418
- expect(getWeekYear(new Date(2004, 11 /* Dec */, 26))).toBe(2004);
419
-
420
- // Manually set `firstWeekContainsDate` take priority over `defaultOptions.firstWeekContainsDate`
421
- expect(
422
- getWeekYear(new Date(2004, 11 /* Dec */, 26), {
423
- weekStartsOn: 0,
424
- firstWeekContainsDate: 1,
425
- }),
426
- ).toBe(2005);
427
- });
428
-
429
- it('parse', () => {
430
- const referenceDate = new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 900);
431
- // For reference: not setting any options
432
- expect(parse('2018', 'Y', referenceDate)).toEqual(new Date(2017, 11 /* Dec */, 31));
433
-
434
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
435
-
436
- expect(parse('2018', 'Y', referenceDate)).toEqual(new Date(2018, 0 /* Jan */, 1));
437
-
438
- // Manually set `firstWeekContainsDate` take priority over `defaultOptions.firstWeekContainsDate`
439
- expect(
440
- parse('2018', 'Y', referenceDate, {
441
- weekStartsOn: 0,
442
- firstWeekContainsDate: 1,
443
- }),
444
- ).toEqual(new Date(2017, 11 /* Dec */, 31));
445
- });
446
-
447
- it('setWeek', () => {
448
- // For reference: not setting any options
449
- expect(setWeek(new Date(2005, 0 /* Jan */, 2), 1)).toEqual(new Date(2004, 11 /* Dec */, 26));
450
-
451
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
452
-
453
- expect(setWeek(new Date(2005, 0 /* Jan */, 2), 1)).toEqual(new Date(2004, 0 /* Jan */, 4));
454
-
455
- // Manually set `firstWeekContainsDate` take priority over `defaultOptions.firstWeekContainsDate`
456
- expect(
457
- setWeek(new Date(2005, 0 /* Jan */, 2), 1, {
458
- weekStartsOn: 0,
459
- firstWeekContainsDate: 1,
460
- }),
461
- ).toEqual(new Date(2004, 11 /* Dec */, 26));
462
- });
463
-
464
- it('setWeekYear', () => {
465
- // For reference: not setting any options
466
- expect(setWeekYear(new Date(2010, 0 /* Jan */, 2), 2004)).toEqual(new Date(2004, 0 /* Jan */, 3));
467
-
468
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
469
-
470
- expect(setWeekYear(new Date(2010, 0 /* Jan */, 2), 2004)).toEqual(new Date(2005, 0 /* Jan */, 1));
471
-
472
- // Manually set `firstWeekContainsDate` take priority over `defaultOptions.firstWeekContainsDate`
473
- expect(
474
- setWeekYear(new Date(2010, 0 /* Jan */, 2), 2004, {
475
- weekStartsOn: 0,
476
- firstWeekContainsDate: 1,
477
- }),
478
- ).toEqual(new Date(2004, 0 /* Jan */, 3));
479
- });
480
-
481
- it('startOfWeekYear', () => {
482
- // For reference: not setting any options
483
- expect(startOfWeekYear(new Date(2005, 6 /* Jul */, 2))).toEqual(new Date(2004, 11 /* Dec */, 26, 0, 0, 0, 0));
484
-
485
- setDefaultOptions({ weekStartsOn: 1, firstWeekContainsDate: 4 });
486
-
487
- expect(startOfWeekYear(new Date(2005, 6 /* Jul */, 2))).toEqual(new Date(2005, 0 /* Jan */, 3, 0, 0, 0, 0));
488
-
489
- // Manually set `firstWeekContainsDate` take priority over `defaultOptions.firstWeekContainsDate`
490
- expect(
491
- startOfWeekYear(new Date(2005, 6 /* Jul */, 2), {
492
- weekStartsOn: 0,
493
- firstWeekContainsDate: 1,
494
- }),
495
- ).toEqual(new Date(2004, 11 /* Dec */, 26, 0, 0, 0, 0));
496
- });
497
- });
498
- });