File size: 1,078 Bytes
391340f
709db16
391340f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
709db16
 
 
 
 
 
 
 
 
 
 
 
 
 
391340f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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",
    ]);
  });
});