@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.
- package/README.md +0 -2
- package/package.json +1 -1
- package/src/date-fns/_lib/addLeadingZeros/test.mts +0 -12
- package/src/date-fns/_lib/getRoundingMethod/test.mts +0 -50
- package/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/test.mts +0 -25
- package/src/date-fns/add/test.mts +0 -95
- package/src/date-fns/addBusinessDays/test.mts +0 -78
- package/src/date-fns/addDays/test.mts +0 -90
- package/src/date-fns/addHours/test.mts +0 -30
- package/src/date-fns/addISOWeekYears/test.mts +0 -41
- package/src/date-fns/addMilliseconds/test.mts +0 -30
- package/src/date-fns/addMinutes/test.mts +0 -30
- package/src/date-fns/addMonths/test.mts +0 -123
- package/src/date-fns/addQuarters/test.mts +0 -47
- package/src/date-fns/addSeconds/test.mts +0 -30
- package/src/date-fns/addWeeks/test.mts +0 -30
- package/src/date-fns/addYears/test.mts +0 -46
- package/src/date-fns/areIntervalsOverlapping/test.mts +0 -231
- package/src/date-fns/clamp/test.mts +0 -36
- package/src/date-fns/closestIndexTo/test.mts +0 -51
- package/src/date-fns/closestTo/test.mts +0 -49
- package/src/date-fns/compareAsc/test.mts +0 -58
- package/src/date-fns/compareDesc/test.mts +0 -58
- package/src/date-fns/constructFrom/test.mts +0 -47
- package/src/date-fns/constructNow/test.mts +0 -37
- package/src/date-fns/daysToWeeks/test.mts +0 -36
- package/src/date-fns/differenceInBusinessDays/test.mts +0 -102
- package/src/date-fns/differenceInCalendarDays/test.mts +0 -206
- package/src/date-fns/differenceInCalendarISOWeekYears/test.mts +0 -93
- package/src/date-fns/differenceInCalendarISOWeeks/test.mts +0 -89
- package/src/date-fns/differenceInCalendarMonths/test.mts +0 -82
- package/src/date-fns/differenceInCalendarQuarters/test.mts +0 -82
- package/src/date-fns/differenceInCalendarWeeks/test.mts +0 -136
- package/src/date-fns/differenceInCalendarYears/test.mts +0 -82
- package/src/date-fns/differenceInDays/test.mts +0 -175
- package/src/date-fns/differenceInHours/test.mts +0 -122
- package/src/date-fns/differenceInISOWeekYears/test.mts +0 -93
- package/src/date-fns/differenceInMilliseconds/test.mts +0 -53
- package/src/date-fns/differenceInMinutes/test.mts +0 -123
- package/src/date-fns/differenceInMonths/test.mts +0 -121
- package/src/date-fns/differenceInQuarters/test.mts +0 -109
- package/src/date-fns/differenceInSeconds/test.mts +0 -144
- package/src/date-fns/differenceInWeeks/test.mts +0 -111
- package/src/date-fns/differenceInYears/test.mts +0 -97
- package/src/date-fns/eachDayOfInterval/test.mts +0 -164
- package/src/date-fns/eachHourOfInterval/test.mts +0 -154
- package/src/date-fns/eachMinuteOfInterval/test.mts +0 -159
- package/src/date-fns/eachMonthOfInterval/test.mts +0 -151
- package/src/date-fns/eachQuarterOfInterval/test.mts +0 -136
- package/src/date-fns/eachWeekOfInterval/test.mts +0 -177
- package/src/date-fns/eachWeekendOfInterval/test.mts +0 -67
- package/src/date-fns/eachWeekendOfMonth/test.mts +0 -23
- package/src/date-fns/eachWeekendOfYear/test.mts +0 -18
- package/src/date-fns/eachYearOfInterval/test.mts +0 -136
- package/src/date-fns/endOfDay/test.mts +0 -27
- package/src/date-fns/endOfDecade/test.mts +0 -32
- package/src/date-fns/endOfHour/test.mts +0 -26
- package/src/date-fns/endOfISOWeek/test.mts +0 -27
- package/src/date-fns/endOfISOWeekYear/test.mts +0 -36
- package/src/date-fns/endOfMinute/test.mts +0 -26
- package/src/date-fns/endOfMonth/test.mts +0 -41
- package/src/date-fns/endOfQuarter/test.mts +0 -27
- package/src/date-fns/endOfSecond/test.mts +0 -26
- package/src/date-fns/endOfToday/test.mts +0 -19
- package/src/date-fns/endOfTomorrow/test.mts +0 -29
- package/src/date-fns/endOfWeek/test.mts +0 -86
- package/src/date-fns/endOfYear/test.mts +0 -27
- package/src/date-fns/endOfYesterday/test.mts +0 -29
- package/src/date-fns/format/test.mts +0 -909
- package/src/date-fns/formatDistance/test.mts +0 -189
- package/src/date-fns/formatDistanceStrict/test.mts +0 -329
- package/src/date-fns/formatDistanceToNow/test.mts +0 -196
- package/src/date-fns/formatDistanceToNowStrict/test.mts +0 -293
- package/src/date-fns/formatDuration/test.mts +0 -74
- package/src/date-fns/formatISO/test.mts +0 -55
- package/src/date-fns/formatISO9075/test.mts +0 -35
- package/src/date-fns/formatISODuration/test.mts +0 -75
- package/src/date-fns/formatRFC3339/test.mts +0 -41
- package/src/date-fns/formatRFC7231/test.mts +0 -18
- package/src/date-fns/formatRelative/test.mts +0 -92
- package/src/date-fns/fp/_lib/convertToFP/test.mts +0 -114
- package/src/date-fns/fromUnixTime/test.mts +0 -14
- package/src/date-fns/getDate/test.mts +0 -19
- package/src/date-fns/getDay/test.mts +0 -19
- package/src/date-fns/getDayOfYear/test.mts +0 -27
- package/src/date-fns/getDaysInMonth/test.mts +0 -33
- package/src/date-fns/getDaysInYear/test.mts +0 -35
- package/src/date-fns/getDecade/test.mts +0 -24
- package/src/date-fns/getDefaultOptions/test.mts +0 -58
- package/src/date-fns/getHours/test.mts +0 -19
- package/src/date-fns/getISODay/test.mts +0 -24
- package/src/date-fns/getISOWeek/test.mts +0 -54
- package/src/date-fns/getISOWeekYear/test.mts +0 -27
- package/src/date-fns/getISOWeeksInYear/test.mts +0 -37
- package/src/date-fns/getMilliseconds/test.mts +0 -19
- package/src/date-fns/getMinutes/test.mts +0 -19
- package/src/date-fns/getMonth/test.mts +0 -19
- package/src/date-fns/getOverlappingDaysInIntervals/test.mts +0 -243
- package/src/date-fns/getQuarter/test.mts +0 -19
- package/src/date-fns/getSeconds/test.mts +0 -19
- package/src/date-fns/getTime/test.mts +0 -21
- package/src/date-fns/getUnixTime/test.mts +0 -26
- package/src/date-fns/getWeek/test.mts +0 -56
- package/src/date-fns/getWeekOfMonth/test.mts +0 -75
- package/src/date-fns/getWeekYear/test.mts +0 -49
- package/src/date-fns/getWeeksInMonth/test.mts +0 -51
- package/src/date-fns/getYear/test.mts +0 -19
- package/src/date-fns/hoursToMilliseconds/test.mts +0 -23
- package/src/date-fns/hoursToMinutes/test.mts +0 -25
- package/src/date-fns/hoursToSeconds/test.mts +0 -25
- package/src/date-fns/interval/test.mts +0 -42
- package/src/date-fns/intervalToDuration/test.mts +0 -235
- package/src/date-fns/intlFormat/test.mts +0 -88
- package/src/date-fns/intlFormatDistance/test.mts +0 -588
- package/src/date-fns/isAfter/test.mts +0 -39
- package/src/date-fns/isBefore/test.mts +0 -39
- package/src/date-fns/isDate/test.mts +0 -72
- package/src/date-fns/isEqual/test.mts +0 -34
- package/src/date-fns/isExists/test.mts +0 -14
- package/src/date-fns/isFirstDayOfMonth/test.mts +0 -25
- package/src/date-fns/isFriday/test.mts +0 -24
- package/src/date-fns/isFuture/test.mts +0 -34
- package/src/date-fns/isLastDayOfMonth/test.mts +0 -25
- package/src/date-fns/isLeapYear/test.mts +0 -35
- package/src/date-fns/isMatch/test.mts +0 -27
- package/src/date-fns/isMonday/test.mts +0 -24
- package/src/date-fns/isPast/test.mts +0 -34
- package/src/date-fns/isSameDay/test.mts +0 -37
- package/src/date-fns/isSameHour/test.mts +0 -37
- package/src/date-fns/isSameISOWeek/test.mts +0 -34
- package/src/date-fns/isSameISOWeekYear/test.mts +0 -48
- package/src/date-fns/isSameMinute/test.mts +0 -37
- package/src/date-fns/isSameMonth/test.mts +0 -34
- package/src/date-fns/isSameQuarter/test.mts +0 -34
- package/src/date-fns/isSameSecond/test.mts +0 -43
- package/src/date-fns/isSameWeek/test.mts +0 -58
- package/src/date-fns/isSameYear/test.mts +0 -34
- package/src/date-fns/isSaturday/test.mts +0 -24
- package/src/date-fns/isSunday/test.mts +0 -24
- package/src/date-fns/isThisHour/test.mts +0 -34
- package/src/date-fns/isThisISOWeek/test.mts +0 -34
- package/src/date-fns/isThisMinute/test.mts +0 -34
- package/src/date-fns/isThisMonth/test.mts +0 -34
- package/src/date-fns/isThisQuarter/test.mts +0 -34
- package/src/date-fns/isThisSecond/test.mts +0 -34
- package/src/date-fns/isThisWeek/test.mts +0 -39
- package/src/date-fns/isThisYear/test.mts +0 -34
- package/src/date-fns/isThursday/test.mts +0 -24
- package/src/date-fns/isToday/test.mts +0 -34
- package/src/date-fns/isTomorrow/test.mts +0 -34
- package/src/date-fns/isTuesday/test.mts +0 -24
- package/src/date-fns/isValid/test.mts +0 -24
- package/src/date-fns/isWednesday/test.mts +0 -24
- package/src/date-fns/isWeekend/test.mts +0 -24
- package/src/date-fns/isWithinInterval/test.mts +0 -92
- package/src/date-fns/isYesterday/test.mts +0 -34
- package/src/date-fns/lastDayOfDecade/test.mts +0 -32
- package/src/date-fns/lastDayOfISOWeek/test.mts +0 -27
- package/src/date-fns/lastDayOfISOWeekYear/test.mts +0 -36
- package/src/date-fns/lastDayOfMonth/test.mts +0 -41
- package/src/date-fns/lastDayOfQuarter/test.mts +0 -27
- package/src/date-fns/lastDayOfWeek/test.mts +0 -86
- package/src/date-fns/lastDayOfYear/test.mts +0 -27
- package/src/date-fns/lightFormat/test.mts +0 -126
- package/src/date-fns/max/test.mts +0 -34
- package/src/date-fns/milliseconds/test.mts +0 -62
- package/src/date-fns/millisecondsToHours/test.mts +0 -24
- package/src/date-fns/millisecondsToMinutes/test.mts +0 -24
- package/src/date-fns/millisecondsToSeconds/test.mts +0 -24
- package/src/date-fns/min/test.mts +0 -34
- package/src/date-fns/minutesToHours/test.mts +0 -24
- package/src/date-fns/minutesToMilliseconds/test.mts +0 -23
- package/src/date-fns/minutesToSeconds/test.mts +0 -23
- package/src/date-fns/monthsToQuarters/test.mts +0 -24
- package/src/date-fns/monthsToYears/test.mts +0 -24
- package/src/date-fns/nextDay/test.mts +0 -44
- package/src/date-fns/nextFriday/test.mts +0 -24
- package/src/date-fns/nextMonday/test.mts +0 -24
- package/src/date-fns/nextSaturday/test.mts +0 -24
- package/src/date-fns/nextSunday/test.mts +0 -24
- package/src/date-fns/nextThursday/test.mts +0 -24
- package/src/date-fns/nextTuesday/test.mts +0 -23
- package/src/date-fns/nextWednesday/test.mts +0 -24
- package/src/date-fns/parse/test.mts +0 -2202
- package/src/date-fns/parseISO/test.mts +0 -362
- package/src/date-fns/parseJSON/test.mts +0 -129
- package/src/date-fns/previousDay/test.mts +0 -42
- package/src/date-fns/previousFriday/test.mts +0 -22
- package/src/date-fns/previousMonday/test.mts +0 -22
- package/src/date-fns/previousSaturday/test.mts +0 -22
- package/src/date-fns/previousSunday/test.mts +0 -22
- package/src/date-fns/previousThursday/test.mts +0 -22
- package/src/date-fns/previousTuesday/test.mts +0 -22
- package/src/date-fns/previousWednesday/test.mts +0 -22
- package/src/date-fns/quartersToMonths/test.mts +0 -24
- package/src/date-fns/quartersToYears/test.mts +0 -24
- package/src/date-fns/roundToNearestHours/test.mts +0 -200
- package/src/date-fns/roundToNearestMinutes/test.mts +0 -208
- package/src/date-fns/secondsToHours/test.mts +0 -24
- package/src/date-fns/secondsToMilliseconds/test.mts +0 -14
- package/src/date-fns/secondsToMinutes/test.mts +0 -24
- package/src/date-fns/set/test.mts +0 -121
- package/src/date-fns/setDate/test.mts +0 -30
- package/src/date-fns/setDay/test.mts +0 -112
- package/src/date-fns/setDayOfYear/test.mts +0 -30
- package/src/date-fns/setDefaultOptions/test.mts +0 -498
- package/src/date-fns/setHours/test.mts +0 -30
- package/src/date-fns/setISODay/test.mts +0 -59
- package/src/date-fns/setISOWeek/test.mts +0 -41
- package/src/date-fns/setISOWeekYear/test.mts +0 -50
- package/src/date-fns/setMilliseconds/test.mts +0 -30
- package/src/date-fns/setMinutes/test.mts +0 -30
- package/src/date-fns/setMonth/test.mts +0 -46
- package/src/date-fns/setQuarter/test.mts +0 -46
- package/src/date-fns/setSeconds/test.mts +0 -30
- package/src/date-fns/setWeek/test.mts +0 -63
- package/src/date-fns/setWeekYear/test.mts +0 -72
- package/src/date-fns/setYear/test.mts +0 -30
- package/src/date-fns/startOfDay/test.mts +0 -27
- package/src/date-fns/startOfDecade/test.mts +0 -32
- package/src/date-fns/startOfHour/test.mts +0 -27
- package/src/date-fns/startOfISOWeek/test.mts +0 -27
- package/src/date-fns/startOfISOWeekYear/test.mts +0 -41
- package/src/date-fns/startOfMinute/test.mts +0 -27
- package/src/date-fns/startOfMonth/test.mts +0 -27
- package/src/date-fns/startOfQuarter/test.mts +0 -27
- package/src/date-fns/startOfSecond/test.mts +0 -27
- package/src/date-fns/startOfToday/test.mts +0 -19
- package/src/date-fns/startOfTomorrow/test.mts +0 -29
- package/src/date-fns/startOfWeek/test.mts +0 -86
- package/src/date-fns/startOfWeekYear/test.mts +0 -58
- package/src/date-fns/startOfYear/test.mts +0 -38
- package/src/date-fns/startOfYesterday/test.mts +0 -29
- package/src/date-fns/sub/test.mts +0 -83
- package/src/date-fns/subBusinessDays/test.mts +0 -40
- package/src/date-fns/subDays/test.mts +0 -30
- package/src/date-fns/subHours/test.mts +0 -30
- package/src/date-fns/subISOWeekYears/test.mts +0 -41
- package/src/date-fns/subMilliseconds/test.mts +0 -30
- package/src/date-fns/subMinutes/test.mts +0 -30
- package/src/date-fns/subMonths/test.mts +0 -47
- package/src/date-fns/subQuarters/test.mts +0 -47
- package/src/date-fns/subSeconds/test.mts +0 -30
- package/src/date-fns/subWeeks/test.mts +0 -30
- package/src/date-fns/subYears/test.mts +0 -46
- package/src/date-fns/toDate/test.mts +0 -35
- package/src/date-fns/weeksToDays/test.mts +0 -24
- package/src/date-fns/yearsToDays/test.mts +0 -24
- package/src/date-fns/yearsToMonths/test.mts +0 -24
- 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
|
-
});
|