Fastwhisper / frontend /src /dates.test.ts
Mbonea's picture
Overhaul journal UI: pending resolve sheet, gold FAB nav, and Home week score.
709db16
Raw
History Blame Contribute Delete
1.08 kB
import { describe, expect, it } from "vitest";
import { isoDate, lastNDays, mondaySundayWeek } from "./dates";
describe("dates", () => {
it("formats local dates as YYYY-MM-DD", () => {
expect(isoDate(new Date(2026, 6, 18))).toBe("2026-07-18");
expect(isoDate(new Date(2026, 0, 5))).toBe("2026-01-05");
});
it("returns last 7 calendar days oldest first", () => {
const days = lastNDays(new Date(2026, 6, 18), 7);
expect(days).toHaveLength(7);
expect(days[0]).toBe("2026-07-12");
expect(days[6]).toBe("2026-07-18");
});
it("crosses month boundaries", () => {
const days = lastNDays(new Date(2026, 6, 2), 7);
expect(days[0]).toBe("2026-06-26");
expect(days[6]).toBe("2026-07-02");
});
it("returns local Monday–Sunday week", () => {
// Saturday 18 Jul 2026 → Mon 13 … Sun 19
const days = mondaySundayWeek(new Date(2026, 6, 18));
expect(days).toEqual([
"2026-07-13",
"2026-07-14",
"2026-07-15",
"2026-07-16",
"2026-07-17",
"2026-07-18",
"2026-07-19",
]);
});
});