Make DateUtils test non-timezone dependent (#33343)

This was failing locally because my dev box is set to local time rather
than UTC and so the Date class's special date parsing was interpreting
some of the dates as a different day.

Use Date's methods to build the actual date we want so we're not reliant on
the date objet's parsing - that's not what we're trying to test.
This commit is contained in:
David Baker 2026-05-01 10:15:40 +01:00 committed by GitHub
parent a6bf56fcbd
commit 5e935207c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -9,6 +9,13 @@ import { describe, it, expect } from "vitest";
import { formatSeconds, formatDateForInput } from "./DateUtils";
function makeDate(year: number, month: number, day: number): Date {
const date = new Date(0);
date.setFullYear(year, month - 1, day);
date.setHours(0, 0, 0, 0);
return date;
}
describe("formatSeconds", () => {
it("correctly formats time with hours", () => {
expect(formatSeconds(60 * 60 * 3 + 60 * 31 + 55)).toBe("03:31:55");
@ -26,10 +33,12 @@ describe("formatSeconds", () => {
});
describe("formatDateForInput", () => {
it.each([["1993-11-01"], ["1066-10-14"], ["0571-04-22"], ["0062-02-05"]])(
"should format %s",
(dateString: string) => {
expect(formatDateForInput(new Date(dateString))).toBe(dateString);
},
);
it.each([
["1993-11-01", makeDate(1993, 11, 1)],
["1066-10-14", makeDate(1066, 10, 14)],
["0571-04-22", makeDate(571, 4, 22)],
["0062-02-05", makeDate(62, 2, 5)],
])("should format %s", (dateString: string, date: Date) => {
expect(formatDateForInput(date)).toBe(dateString);
});
});