src/features/reports/sample-month.test.ts
Linked repository file from this build.
import { expect, test } from "bun:test";
import { isCompleteMonthInput, parseSampleMonth } from "./sample-month";
test("sample month typing accepts common variants and rejects unfinished values", () => {
expect(parseSampleMonth("2026-05")).toBe("2026-05");
expect(parseSampleMonth("2026-5")).toBe("2026-05");
expect(parseSampleMonth("5/2026")).toBe("2026-05");
expect(parseSampleMonth("26-5")).toBe("2026-05");
expect(parseSampleMonth("26-05")).toBe("2026-05");
expect(parseSampleMonth("05/2026")).toBe("2026-05");
expect(parseSampleMonth("202605")).toBe("2026-05");
expect(parseSampleMonth("5-26")).toBe("2026-05");
expect(parseSampleMonth("")).toBeNull();
expect(parseSampleMonth("2026-13")).toBeNull();
expect(parseSampleMonth("2026")).toBeNull();
expect(parseSampleMonth("2")).toBeNull();
expect(isCompleteMonthInput("")).toBe(true);
expect(isCompleteMonthInput("2026-05")).toBe(true);
expect(isCompleteMonthInput("5/2026")).toBe(true);
expect(isCompleteMonthInput("26-05")).toBe(true);
expect(isCompleteMonthInput("2026-5")).toBe(false);
expect(isCompleteMonthInput("26-5")).toBe(false);
expect(isCompleteMonthInput("2026-1")).toBe(false);
expect(isCompleteMonthInput("2026")).toBe(false);
});