@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,189 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import type { FormatDistanceFn } from '../locale/types';
3
- import { formatDistance } from './index';
4
-
5
- describe('formatDistance', () => {
6
- describe('seconds', () => {
7
- describe('when the includeSeconds option is true', () => {
8
- it('less than 5 seconds', () => {
9
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 3), {
10
- includeSeconds: true,
11
- });
12
- expect(result).toBe('less than 5 seconds');
13
- });
14
-
15
- it('less than 10 seconds', () => {
16
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 7), {
17
- includeSeconds: true,
18
- });
19
- expect(result).toBe('less than 10 seconds');
20
- });
21
-
22
- it('less than 20 seconds', () => {
23
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 15), {
24
- includeSeconds: true,
25
- });
26
- expect(result).toBe('less than 20 seconds');
27
- });
28
-
29
- it('half a minute', () => {
30
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 25), {
31
- includeSeconds: true,
32
- });
33
- expect(result).toBe('half a minute');
34
- });
35
-
36
- it('less than a minute', () => {
37
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 45), {
38
- includeSeconds: true,
39
- });
40
- expect(result).toBe('less than a minute');
41
- });
42
-
43
- it('1 minute', () => {
44
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 0), {
45
- includeSeconds: true,
46
- });
47
- expect(result).toBe('1 minute');
48
- });
49
- });
50
- });
51
-
52
- describe('minutes', () => {
53
- it('less than a minute', () => {
54
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 20));
55
- expect(result).toBe('less than a minute');
56
- });
57
-
58
- it('1 minute', () => {
59
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 50));
60
- expect(result).toBe('1 minute');
61
- });
62
-
63
- it('n minutes', () => {
64
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 34, 50));
65
- expect(result).toBe('3 minutes');
66
- });
67
- });
68
-
69
- describe('hours', () => {
70
- it('about 1 hour', () => {
71
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 11, 32, 0));
72
- expect(result).toBe('about 1 hour');
73
- });
74
-
75
- it('about n hours', () => {
76
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 13, 32, 0));
77
- expect(result).toBe('about 3 hours');
78
- });
79
- });
80
-
81
- describe('days', () => {
82
- it('1 day', () => {
83
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 5, 10, 32, 0));
84
- expect(result).toBe('1 day');
85
- });
86
-
87
- it('n days', () => {
88
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 7, 10, 32, 0));
89
- expect(result).toBe('3 days');
90
- });
91
- });
92
-
93
- describe('months', () => {
94
- it('about 1 month', () => {
95
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 4, 4, 10, 32, 0));
96
- expect(result).toBe('about 1 month');
97
- });
98
-
99
- it('n months', () => {
100
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 6, 4, 10, 32, 0));
101
- expect(result).toBe('3 months');
102
- });
103
- });
104
-
105
- describe('years', () => {
106
- it('about 1 year', () => {
107
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1987, 3, 4, 10, 32, 0));
108
- expect(result).toBe('about 1 year');
109
- });
110
-
111
- it('over 1 year', () => {
112
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1987, 9, 4, 10, 32, 0));
113
- expect(result).toBe('over 1 year');
114
- });
115
-
116
- it('almost n years', () => {
117
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1989, 2, 4, 10, 32, 0));
118
- expect(result).toBe('almost 3 years');
119
- });
120
-
121
- it('about n years', () => {
122
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1989, 3, 4, 10, 32, 0));
123
- expect(result).toBe('about 3 years');
124
- });
125
-
126
- it('over n years', () => {
127
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1989, 9, 4, 10, 32, 0));
128
- expect(result).toBe('over 3 years');
129
- });
130
- });
131
-
132
- it('accepts timestamps', () => {
133
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0).getTime(), new Date(1986, 3, 4, 11, 32, 0).getTime());
134
- expect(result).toBe('about 1 hour');
135
- });
136
-
137
- describe('when the addSuffix option is true', () => {
138
- it('adds a past suffix', () => {
139
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 25), {
140
- includeSeconds: true,
141
- addSuffix: true,
142
- });
143
- expect(result).toBe('half a minute ago');
144
- });
145
-
146
- it('adds a future suffix', () => {
147
- const result = formatDistance(new Date(1986, 3, 4, 11, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
148
- addSuffix: true,
149
- });
150
- expect(result).toBe('in about 1 hour');
151
- });
152
- });
153
-
154
- describe('custom locale', () => {
155
- it('can be passed to the function', () => {
156
- const localizeDistance: FormatDistanceFn = (token, count, options) => {
157
- expect(token).toBe('lessThanXSeconds');
158
- expect(count).toBe(5);
159
- expect(options!.addSuffix).toBe(true);
160
- expect(options!.comparison!).toBeGreaterThan(0);
161
- return 'It works!';
162
- };
163
-
164
- const customLocale = {
165
- formatDistance: localizeDistance,
166
- };
167
-
168
- const result = formatDistance(new Date(1986, 3, 4, 10, 32, 3), new Date(1986, 3, 4, 10, 32, 0), {
169
- includeSeconds: true,
170
- addSuffix: true,
171
- locale: customLocale,
172
- });
173
-
174
- expect(result).toBe('It works!');
175
- });
176
- });
177
-
178
- it('throws RangeError if the first date is `Invalid Date`', () => {
179
- expect(formatDistance.bind(null, new Date(NaN), new Date(1986, 3, 7, 10, 32, 0))).toThrow(RangeError);
180
- });
181
-
182
- it('throws RangeError if the second date is `Invalid Date`', () => {
183
- expect(formatDistance.bind(null, new Date(1986, 3, 4, 10, 32, 0), new Date(NaN))).toThrow(RangeError);
184
- });
185
-
186
- it('throws RangeError if the both dates are `Invalid Date`', () => {
187
- expect(formatDistance.bind(null, new Date(NaN), new Date(NaN))).toThrow(RangeError);
188
- });
189
- });
@@ -1,329 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import type { FormatDistanceFn } from '../locale/types';
3
- import { formatDistanceStrict } from './index';
4
-
5
- describe('formatDistanceStrict', () => {
6
- describe('seconds', () => {
7
- describe('when no unit is set', () => {
8
- it('0 seconds', () => {
9
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 5), new Date(1986, 3, 4, 10, 32, 5));
10
- expect(result).toBe('0 seconds');
11
- });
12
-
13
- it('5 seconds', () => {
14
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 5));
15
- expect(result).toBe('5 seconds');
16
- });
17
- });
18
- });
19
-
20
- describe('minutes', () => {
21
- it('1 minute', () => {
22
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 0));
23
- expect(result).toBe('1 minute');
24
- });
25
-
26
- it('n minutes', () => {
27
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 35, 0));
28
- expect(result).toBe('3 minutes');
29
- });
30
- });
31
-
32
- describe('hours', () => {
33
- it('1 hour', () => {
34
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 11, 32, 0));
35
- expect(result).toBe('1 hour');
36
- });
37
-
38
- it('n hours', () => {
39
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 13, 32, 0));
40
- expect(result).toBe('3 hours');
41
- });
42
- });
43
-
44
- describe('days', () => {
45
- it('1 day', () => {
46
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 5, 10, 32, 0));
47
- expect(result).toBe('1 day');
48
- });
49
-
50
- it('n days', () => {
51
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 7, 10, 32, 0));
52
- expect(result).toBe('3 days');
53
- });
54
- });
55
-
56
- describe('months', () => {
57
- it('1 month', () => {
58
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 4, 4, 10, 32, 0));
59
- expect(result).toBe('1 month');
60
- });
61
-
62
- it('n months', () => {
63
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 6, 4, 10, 32, 0));
64
- expect(result).toBe('3 months');
65
- });
66
- });
67
-
68
- describe('years', () => {
69
- it('returns `1 year` - see issue 2388', () => {
70
- const result = formatDistanceStrict(new Date(2015, 0, 2), new Date(2016, 0, 1));
71
- expect(result).toBe('1 year');
72
- });
73
-
74
- it('returns `2 years` - see issue 2388', () => {
75
- const result = formatDistanceStrict(new Date(2014, 0, 2), new Date(2016, 0, 1));
76
- expect(result).toBe('2 years');
77
- });
78
-
79
- it('1 year', () => {
80
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1987, 3, 4, 10, 32, 0));
81
- expect(result).toBe('1 year');
82
- });
83
-
84
- it('n years', () => {
85
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1991, 3, 4, 10, 32, 0));
86
- expect(result).toBe('5 years');
87
- });
88
- });
89
-
90
- describe('when the unit option is supplied', () => {
91
- describe('second', () => {
92
- it('0 seconds', () => {
93
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
94
- unit: 'second',
95
- });
96
- expect(result).toBe('0 seconds');
97
- });
98
-
99
- it('5 seconds', () => {
100
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 5), {
101
- unit: 'second',
102
- });
103
- expect(result).toBe('5 seconds');
104
- });
105
-
106
- it('120 seconds', () => {
107
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 34, 0), {
108
- unit: 'second',
109
- });
110
- expect(result).toBe('120 seconds');
111
- });
112
- });
113
-
114
- describe('minute', () => {
115
- it('0 minutes', () => {
116
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
117
- unit: 'minute',
118
- });
119
- expect(result).toBe('0 minutes');
120
- });
121
-
122
- it('5 minutes', () => {
123
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 37, 0), {
124
- unit: 'minute',
125
- });
126
- expect(result).toBe('5 minutes');
127
- });
128
-
129
- it('120 minutes', () => {
130
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 12, 32, 0), {
131
- unit: 'minute',
132
- });
133
- expect(result).toBe('120 minutes');
134
- });
135
- });
136
-
137
- describe('hour', () => {
138
- it('0 hours', () => {
139
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
140
- unit: 'hour',
141
- });
142
- expect(result).toBe('0 hours');
143
- });
144
-
145
- it('5 hours', () => {
146
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 15, 32, 0), {
147
- unit: 'hour',
148
- });
149
- expect(result).toBe('5 hours');
150
- });
151
-
152
- it('48 hours', () => {
153
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 6, 10, 32, 0), {
154
- unit: 'hour',
155
- });
156
- expect(result).toBe('48 hours');
157
- });
158
- });
159
-
160
- describe('day', () => {
161
- it('0 days', () => {
162
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
163
- unit: 'day',
164
- });
165
- expect(result).toBe('0 days');
166
- });
167
-
168
- it('5 days', () => {
169
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 9, 10, 32, 0), {
170
- unit: 'day',
171
- });
172
- expect(result).toBe('5 days');
173
- });
174
-
175
- it('60 days', () => {
176
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 5, 3, 10, 32, 0), {
177
- unit: 'day',
178
- });
179
- expect(result).toBe('60 days');
180
- });
181
- });
182
- describe('month', () => {
183
- it('0 months', () => {
184
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
185
- unit: 'month',
186
- });
187
- expect(result).toBe('0 months');
188
- });
189
-
190
- it('5 months', () => {
191
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 7, 4, 10, 32, 0), {
192
- unit: 'month',
193
- });
194
- expect(result).toBe('4 months');
195
- });
196
-
197
- it('12 months - see issue 2388', () => {
198
- const result = formatDistanceStrict(new Date(1986, 7, 4, 10, 32, 0), new Date(1985, 7, 4, 10, 32, 0), {
199
- unit: 'month',
200
- });
201
- expect(result).toBe('12 months');
202
- });
203
-
204
- it('24 months', () => {
205
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1988, 3, 4, 10, 32, 0), {
206
- unit: 'month',
207
- });
208
- expect(result).toBe('24 months');
209
- });
210
- });
211
-
212
- describe('year', () => {
213
- it('0 years', () => {
214
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
215
- unit: 'year',
216
- });
217
- expect(result).toBe('0 years');
218
- });
219
-
220
- it('5 years', () => {
221
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1991, 3, 4, 15, 32, 0), {
222
- unit: 'year',
223
- });
224
- expect(result).toBe('5 years');
225
- });
226
- });
227
- });
228
-
229
- it('accepts timestamps', () => {
230
- const result = formatDistanceStrict(
231
- new Date(1986, 3, 4, 10, 32, 0).getTime(),
232
- new Date(1986, 3, 4, 11, 32, 0).getTime(),
233
- );
234
- expect(result).toBe('1 hour');
235
- });
236
-
237
- describe('when the addSuffix option is true', () => {
238
- it('adds a past suffix', () => {
239
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 25), {
240
- addSuffix: true,
241
- });
242
- expect(result).toBe('25 seconds ago');
243
- });
244
-
245
- it('adds a future suffix', () => {
246
- const result = formatDistanceStrict(new Date(1986, 3, 4, 11, 32, 0), new Date(1986, 3, 4, 10, 32, 0), {
247
- addSuffix: true,
248
- });
249
- expect(result).toBe('in 1 hour');
250
- });
251
- });
252
-
253
- describe('when the roundingMethod option is supplied', () => {
254
- it('default is "round"', () => {
255
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 59));
256
- expect(result).toBe('2 minutes');
257
- });
258
-
259
- it('"floor"', () => {
260
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 59), {
261
- roundingMethod: 'floor',
262
- });
263
- expect(result).toBe('1 minute');
264
- });
265
-
266
- it('"ceil"', () => {
267
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 1), {
268
- roundingMethod: 'ceil',
269
- });
270
- expect(result).toBe('2 minutes');
271
- });
272
-
273
- it('"round" (down)', () => {
274
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 29), {
275
- roundingMethod: 'round',
276
- });
277
- expect(result).toBe('1 minute');
278
- });
279
-
280
- it('"round" (up)', () => {
281
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 30), {
282
- roundingMethod: 'round',
283
- });
284
- expect(result).toBe('2 minutes');
285
- });
286
- });
287
-
288
- describe('custom locale', () => {
289
- it('can be passed to the function', () => {
290
- const formatDistance: FormatDistanceFn = (token, count, options) => {
291
- expect(token).toBe('xSeconds');
292
- expect(count).toBe(25);
293
- expect(options!.addSuffix).toBe(true);
294
- expect(options!.comparison!).toBeLessThan(0);
295
- return 'It works!';
296
- };
297
-
298
- const customLocale = {
299
- formatDistance,
300
- };
301
-
302
- const result = formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 32, 25), {
303
- addSuffix: true,
304
- locale: customLocale,
305
- });
306
-
307
- expect(result).toBe('It works!');
308
- });
309
- });
310
-
311
- describe('edge cases', () => {
312
- it('detects unit correctly for short months', () => {
313
- const result = formatDistanceStrict(new Date(2018, 1 /* Feb */, 1), new Date(2018, 2 /* Mar */, 1));
314
- expect(result).toBe('28 days');
315
- });
316
- });
317
-
318
- it('throws `RangeError` if the first date is `Invalid Date`', () => {
319
- expect(formatDistanceStrict.bind(null, new Date(NaN), new Date(1986, 3, 7, 10, 32, 0))).toThrow(RangeError);
320
- });
321
-
322
- it('throws `RangeError` if the second date is `Invalid Date`', () => {
323
- expect(formatDistanceStrict.bind(null, new Date(1986, 3, 4, 10, 32, 0), new Date(NaN))).toThrow(RangeError);
324
- });
325
-
326
- it('throws `RangeError` if the both dates are `Invalid Date`', () => {
327
- expect(formatDistanceStrict.bind(null, new Date(NaN), new Date(NaN))).toThrow(RangeError);
328
- });
329
- });