|
@@ -17,121 +17,225 @@ describe("correct behavior", () => {
|
|
nanoseconds: 9,
|
|
nanoseconds: 9,
|
|
};
|
|
};
|
|
expect(new Intl.DurationFormat().formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat().formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1 yr" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "yr", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 mths" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "mths", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 wks" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "wks", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 days" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "days", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 hr" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "hr", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 min" },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "min", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 sec" },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "sec", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "8 μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "9 ns" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "ns", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("en").formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat("en").formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1 yr" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "yr", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 mths" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "mths", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 wks" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "wks", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 days" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "days", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 hr" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "hr", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 min" },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "min", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 sec" },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "sec", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "8 μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "9 ns" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "ns", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("en", { style: "long" }).formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat("en", { style: "long" }).formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1 year" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "year", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 months" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "months", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 weeks" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "weeks", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 days" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "days", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 hours" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "hours", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 minutes" },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "minutes", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 seconds" },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "seconds", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 milliseconds" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "milliseconds", unit: "millisecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "8 microseconds" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "microseconds", unit: "microsecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "9 nanoseconds" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "nanoseconds", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("en", { style: "short" }).formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat("en", { style: "short" }).formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1 yr" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "yr", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 mths" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "mths", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 wks" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "wks", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 days" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "days", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 hr" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "hr", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 min" },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "min", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 sec" },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "sec", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "8 μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "9 ns" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "ns", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("en", { style: "narrow" }).formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat("en", { style: "narrow" }).formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1y" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "unit", value: "y", unit: "year" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "2m" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "unit", value: "m", unit: "month" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "3w" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "unit", value: "w", unit: "week" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "3d" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "unit", value: "d", unit: "day" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "4h" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "h", unit: "hour" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "5m" },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "m", unit: "minute" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "6s" },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "unit", value: "s", unit: "second" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "7ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "8μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "9ns" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "ns", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("en", { style: "digital" }).formatToParts(duration)).toEqual(
|
|
expect(new Intl.DurationFormat("en", { style: "digital" }).formatToParts(duration)).toEqual(
|
|
[
|
|
[
|
|
- { type: "element", value: "1 yr" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "yr", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 mths" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "mths", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 wks" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "wks", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 days" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "days", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4:05:06" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: ":" },
|
|
|
|
+ { type: "integer", value: "05", unit: "minute" },
|
|
|
|
+ { type: "literal", value: ":" },
|
|
|
|
+ { type: "integer", value: "06", unit: "second" },
|
|
|
|
+ { type: "decimal", value: ".", unit: "second" },
|
|
|
|
+ { type: "fraction", value: "007008009", unit: "second" },
|
|
]
|
|
]
|
|
);
|
|
);
|
|
expect(
|
|
expect(
|
|
@@ -141,99 +245,184 @@ describe("correct behavior", () => {
|
|
fractionalDigits: 3,
|
|
fractionalDigits: 3,
|
|
}).formatToParts(duration)
|
|
}).formatToParts(duration)
|
|
).toEqual([
|
|
).toEqual([
|
|
- { type: "element", value: "1y" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "unit", value: "y", unit: "year" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "2m" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "unit", value: "m", unit: "month" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "3w" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "unit", value: "w", unit: "week" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "3d" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "unit", value: "d", unit: "day" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "4h" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "h", unit: "hour" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "5m" },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "m", unit: "minute" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "6s" },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "unit", value: "s", unit: "second" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "7ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: " " },
|
|
{ type: "literal", value: " " },
|
|
- { type: "element", value: "8.009μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "decimal", value: ".", unit: "microsecond" },
|
|
|
|
+ { type: "fraction", value: "009", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
]);
|
|
]);
|
|
|
|
|
|
expect(new Intl.DurationFormat("de", { style: "long" }).formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat("de", { style: "long" }).formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1 Jahr" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "Jahr", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 Monate" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "Monate", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 Wochen" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "Wochen", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 Tage" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "Tage", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 Stunden" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "Stunden", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 Minuten" },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "Minuten", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 Sekunden" },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "Sekunden", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 Millisekunden" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "Millisekunden", unit: "millisecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "8 Mikrosekunden" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "Mikrosekunden", unit: "microsecond" },
|
|
{ type: "literal", value: " und " },
|
|
{ type: "literal", value: " und " },
|
|
- { type: "element", value: "9 Nanosekunden" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "Nanosekunden", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("de", { style: "short" }).formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat("de", { style: "short" }).formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1 J" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "J", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 Mon." },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "Mon.", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 Wo." },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "Wo.", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 Tg." },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "Tg.", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 Std." },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "Std.", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 Min." },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "Min.", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 Sek." },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "Sek.", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "8 μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
{ type: "literal", value: " und " },
|
|
{ type: "literal", value: " und " },
|
|
- { type: "element", value: "9 ns" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "ns", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("de", { style: "narrow" }).formatToParts(duration)).toEqual([
|
|
expect(new Intl.DurationFormat("de", { style: "narrow" }).formatToParts(duration)).toEqual([
|
|
- { type: "element", value: "1 J" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "J", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 M" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "M", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 W" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "W", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 T" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "T", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 Std." },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "Std.", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 Min." },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "Min.", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 Sek." },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "Sek.", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "8 μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
{ type: "literal", value: " und " },
|
|
{ type: "literal", value: " und " },
|
|
- { type: "element", value: "9 ns" },
|
|
|
|
|
|
+ { type: "integer", value: "9", unit: "nanosecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "nanosecond" },
|
|
|
|
+ { type: "unit", value: "ns", unit: "nanosecond" },
|
|
]);
|
|
]);
|
|
expect(new Intl.DurationFormat("de", { style: "digital" }).formatToParts(duration)).toEqual(
|
|
expect(new Intl.DurationFormat("de", { style: "digital" }).formatToParts(duration)).toEqual(
|
|
[
|
|
[
|
|
- { type: "element", value: "1 J" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "J", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 Mon." },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "Mon.", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 Wo." },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "Wo.", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 Tg." },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "Tg.", unit: "day" },
|
|
{ type: "literal", value: " und " },
|
|
{ type: "literal", value: " und " },
|
|
- { type: "element", value: "4:05:06" },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: ":" },
|
|
|
|
+ { type: "integer", value: "05", unit: "minute" },
|
|
|
|
+ { type: "literal", value: ":" },
|
|
|
|
+ { type: "integer", value: "06", unit: "second" },
|
|
|
|
+ { type: "decimal", value: ",", unit: "second" },
|
|
|
|
+ { type: "fraction", value: "007008009", unit: "second" },
|
|
]
|
|
]
|
|
);
|
|
);
|
|
expect(
|
|
expect(
|
|
@@ -243,23 +432,43 @@ describe("correct behavior", () => {
|
|
fractionalDigits: 3,
|
|
fractionalDigits: 3,
|
|
}).formatToParts(duration)
|
|
}).formatToParts(duration)
|
|
).toEqual([
|
|
).toEqual([
|
|
- { type: "element", value: "1 J" },
|
|
|
|
|
|
+ { type: "integer", value: "1", unit: "year" },
|
|
|
|
+ { type: "literal", value: " ", unit: "year" },
|
|
|
|
+ { type: "unit", value: "J", unit: "year" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "2 M" },
|
|
|
|
|
|
+ { type: "integer", value: "2", unit: "month" },
|
|
|
|
+ { type: "literal", value: " ", unit: "month" },
|
|
|
|
+ { type: "unit", value: "M", unit: "month" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 W" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "week" },
|
|
|
|
+ { type: "literal", value: " ", unit: "week" },
|
|
|
|
+ { type: "unit", value: "W", unit: "week" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "3 T" },
|
|
|
|
|
|
+ { type: "integer", value: "3", unit: "day" },
|
|
|
|
+ { type: "literal", value: " ", unit: "day" },
|
|
|
|
+ { type: "unit", value: "T", unit: "day" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "4 Std." },
|
|
|
|
|
|
+ { type: "integer", value: "4", unit: "hour" },
|
|
|
|
+ { type: "literal", value: " ", unit: "hour" },
|
|
|
|
+ { type: "unit", value: "Std.", unit: "hour" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "5 Min." },
|
|
|
|
|
|
+ { type: "integer", value: "5", unit: "minute" },
|
|
|
|
+ { type: "literal", value: " ", unit: "minute" },
|
|
|
|
+ { type: "unit", value: "Min.", unit: "minute" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "6 Sek." },
|
|
|
|
|
|
+ { type: "integer", value: "6", unit: "second" },
|
|
|
|
+ { type: "literal", value: " ", unit: "second" },
|
|
|
|
+ { type: "unit", value: "Sek.", unit: "second" },
|
|
{ type: "literal", value: ", " },
|
|
{ type: "literal", value: ", " },
|
|
- { type: "element", value: "7 ms" },
|
|
|
|
|
|
+ { type: "integer", value: "7", unit: "millisecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "millisecond" },
|
|
|
|
+ { type: "unit", value: "ms", unit: "millisecond" },
|
|
{ type: "literal", value: " und " },
|
|
{ type: "literal", value: " und " },
|
|
- { type: "element", value: "8,009 μs" },
|
|
|
|
|
|
+ { type: "integer", value: "8", unit: "microsecond" },
|
|
|
|
+ { type: "decimal", value: ",", unit: "microsecond" },
|
|
|
|
+ { type: "fraction", value: "009", unit: "microsecond" },
|
|
|
|
+ { type: "literal", value: " ", unit: "microsecond" },
|
|
|
|
+ { type: "unit", value: "μs", unit: "microsecond" },
|
|
]);
|
|
]);
|
|
});
|
|
});
|
|
});
|
|
});
|